用的是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!于是验证可行! |