![]() |
|
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 |
|
![]() |
#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 0 ![]() case 1 ![]() } } } 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; } } |
![]() |
![]() |
![]() |
#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); |
![]() |
![]() |
![]() |
#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
|
![]() |
![]() |
![]() |
#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.... ![]() |
![]() |
![]() |
![]() |
#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; } } |
![]() |
![]() |
![]() |
#6 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 4
: |
cam on
Trích:
|
|
![]() |
![]() |
![]() |
|
|