|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
|
17-06-2011, 07:55 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 4
: |
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 0rogram1();break; case 1rogram2();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; } } |
17-06-2011, 11:28 PM | #2 |
Đệ tử 1 túi
Tham gia ngày: Aug 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 22
: |
bác phải để là
#int_ext void ext_led {...} ... ... enable_interrupt(int_ext); |
18-06-2011, 11:13 AM | #3 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 4
: |
Vẫn không được các bac ơi
|
18-06-2011, 03:29 PM | #4 |
Đệ tử 6 túi
Tham gia ngày: Feb 2011
Bài gửi: 156
: |
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? |
18-06-2011, 09:46 PM | #5 |
Đệ tử 1 túi
Tham gia ngày: Aug 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 22
: |
Code:
#include <16f887.h> #fuses HS, MCLR #use delay (clock=2000000) int8 mode,i; byte temp; #INT_EXT void isr_ext() { mode++; if (mode==3) mode=0; } void program1(); void program2(); void main() { enable_interrupts(INT_ext) ; ext_int_edge(H_TO_L); enable_interrupts(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; } } |
19-06-2011, 09:06 AM | #6 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 4
: |
cam on
Trích:
|
|
Ðiều Chỉnh | |
Xếp Bài | |
|
|