hola que tal me gustaria saber si alguien podria decirme como usar el adc del pic 16f877a en ccs, me gustaria que me dijean que hacer cada linea del codigo. gracias
hola que tal me gustaria saber si alguien podria decirme como usar el adc del pic 16f877a en ccs, me gustaria que me dijean que hacer cada linea del codigo. gracias
Las instrucciones basicas para el ADC son:
setup_adc(adc_clock_internal);//configuras el convertidor para que trabaje con el oscilator rc interno, recibe mas argumentos pero para esto checa la ayuda del ccs
setup_adc_ports(an0|an1);//con este seleccionas los puertos que seran analogicos
set_adc_channel(0);//con este seleccionas el canal por el que vas a leer desde el adc.
para mas detalle sobre cada funcion checa la ayuda del ccs, o si tienes alguna duda en concreto sobre el uso de alguna funcion con gusto te respondo
RDBrot (31/01/2012)
saludos
otro consejo seria revisar mas los recursos que hay en Internet, como el libro Compilador C Ccs Y Simulador Proteus Para Microcontroladores Pic, el cual esta muy documentado con ejemplos ya hechos que son de utilidad, y trae lo de conversor analogo digital hasta USB.
jose-luis (30/01/2012)
Muchas gracias por tu ayuda..descargue el libro que me recomendaste y esta muuy bueno...
Holaa:
El libro que te han pasado esta muy bueno, yo aprendi ccs de ese libro.
Aca te paso las lineas de codigo para leer el adc en la pata an0, esta echo para el pic 18f2550, pero creo que con el pic que tienes funcionaria, solo con cambiar el #include<18f2550.h> por el nombre de tu pic.
#include<18f2550.h>
#deviceadc=16; // Configuracion de bits del adc
#fusesxt,nowdt
#usedelay(clock=20000000)
#defineLCD_DB4PIN_B4
#defineLCD_DB5PIN_B5
#defineLCD_DB6PIN_B6
#defineLCD_DB7PIN_B7
#defineLCD_RSPIN_B2
#defineLCD_RWPIN_B1
#defineLCD_EPIN_B3
#include<flex_lcd.c>
#include<math.h>
//sentenciasderedireccionamientodelosvectoresdereset,interrupciónyorigenparaBootLoader
#build(reset=0x1000,interrupt=0x1008)
#org0x0000,0x0fff{}
//FinsentenciasBootLoader
int32adc;
floatten;
voidmain(){
setup_adc_ports(all_analog);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
lcd_putc("Inicializando...");
delay_ms(3500);
lcd_putc("\f");
while(1){
set_adc_channel(0);
delay_ms(20);
adc=read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc,"Valor:%ld",adc);
ten=(5.0*adc/65535.0);
lcd_gotoxy(1,2);
printf(lcd_putc,"Tension:%g",ten);
delay_ms(150);
lcd_putc("\f");
}}
Holaa:
El libro que te han pasado esta muy bueno, yo aprendi ccs de ese libro. Aca te paso las lineas de codigo para leer el adc en la pata an0, esta echo para el pic 18f2550, creo que con el pic que tienes funcionaria, solo con cambiar el #include<18f2550.> por el nombre de tu pic.
#include<18f2550.h>
#deviceadc=16;
#fusesxt,nowdt
#usedelay(clock=20000000)
#defineLCD_DB4PIN_B4
#defineLCD_DB5PIN_B5
#defineLCD_DB6PIN_B6
#defineLCD_DB7PIN_B7
#defineLCD_RSPIN_B2
#defineLCD_RWPIN_B1
#defineLCD_EPIN_B3
#include<flex_lcd.c>
#include<math.h>
//sentenciasderedireccionamientodelosvectoresdereset,interrupciónyorigenparaBootLoader
#build(reset=0x1000,interrupt=0x1008)
#org0x0000,0x0fff{}
//FinsentenciasBootLoader
int32adc;
floatten;
voidmain(){
setup_adc_ports(all_analog);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
lcd_putc("Inicializando...");
delay_ms(3500);
lcd_putc("\f");
while(1){
set_adc_channel(0);
delay_ms(20);
adc=read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc,"Valor:%ld",adc);
ten=(5.0*adc/65535.0);
lcd_gotoxy(1,2);
printf(lcd_putc,"Tension:%g",ten);
delay_ms(150);
lcd_putc("\f");
}}Espero que te sea de ayuda, Saludos Gamuu
no alcanzo a ver bien tu imagen, pero al final de la directiva lleva ;
PicTrance (20/08/2012)