打印

基于tms320f2812的串口控制电机转动总结

[复制链接]
2221|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lfzhou1006|  楼主 | 2011-10-9 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是SKD2812开发板,在板子自带的例子程序改动后,完成了串口控制电机转动程序,总结如下:1、发送123相应只能显示单独灯用switch语句加函数调用sci.txt。

大部分主要程序添加注释成功。
功能:发送1、2、3、4、5相应的dsp板子的从左至右的led一二三四五的亮(板子正放面对自己,灯只亮一个)。若板子接到电脑通过串口发来的1,则pwm(J14的27引脚,pwm为20KHZ即周期是50us)高电平会是400(EvaRegs.T1CMPR);若板子接到电脑通过串口发来的2,则pwm(J14的27引脚,pwm为20KHZ即周期是50us)高电平会是600;若板子接到电脑通过串口发来的3,则pwm(J14的27引脚,pwm为20KHZ即周期是50us)高电平会是800;若板子接到电脑通过串口发来的4,则外部扩展口(J8的18、17脚)OutRegs的最低两位为01,OutRegs=0xfd;若板子接到电脑通过串口发来的5,则外部扩展口(J8的18、17脚)OutRegs的最低两位为10,OutRegs=0xfe;

2、验证查询方式的串口程序合并pwm成功。里面有关键一步!
在文件SCI_TEST.c中把下面在InitEv(void)中的一行EvaRegs.T1CMPR = temp;注释掉放在void caswitch(unsigned char b)中的switch 语句后面。可能因为temp在case语句中被赋值后,直接跳出去了到if((SciaTx_Ready() == 1) && (Send_Flag == 1))语句上执行,temp根本未赋给EvaRegs.T1CMPR!
3、EVA(里面包含pwm产生的程序)和主程序(里面包含串口程序)建立成分立文件,其中数码管和led灯寄存器地址也分立成独立文件!
4、连接电机成功关键一步
先前调试程序,一直想套用以侯长波为基础改成的jianhuashuanglu程序,因为程序的管脚是死的绑定电机控制信号的是J14中的25、26,可能是因为中断冲突。初始化Init_Port(void)出现问题。真正调用时没有给IN2_DAT、IN3_DAT赋值成功。
没必要说一个独立的以前的编写成功的程序被套用下就是对的!还是不妨试下自己独立在目标程序上添加自己编写程序!虽说成功的程序是死的,但开发板上的管脚是很多的,这个管脚不行,可以换!于是改用其他管脚,使用扩展口输出的寄存器OutRegs的最低两位作(J8口的17、18脚)为控制信号。这样的启发出自哪里呢,因为之前调试串口程序是用到LED灯的寄存器LedReg,改变串口调试软件的发送字符,其会改变!而开发板的LED灯LedReg和OutRegs都用的扩展口,既然LED可以成功,那就不妨试试OutRegs!于是验证可行!

相关帖子

沙发
嵌入式裸机| | 2011-10-9 19:50 | 只看该作者
受益匪浅啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

340

帖子

1

粉丝