View Single Post
Old 14-05-2008, 12:14 AM   #7
hanhthien184
Nhập môn đệ tử
 
Tham gia ngày: Oct 2007
Bài gửi: 4
:
Smile

Cảm ơn anh Nam đã giúp đỡ.
Em đã giải quyết được vấn đề ngắt này,và chỉnh lại code cho hợp lý:
Code:
//--- External Interrupt routine (INT4 - ADS)---
  void interrupt_int4() org 0x80 {                //When ADS is asserted
     addr_select = PORTA;
     addr_select &= 0x3F;
     switch (addr_select) {
       case 0:  LATD = ADC_1; break;
       case 2:  LATD = ADC_2; break;
       default: LATD = 0xDD;
       }
     IFS3bits.INT4IF = 0;           //ensure interrupt not pending 
  }
Trong đó ADC_1 và ADC_2 được lấy từ chuyển đổi hai kênh ADC.
(Ở phía trên em cho ADC_1 = 0xAA và ADC_2 = 0xBB chỉ là để test )
Vấn đề của em là do tín hiệu ngắt ngoài được lấy từ PC,dữ liệu cũng được truyền về PC (và còn một số vấn đề khác của phần cứng)nên ban đầu ko rõ nguyên nhân.Vì tín hiệu ngắt ngoài ko ổn định nên giá trị nhận được ko chinh xác.Còn lại hàm ngắt và chuyển đổi ADC ko có vấn đề gì.

thay đổi nội dung bởi: hanhthien184, 14-05-2008 lúc 12:20 AM.
hanhthien184 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn