View Single Post
Old 18-04-2007, 09:30 AM   #351
bluepine
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 53
:
Chào bạn,
thông số động cơ của tớ là:
Ra= 2.1 ohm; La = 3.3 mH, moment inertia: J = 5.5x10^(-4); Kt= 0.11N.m/A, damping ratio b= 0.29
Động cơ tớ mua là đồ second hand, cái nhãn bị mờ ròi nên nhìn không rõ, nên lên mạng tìm và thấy cái này có hình rất giống thôi, không biết chính xác hay không nữa.
còn về đoạn code trên thì tớ giải thích ngắn gọn thế này: tớ dùng timer0 ở chế độ ngắt tràn để đếm xung ngoài từ encoder, timer1 ở chế độ ngắt tràn.
đoạn chương trình trên có thể viết lại như sau

v_cur = timer0_interupt_number*2*(255 - START_VALUE_TIMER0) + 2*(get_timer0() - START_VALUE_TIMER0);

+ v_cur: số xung đếm được trong mỗi chu kì ngắt timer1
+ timer0_interupt_number: số làn timer0 tràn trong mỗi chu kì ngắt timer1
+ START_VALUE_TIMER0 giá trị nạp cho thanh ghi timer0 ban đầu
+ phải nhân 2 vì ở chế độ đếm xung ngoài thì scaler min =2, (coi datasheet)
+ Nhân (255 - START_VALUE_TIMER0) là số xung mỗi lần timer0 tràn
+ Cộng 2*(get_timer0() - START_VALUE_TIMER0) vì khi ngắt timer1 thì timer0 vẫn đang đếm nên phải cộng thêm giá trị hiện tại của timer0.
chút vui
bluepine vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn