|
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 |
30-10-2008, 11:12 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Oct 2006
Bài gửi: 21
: |
[CCS C] Khai báo biến
Mình đọc kết quả ADC tính toán xuất kết quả ra LCD, mình muốn dùng ngắt để mỗi khi tác động thì LCD hiển thị giá trị 0 và VDK củng lưu lại giá trị ADC để sau khị thoát khỏi ngắt thì dùng. Giá trị này được update khi ngắt được gọi lần nữa. Mình viết code nhưng khi mô phỏng thì dường như ngắt không chạy. Ai biết chỉ mình với. Hiện mình dùng RB7 nối nguồn thông qua nút ấn để thay đổi trạng thái chân RB7. Không biết mình mắc vậy đúng không?
code: #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) #INT_RB Void RB_Chuan_Zero ( ) { float a=0; a=(float)read_adc(); } void main() { trisb=0xF0; enable_interrupts ( INT_RB ) ; enable_interrupts ( GLOBAL ) ; { float value=0,a=0; 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; } } |
|
|