با درود خسته نباشید
توی ویزارد ccs میشه دقت 16 بیت برای میکرو هایی که adc ده بیتی دارند انتخاب کرد
من این کارو کردمدیدم که واقعا 16 بیت جواب میده .
کد:
#include <adc16bit test.h>
#include <18F452.h>
#device ADC=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(crystal=20000000)
#define LCD_RS_PIN PIN_C0
#define LCD_RW_PIN PIN_C1
#define LCD_ENABLE_PIN PIN_C2
#define LCD_DATA4 PIN_C3
#define LCD_DATA5 PIN_C4
#define LCD_DATA6 PIN_C5
#define LCD_DATA7 PIN_C6
#include <lcd.c>
float adc;
void main()
{
setup_adc_ports(ALL_ANALOG);
output_c(0xff);
setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports( ALL_ANALOG );
lcd_init();
while(TRUE)
{
set_adc_channel(0);
delay_ms(10);
adc=read_adc();
lcd_gotoxy(1,1);
printf(lcd_putc,"V:%5.0f ",adc);
}
}
حالا تو این موندم که روش کد نویسی اون چی بوده ؟؟؟ pic18f452 که adc10bit داره ؟؟؟