Trích:
Nguyên văn bởi saobang
Em cảm ơn 2 a nhiều! Nhưng mà 2 a chưa có hiểu ý e hỏi, nói đúng hơn là e cũng ko biết nói sao cho mấy a hiểu nữa ( e tệ về khoảng diễn đạt ý này lắm). Ý của em đại loại là như thế này:
ví dụ như trong đoạn code này:
Code:
void Timer1_isr()
{ // Ham duoc goi khi Timer1 tran (65535->0) //
//Timer1 dinh thoi 1s //
if(--int_count1==0) //Em chưa hiểu cái hàm timer
{ //này nó như thế nào
int_count1 = INTS_PER_SECOND1;
so_vong = (count*255 + get_timer0())/400; //
count = 0;
set_timer0(0);
}
câu lệnh "if(--int_count1==0) " thì em hỉu câu lệnh đó là: " cứ mỗi khi timer1 tràn thì biến int_count1 giảm đi 1, đến khi int_count1=0 thì sẽ thực hiện các lệnh tiếp theo trong hàm. (không biết đúng không nữa) hì hì
Còn những lệnh tiếp theo em chưa hiểu. Mong các ace chỉ rõ rõ giùm.
vd như sao lại phải gán int_count1=INTS_PER_SECOND1
|
Cau lenh int_count1=INTS_PER_SECOND1 de gan lai gia tri int_cont1 ma (luc nay no da giam het ve 0), lan sau ve 0 so_vong lai duoc tinh tiep ma.
count là số lần ngắt của timer0 => count*255+gia tri hien thoi cua timer0 suy ra so xung encoder ma no nhan duoc, phai chia cho 400 la so xung trong 1 vong=> so vong quay