- 积分
- 1094
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 30
- 最后登录
- 1970-1-1
该用户从未签到
|
发表于 2011-9-13 16:54
|
显示全部楼层
来自: 中国北京
回复 56# cj_212121
重新解压缩了一个你发来未经任何改动的程序,上电一试,确实是0x9872,也就是那句话是起作用了的。
转了转电机,发现测试转速是实际转速的4倍,旋变是2对极,这里还差个两倍的关系,不过好解决,等你的板子好了,很容易就可以找出来为啥差两倍了,但是数值都是对的,只是差两倍。
因此,你发来的程序,在转速判断方面没有任何问题。所以,你还是可以看下你硬件环境,或者仿真设置的问题,譬如程序并没有真正很好的运行,有些区域的RAM或者FLASH无法工作之类的。
因为TIMER ENABLE的原因,检测到脉冲了,但是并没有计数,但QEP模块可以检测到计数的方向,因此在静止的时候,电机可能有抖动,就导致这个方向在跳,其实这时候转速可能也在正负一转之间跳动了,只是没采到,电机转起来DirectionQep就不会跳了。
因为我们判断转速是根据T2CNT的计数变化来计算的。程序会自动判断出转速来,所以没必要使用这个QEP模块判断出来的结果了。可以注释掉DirectionQEP,也可以留那不用。
index_sync_flag这个是一个表示已经同步过的flag信号,其实TI本身并没有用这个变量,可以注释掉。。。
为啥是0x00F0.。。他随便定的,也可以叫0x1234,无非就是说明这个变量的时候,说明本次已经同步过了。
使用CCS的watch window的步骤就是TI的PMSM3_1手册里面说的最基本的方法,没有特殊的地方。 |
|