Trích:
Nguyên văn bởi maruko
em làm 1 ví dụ nhỏ về hỏi về đọc kết quả ADC hiển thị lên LCD nhưng nó cứ báo lỗi ở lệnh xuất dữ liệu ra LCD cụ thể là dòng lcd_putc_int(adc);
nhờ các bác suẳ giùm giúp em đoạn code này với :
#include <16f877A.h>
#device *=16, adc = 10
#use delay(clock = 20M)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_D6
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main(){
int i;
int16 adc;
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0); // Chon cong RA0 lam cong vao ADC
set_adc_channel(0);
lcd_init();
lcd_putc("STARTING");
for(i = 1; i < 10; i++){
lcd_putc('.');
delay_ms(100);
}
lcd_putc('\f');
while(1){
lcd_putc("\f");
adc = read_adc();
lcd_putc_int(adc);
//printf(" gia tri doc la : %u", adc );
delay_ms(200);
}
}
|
thế này mới đúng:
while(1){
lcd_putc("\f");
adc = read_adc();
lcd_putc_int(adc/1000);
lcd_putc_int( (adc%1000)/100 );
lcd_putc_int( ((adc%1000)%100)/10 );
lcd_putc_int( ((adc%1000)%100)%10 );
//printf(" gia tri doc la : %u", adc );
delay_ms(200);
}