I.
INTRODUCCIN
II.
DESARROLLO
CONTENIDO
DEL
.
software Atmel Studio, y desarrollaremos en lenguaje
C.
ADMUX |= 0X84;
BITS, CH4
ADCSRA |= 0X87;
MODULO, PREESCALER 128
//HABILITO
EL
Seguidamente,
crearemos
la
funcin
barridoDisplay(uint16_t numero), el parmetro que
vemos ah es el dato que se va a mostrar en el display,
el cual lo recibe de la funcin uint16_t leer_AD().
Dentro del cuerpo de la funcin barridoDisplay(uint16_t
numero), vamos a poner en cada posicin (de cero a
tres), del arreglo para los datos el numero
descompuesto en unidades, decenas, centenas y si es
posible miles ya que es prcticamente imposible llegar
a medir miles de grados. Esto se lo realiza as,
asignamos en la posicin cero del arreglo datos el
residuo que resulta de dividir el nmero para 10, luego
en otra lnea de cdigo, dividimos el nmero para 10,
asignando a la variable nmero, as obtenemos las
unidades del numero de 16 bits, luego en la posicin 1
del arreglo datos volvemos a asignar el residuo que
resulta de dividir para 10, y en otra lnea volvemos a
dividir el numero para 10, asignando a la variable
nmero, as obtenemos las decenas, en la posicin 2
del arreglo datos asignamos el residuo que resulta de
dividir el numero para 10 nuevamente, as obtenemos
las centenas, y por ltimo en la posicin 3 del arreglo
datos asignamos la divisin entre el numero para 10.
As obtenemos los miles.
void setIO(){
DATOS
//VREF 1.1V, 10
.
void barridoDisplay(uint16_t numero){
dato[0] = numero % 10;
numero = numero / 10;
uint16_t leerAD(){
if(x> 30)
{
x=0;
ADCSRA |= 0X40;
//INCIA LA CONVERSION
while(!(ADCSRA &
0X10));//ESPERAMOS QUE LA CONVERSION
TERMINE (BANDERA)
ADCSRA
|= 0x10;
//while(ADCSRA &
0X40);
//grados=ADCW;
return ADCW;
}
else
{
x++;
return ADCW;
}
}
}
La funcin leerAD(), es la que me va a devolver el
dato que se obtiene de la conversin. Aqu implantamos
un IF que nos sirve para que la conversin no se realice
tan seguido, ya que si esta se realiza muy rpido, en el
display los datos que mostremos no se podrn apreciar
de la mejor manera. Entonces en este IF comparamos
que el contador, en este caso x, sea mayor a 30. Una
vez dentro volvemos a colocar al contador en cero y
ahora procedemos a iniciar la conversin, para esto
colocamos en 1 lgico el bit 6 del registro ADCSRA,
esto provocara que la conversin se realice. Luego
tenemos que esperar que la conversin termine, para lo
cual utilizamos un WHILE, que mientras el bit 4 del
registro ADCSRA, no se coloque en 0, no se salga del
WHILE. Una vez que se termine la conversin el bit
anterior se colocara en 1 y por lo tanto la conversin
trmino y el programa salen del WHILE. Como ltimo
dentro del IF retornamos el registro del resultado de la
.
6 tiene para arrancar la conversin AD, el bit 4 se
lo utiliza para la bandera es para darnos cuenta
si la conversin arranc o termin.
REFERENCIAS
III.
CONCLUSIONES