发表于:2008-10-27 11:46:23
楼主
_c_int0
SETC INTM ; 禁止中断
CLRC CNF ;B0为数据存储区
LDP #0
SPLK #0FFH,IFR ; 清所有系统中断标志
SPLK #000000000B,IMR ; 关所有中断
LDP #0E0H
SPLK #0000001000000100B,SCSR1 ;CLKIN 20M,CLKOUT 40M
SPLK #68H,WDCR ;不用看门狗
LDP #0E1H
LACL MCRA
OR #00111000b
SACL MCRA
LDP #0E8H
SPLK #1001000000000100b,CAPCONA ;禁止捕获功能
SPLK #0FFFFH,T2PR ;设置周期寄存器的值
SPLK #0,T2CNT ;设置T2寄存器初值
SPLK #1001100001110000b,T2CON ;选择正交编码器脉冲作为时钟源
POS_GET
LDP #0E8H
LACC T2CNT
LDP #POSITION
SACL POSITION ;存编码器值
B POS_GET
为什么T2CNT(2407)的值跟AB编码器的值对不上,比哪,同一个方向转,T2CNT时大时小,反方向转回原位置,不会回0?转一圈是10000脉冲(我没转过一圈),我转一圈,应该大概也要计数10000个,T2CNT不谁,线是没接错的。