可以用到高速計數器hsc,中斷及運算,最大脈衝(chong) 數為(wei) 32767。
速度測量方法
用定時中斷測前一次計數和本次計數差值,乘以定時中斷的頻率,再除以編碼器分辨率就是轉速了。
假如本次中斷計數器計數值是vd4,上次計數值是vd0,定時中斷時間為(wei) 0.1秒,編碼器分辨率是2000p/r
那麽(me) 轉速就是(vd4-vd0)/10/2000
計數方法參見如下資料
1、建一個(ge) 初始化程序,用SM0.1控製;
2、在初始化程序中,初始化高速計數器
2.1 設置控製寄存器(HSC0為(wei) SMB37),不同的計數器對應不同的DI點,HSC0為(wei) I0.0,HSC3為(wei) I0.1,HSC4為(wei) I0.2,HSC5為(wei) I0.3(222不支持HSC1和HSC2)
2.2 執行HDEF指令,你可以用模式0
2.3 置計數器初始值(HSC0為(wei) SMD38),如果從(cong) 零啟動就置零
2.4 置預置值(HSC0為(wei) SMD42),計數器計到這個(ge) 值可以產(chan) 生一個(ge) 中斷,一般利用這個(ge) 中斷調用相應的中斷程序把當前值(SMD38)複零,否則計數器到頭就不再計數了,當然你也可以置一個(ge) 大點的值,在其他程序中清除當前值(SMD38),確保永遠到不了頭就可以了。
2.5 指定中斷程序(ATCH),中斷事件是12,程序號看你程序了
2.6 打開中斷(ENI),這條指令沒有的話,2.5是不起作用的
2.7 啟動高速計數器(HSC),按前麵的初始化,你就要啟動HSC0,即N為(wei) 0
3、程序中讀取高速計數器的值,對於(yu) HSC0,HC0單元中的內(nei) 容就是當前的計數值,這個(ge) 單元隻讀不能寫(xie) ,你可以通過修改SMD38的內(nei) 容改變當前的計數值。