做了一个双电机控制的板子,做了个简单的测试程序:
if(1号电机启动按钮 ==1 && 2号电机启动按钮 ==1)
{
1号电机和2号电机停止;
}
if(1号电机启动按钮 == 0 )
{
1号电机启动;
}
if(2号电机驱动按钮 ==0)
{
2号电机启动;
}
程序运行过程中发现F28035扫描的很慢:
我一直按下1号电机的启动按钮(1号电机启动按钮==0),电机先开始启动,然后停一下,然后再启动。
按下2号电机的启动按钮,要等一会儿2号电机才启动,然后又停了,再启动。
我想出现上面的原因应该是程序扫描周期的问题。系统时钟是60MHZ,不知道为什么扫描这么慢,感觉还没有8位单片机块。
我是哪里设置错了?
我是直接用F28035.CMD和DSP2803x_Headers_nonBIOS.cmd这两个CMD文件下载的程序……
Eric Ma:
Lzh,
有没有其他中断代码打算扫描?
你也可以设断点在这些判断条件里,或是用一个counter变量在判断条件的执行代码里面,然后观察一下conter的计数,看到底是什么原因。
Eric
做了一个双电机控制的板子,做了个简单的测试程序:
if(1号电机启动按钮 ==1 && 2号电机启动按钮 ==1)
{
1号电机和2号电机停止;
}
if(1号电机启动按钮 == 0 )
{
1号电机启动;
}
if(2号电机驱动按钮 ==0)
{
2号电机启动;
}
程序运行过程中发现F28035扫描的很慢:
我一直按下1号电机的启动按钮(1号电机启动按钮==0),电机先开始启动,然后停一下,然后再启动。
按下2号电机的启动按钮,要等一会儿2号电机才启动,然后又停了,再启动。
我想出现上面的原因应该是程序扫描周期的问题。系统时钟是60MHZ,不知道为什么扫描这么慢,感觉还没有8位单片机块。
我是哪里设置错了?
我是直接用F28035.CMD和DSP2803x_Headers_nonBIOS.cmd这两个CMD文件下载的程序……
Bruce:
回复 Eric Ma:
有一个LED闪烁的定时器中断,我试试加个定时器看看。
谢谢……
做了一个双电机控制的板子,做了个简单的测试程序:
if(1号电机启动按钮 ==1 && 2号电机启动按钮 ==1)
{
1号电机和2号电机停止;
}
if(1号电机启动按钮 == 0 )
{
1号电机启动;
}
if(2号电机驱动按钮 ==0)
{
2号电机启动;
}
程序运行过程中发现F28035扫描的很慢:
我一直按下1号电机的启动按钮(1号电机启动按钮==0),电机先开始启动,然后停一下,然后再启动。
按下2号电机的启动按钮,要等一会儿2号电机才启动,然后又停了,再启动。
我想出现上面的原因应该是程序扫描周期的问题。系统时钟是60MHZ,不知道为什么扫描这么慢,感觉还没有8位单片机块。
我是哪里设置错了?
我是直接用F28035.CMD和DSP2803x_Headers_nonBIOS.cmd这两个CMD文件下载的程序……
Bruce:
回复 Bruce:
我利用CPU定时器1(计数频率60MHZ),测试了一下:
1、初始化完成大概300us。
2、初始化完成然后扫描,到各个外部信号的有效条边沿扫描到DSP,也就十几us,但是执行的过程中,好像是隔1s左右抖动一下。
3、唯一不确定的是在单步执行的情况下,CPU定时器1是自由运行的吧? 这样测量方法是不是对的?
请教TI的高手了
做了一个双电机控制的板子,做了个简单的测试程序:
if(1号电机启动按钮 ==1 && 2号电机启动按钮 ==1)
{
1号电机和2号电机停止;
}
if(1号电机启动按钮 == 0 )
{
1号电机启动;
}
if(2号电机驱动按钮 ==0)
{
2号电机启动;
}
程序运行过程中发现F28035扫描的很慢:
我一直按下1号电机的启动按钮(1号电机启动按钮==0),电机先开始启动,然后停一下,然后再启动。
按下2号电机的启动按钮,要等一会儿2号电机才启动,然后又停了,再启动。
我想出现上面的原因应该是程序扫描周期的问题。系统时钟是60MHZ,不知道为什么扫描这么慢,感觉还没有8位单片机块。
我是哪里设置错了?
我是直接用F28035.CMD和DSP2803x_Headers_nonBIOS.cmd这两个CMD文件下载的程序……
Martin Yu:
回复 Bruce:
Lzh,
根据你的描述应该是你的软件问题,建议用最简单的程序跑,关掉所有中断,禁止看门狗等,最好将代码贴上来看下。
关于Timer1是否自由运行科通过寄存器Timer1CTR的FREE和SOFT进行设置,详见datasheet.