با سلام خدمت دوستان
من میخوام یه adc فعال کنم ولی هر کاری میکنم پله های تغییرش درست کار نمی کنه مثلا از 704 تا 655 تغییر نداره یهو میشه 655 البته ابن تغیرات با همه ولتاژ ها یکی نیست ولی کلیتش اینه که تغییراتش نسبت به ولتاژی که میدم بهش درست نیست البته با یه برنامه ساده چک کردم با یه پتانسیومتر 10 دور که در حد 5mv تغییر ایجا کنم ولی این ثابت میمونه با چندتا میکرو 16f877 و 18f452 هم چک کردم با رفرنس داخلی و خارجی هم چک کردم ولی نشد البته تو پروتوس کار میکنه به ترتیب هم تغییر میکنه اگه لطف کنید راهنمایی کنید ممنون می شم واقعا گیرم .کامپایلرم هم ccs . :cry2: :cry2:
اینم برنامه :
#include <adc.h>
#include <stdio.h>
#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <LCD.C>
float adc;
void main()
{
setup_adc_ports(ANALOG_RA3_REF);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
// TODO: USER CODE!!
set_tris_c(0x0f);
set_tris_d(0xff);
set_adc_channel(1);
while(1){
lcd_clear();
adc=read_adc();
lcd_gotoxy(3,1);
printf(lcd_putc,"%f",adc);
delay_ms(10);
}
}
دیدگاه