打印

请务必进来回答---F2812的延时疑问

[复制链接]
6437|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vlinux|  楼主 | 2011-5-30 20:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前天我发了相似的帖子,可能是问题太低级的原因吧,没有人回复。
我想,不管水平如何,大家进来说两句。我这两天因为这个睡不着,我大四了,毕业设计做的是dsp电机控制。   现在卡在液晶调试这块,请给我指点一下。很感激。

是这样,我用2812调12864液晶,在写时序上出现问题,以前我用单片机做延时,能够正常显示的程序,现在用dsp来做时序上却出问题了。我想知道怎么用dsp来做延时?

1:原来我想直接调用TI现成的函数DSLAY_US(A),但是发现程序一直停在DSLAY_US(A),不动,不知道什么原因,我想请问怎么调这个函数用。

2:如果我不用DSLAY_US(A),编一个延时函数,你们一般怎么编?

相关帖子

沙发
vlinux|  楼主 | 2011-5-30 20:15 | 只看该作者
21ic 的技术员很没人情味啊

使用特权

评论回复
板凳
Mario00| | 2011-5-30 20:19 | 只看该作者
顶一顶

使用特权

评论回复
地板
vlinux|  楼主 | 2011-5-30 20:24 | 只看该作者
无语

使用特权

评论回复
5
vlinux|  楼主 | 2011-5-30 20:36 | 只看该作者
:(

使用特权

评论回复
6
aresc| | 2011-5-31 21:21 | 只看该作者
1. 能把delay_us的程序贴一下吗? 从网上其他的讨论看,好像是有个寄存器ACC没有赋初值,如果ACC很大,要减到小于0退出delay loop要很长时间, 你看看DELAY_US(A)中的A是怎么用的?

2. 自己写,写一个空的for循环,然后让编译器别把这个for循环优化掉,延时长就for循环的时间长一些.
      void delay_test(int cnt)
      {
               volatile int i;
               for (i=0; i<cnt; i++)
               {
               }
      }
   
     不用定时器中断的话,只能通过DSP的汇编指令数目来进行延时, 比如DSP执行一条ADD的指令周期是10ns, 那比如延时1us,就需要1us/10ns条ADD指令. 自己写也很简单.

使用特权

评论回复
7
vlinux|  楼主 | 2011-6-12 10:36 | 只看该作者
6# aresc

       .def _DSP28x_usDelay
       .sect "ramfuncs"

        .global  __DSP28x_usDelay
_DSP28x_usDelay:
        SUB    ACC,#1
        BF     _DSP28x_usDelay,GEQ    ;; Loop if ACC >= 0
        LRETR
这是Delay函数的定义,汇编的,下面是调用

#define DELAY_US(A)  DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

使用特权

评论回复
8
aresc| | 2011-6-12 21:38 | 只看该作者
本帖最后由 aresc 于 2011-6-12 21:39 编辑

这里http://www.61ic.com/Article/C2000/C28X/201010/27784.html有一个关于F2812的DELAY的详细说明. 从里面的C调用汇编函数,参数值是传给ACC了,程序应该没问题.

在SUB指令那加个断点,用CCS看看第一次进去ACC里的值是不是(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)?
或者把(long double)A换成(unsigned long)试试.

使用特权

评论回复
9
ask112win| | 2011-11-15 09:38 | 只看该作者
谢谢楼主的提问

使用特权

评论回复
10
rcengtian| | 2013-9-25 09:52 | 只看该作者
我也遇到相同的问题?怎么回事?解决了吗?

使用特权

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

本版积分规则

5

主题

99

帖子

2

粉丝