Chào các bạn! mình muốn sử dụng ngắt tạo một khoảng thời gian định thì ! ý tưởng của mình là như thế này!
Đầu tiên là viết một hàm ngắt
trong hàm main mình viết như vầy
Cho mình hỏi giá trị "dem" được tính trong hàm ngắt có thể sử dụng trong các hàm khác không? mình thấy trình dịch vẫn dịch bình thường.. còn nếu thực hiện các công việc như cộng, trừ ,nhân,chia, gọi hàm, trong hàm ngắt thì trình dịch sẽ báo lỗi
hình như
là không thể thực hiện ngắt trong khi gọi các hàm khác...???
Đầu tiên là viết một hàm ngắt
Code:
#int_timer0 void interrupt_timer0() { set_timer0(5); ++dem; if(dem==5000) { dem=0; };}
Code:
main void main() { signed int setpoint=0,previous_error=0,error,control,read; float output,derivative,integral=0; enable_interrupts(int_timer0); setup_timer_0(RTCC_INTERNAL | RTCC_DIV_2); enable_interrupts(global); set_timer0(5); while(dem=5000) // câu lệnh này có tối ưu không??? {.công việc cần thực hiện...}}
Code:
Interrupts disable during call to prevent re-trancy:@##$$%^%&
là không thể thực hiện ngắt trong khi gọi các hàm khác...???
Comment