-
Notifications
You must be signed in to change notification settings - Fork 0
/
rutinas.c
78 lines (59 loc) · 1.55 KB
/
rutinas.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "MT-10.h"
#define BORRA_REF 0x0002 // Valor de borrado de interr. pendientes de tout1 para TER0
// ===============
// Rutina de atención con una frecuencia de 8Khz
//
// Descripción:
// Función de atención a la interrupción para TIMER0
// Si se ha empezado a filtrar llama a la función filtrado con cada interrupción
// Igual para la ecualización
// A su vez calcula el nv de energía y lo saca por el vúmetro cada 3ms
// ================
void rutina_tout0(void){
int tension;
static int buffer [7200];
static int salida = 0;
static int contador = 0;
mbar_writeShort(MCFSIM_TER0,BORRA_REF); // Reset del bit de fin de cuent
if( estado == 1){
tension = filtrado(leerADC());
DAC_dato(tension + 0x800);
if(fila_ilum == filtro)
nv_energia+= tension * tension;
}
else if (estado == 2){
tension = filtradoMultiple();
DAC_dato (tension + 0x800 );
}
else if (estado == 3){
tension = bufferCircular(salida, buffer);
salida = tension + leerADC();
DAC_dato( salida + 0x800);
}
if(contador<24){
contador++;
}
if (contador >= 24){ // cada 3 ms se ejecuta este bloque
puertoExcitaFilaLeds();
nv_energia=0;
contador =0;
if(fila_ilum<7)
fila_ilum++;
if(fila_ilum==7)
fila_ilum=0;
}
}
void rutina_int1(void){
}
void rutina_int2(void){
}
void rutina_int3(void){
}
void rutina_int4(void){
}
void rutina_tout1(void){
}
void rutina_tout2(void){
}
void rutina_tout3(void){
}