![]() |
|
Tài trợ cho PIC Vietnam |
Lỗi lập trình ngôn ngữ cấp cao Những lỗi trường gặp trong lập trình. Khóa luồng khi bug được lỗi. |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#6 |
Đệ tử 4 túi
Tham gia ngày: Mar 2007
Nơi Cư Ngụ: Da Nang
Bài gửi: 69
: |
![]() Bạn nên khai báo biến Float a tại đoạn đầu chương trình và bỏ tất cả các khai báo biến float a Trong main và #INT RB như sau thi biên dịch không bị lỗi:
#include <16f877a.h> #include <def_877a.h> #FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #device *=16 adc=10 #use delay(clock=4000000) #include <thao2.c>// LCD 4bit.c #use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7) float a; #INT_RB Void RB_Chuan_Zero ( ) { // float a=0; ( bỏ dòng này) a=(float)read_adc(); } void main() { trisb=0xF0; enable_interrupts ( INT_RB ) ; enable_interrupts ( GLOBAL ) ; { float value=0 ;//a=0 (bỏ biến này) trisa=0xFF; trisd=0x00; LCD_Init ( ); LCD_putcmd(0x84); LCD_putchar("KHOI LUONG"); LCD_putcmd(0xCA); LCD_putchar(" g"); start: setup_adc_ports( ALL_ANALOG ); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(1); delay_us(10); value=(float)read_adc(); value=(value-a)*0.977; LCD_putcmd(0xC5); printf(LCD_putchar, "%f", value ); delay_ms( 500 ); goto start; } } Còn ý đồ viết chương trình của bạn tôi chưa hiểu lắm. Chúc vui! |
![]() |
|
|