Hola amigos:
Me he empapado de todo el curso en un tiempecito, y reconozco que esta super currado
, y es muy didactico. Soy novato en el manejo de micros, aunque ya habia tenido algun contacto con el lenguaje C. Aqui van mis dudas:
1. Estoy empleando el CCS versión ID 3.40, y en todos los programas que habeis puesto en el curso obtengo el mismo error "MISSING #ENDIF", y por más que lo miro no se que es lo que falla.
2. Empleando alguno de vuestros programas he hecho este, cuya mision es leer un valor analógico y visualizarlo en un LCD. Esta bien??? Debido a que tengo el problema con el compilador no e podido ver si tiene mas errores.
//Convierte señal analógica en RA0
//La saca por un LCD
#include <16F876.h> // Dispositivo a utilizar
#device adc=8 // Resolución de 8 bits para el conversor ADC
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT // Fusibles
#use delay(clock=10000000) // Velocidad del cristal
#define use_portb_lcd TRUE
#include "lcd.c" // Librería para el manejo del lcd
#use fast_io(B) //optimiza código
const float ganancia=0.2045;
void main(void)
{
float entrada; // entrada es el valor analogico que entra al A/D
float salida; // salida es el valor que quiero se vea en el LCD
set_tris_A (0xFF); // Puerto A configurado como entrada
set_tris_B(0x00); //Puerto B configurado como salida
port_b_pullups(FALSE); // Desactivamos pull-ups del puerto B
setup_adc(adc_clock_div_32); //Enciende ADC
setup_adc_ports(RA0_ANALOG); //Configura A0 como entrada analógica
set_adc_channel(0); // Seleccionamos el canal 0 (RA0)
delay_us(20);
lcd_init(); //Inicia LCD
lcd_putc(" MEDIDOR
"
; //Saca texto
lcd_putc(" DE CAMPO"
; //Saca texto
delay_ms(3000);
lcd_putc("f"
; //Limpia pantalla
lcd_putc(" CAMPO ACTUAL"
; //Saca texto
delay_ms(1000);
lcd_gotoxy(9,2); //Acomoda cursor LCD
lcd_putc("OERSTED"
;
while (1)
{
lcd_gotoxy(0,2); //Acomoda cursor LCD
lcd_putc(" "
; //Limpia ese sector de pantalla
lcd_gotoxy(0,2); //Acomoda cursor LCD
entrada=read_adc(); //Capturamos señal analógica que entra por el canal previamente seleccionado (RA0)
salida=entrada*ganacia;
printf(lcd_putc,"%2.2f",salida) // Mostramos en el lcd el contenido de la variable "salida"
delay_ms (1000000); // Medidas cada 10 segundos
}
}
3. Ahora haber si me podais contestar a estas dudas que tengo sobre los micros, pues como ya mencioné es mi primera experiencia con ellos:
3.1. Que ventajas tiene el pic16F876 que veo que es muy utilizado????
3.2. Que son las resistencias pull-ups?
3.3. Que son los fusibles?
3.4. Es necesario para utilizar un micro emplear el citado cristal???
(quiza estas preguntas prefirais que las comente en el general, es asi??)
Muchas gracias, seguid así cracks