fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Programación módulo...
 
Avisos
Vaciar todo

Programación módulo AD con CCS

2 Respuestas
2 Usuarios
0 Reactions
1,686 Visitas
joviwap
Respuestas: 301
Topic starter
(@joviwap)
Ardero
Registrado: hace 20 años

Hola a todos,

Estoy creando un programa con el compilador CCS para el microcontrolador PIC18F4550 en el que quiero hacer una lectura del puerto analógico 0 (RA0) y hacer una lectura del la bandera del mismo para comporbar cuando ha acabado. Estoy haciendo debug con un ICD2 y veo que los registros del ADRESH y ADRESL nunca cambian. Mi código es el siguiente:
#byte PIR1 = 0xF9E
#bit ADIF = PIR1.5

void main(void) {

set_tris_a(0xFF); // todo entradas
set_tris_b(0xFF); // todo entradas
set_tris_c(0b10111111); // todo entradas menos TX
set_tris_d(0x00); // todo salidas
set_tris_e(0xFF); // todo entradas

ADIF = false;

//ENABLE_INTERRUPTS(GLOBAL);
//ENABLE_INTERRUPTS(INT_AD);

SETUP_ADC_PORTS(AN0_TO_AN7);
SETUP_ADC(ADC_CLOCK_DIV_64);
SET_ADC_CHANNEL(0);

READ_ADC(ADC_START_AND_READ);

while(ADIF){
if (read_adc() < 100){
output_bit( PIN_D2, 0);
}else{
output_bit( PIN_D2, 1);
}

ADIF = false;

READ_ADC(ADC_READ_ONLY);
}

}

Que es lo que estoy haciendo mal, podeis darme alguna idea??

Muchas gracias a todos de antemano!

Responder
1 respuesta
furri
Respuestas: 2708
(@furri)
Ardero
Registrado: hace 20 años

Hola Joviwap.

La semana pasada empecé con lecturas analógicas con un PIC18F2550 y hasta ahora no he tenido problema (una vez superadas las primeras 10 horas de quebraderos de cabeza), ademas uso VRef- VRef+ y tengo que cambiar de canal ya que leo dos sensores alternos constantemente....

En el código lo que veo es que te sales del bucle en cuanto ADIF sea false... lo que no se es por que lo usas ya que usando read_adc() el programa no gestiona nada hasta terminar la lectura lo que no da pié a analizar si ha acabado ya que "siempre" ha acabado...

¿Necesitas controlar eso?

furri.

Responder
Compartir: