Làm sao nó cứ báo lối
em viết cái CODE để xử lý ngắt mà sao nó cứ báo lỗi chỗ enable_interrups (INT_LED)
Mong các sư phụ giúp đỡ #include "D:\pic-c\a\bai2.h" #use delay (clock=2000000) //#device PIC16F877A *=16 int8 mode,i; byte temp; #INT_EXT EXT_LED() { mode++; if (mode==3) mode=0; } void program1(); void program2(); void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); 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); enable_interrups(INT_LED) ; ext_int_edge(H_TO_L); enable_interrups(GLOBAL) ; mode=0; while(1) { // TODO: USER CODE!! output_b(0x00); delay_ms(500); switch (mode) { case 0:program1();break; case 1:program2();break; } } } void program1() { set_tris_b (0x00); output_b(0xf0);delay_ms(300); output_b(0xff);delay_ms(100); } void program2() { temp=0xff; for (i=0;i<=8;i++) { output_b(temp); delay_ms(150); temp <<=1; } } |
bác phải để là
#int_ext void ext_led {...} ... ... enable_interrupt(int_ext); |
Vẫn không được các bac ơi
Trích:
|
Quái lạ, mình đọc phần Help của CCS mãi mà không thấy cái ngắt có tên là (INT_LED)?
Chắc là bạn nhầm rồi, sử dụng ngắt nào phải khai báo enable ngắt đó: enable_interrups(INT_LED) ; đáng nhẽ phải là INT_EXT chứ nhỉ; Có báo lỗi tiếng anh cố đọc mà hiểu thôi? Có hàm ( chương trình con) là nên khai báo chứ nhỉ. Cái chương trình trong ngắt cũng phải khai báo (void....;) còn viết sau khai báo ngắt thì không dùng void thấy chạy bình thường? |
Code:
#include <16f887.h> |
cam on
Trích:
|
Múi giờ GMT. Hiện tại là 12:43 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam