![]() |
Lưu ý thứ tự code
Nếu bạn gửi kèm cả file mạch mô phỏng để check thì tốt!
Bạn thử chuyển hàm khoidong() lên trước ngat #int_ext xem sao! (Để hàm ngắt ngay trên hàm main()). |
|
Sorry!
Rất tiếc! Tớ dùng bản 7.4
Không mở được file của bác. :') Bác đã tìm ra lỗi chưa zay? |
Trích:
Code:
char ascii[10]={'0','1','2','3','4','5','6','7','8','9'}; Code:
>>> Warning 216 "test1.c" Line 157(0,1): Interrupts disabled during call to prevent re-entrancy: (@delay_ms1) |
Cám ơn các bạn rất nhiều !!!
Mình đã thử bỏ thư viện keypad_input.c, đúng là nó chạy được thật, để mình xem lại xem cái thư viện đó sai chỗ nào, nhưng ko hiểu sao mình dùng cái thư viện chuẩn của ccs lại được nhỉ !!! |
Trích:
Code:
setup_adc_ports(AN0_ANALOG); @pk178:Chắc do hàm Keypad của bạn có dụng chạm gì đó đến ngắt chính. Bạn có thể viết riêng hoặc tìm trên net về keypad 4x4 mà ko cần dùng ngắt, code cũng khá đơn giản mà. Ko nhất thiết phải dùng đúng thư viện của PIC |
Cám ơn các bạn đã giúp đỡ, vấn đề trên mình đã giải quyết được rồi, tuy ko được như ý muốn, nhưng cũng thực hiện được vấn đề.
Nguyên nhân CCS báo lỗi như vậy là do tràn stack, trong trình phục vụ ngắt dài quá, làm tràn stack, mình đã bỏ hết các hàm con gọi trong ngắt đi, thế là nó chạy ok. Bây giờ mình lại gặp phải vấn đề này, dịch thì ok rồi, nhưng khi cho vào proteus mô phỏng thì nó cho cảnh báo sau : "ADC conversion started before 'wait' time has expired following previous conversion or channel change" Mình thử debug thì thấy nó cảnh báo ở dòng sau : ... while(a > b){ a= read_adc(); // nó báo ở dòng này while(!adc_done()); } ..... Mình nghĩ mãi rồi, ko biết sai chỗ nào nữa, bạn nào biết thì giúp mình với, mình ko biết đưa ra mạch thật thì thế nào, nhưng mô phỏng nó báo vậy, chắc là cũng có vấn đề ! Cám ơn các bạn ! |
Múi giờ GMT. Hiện tại là 03:13 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