首先看你这个延时是用于中断,还是软件当中做delay。
如果是用中断,则用timer实现,starterware里实现的是1ms的timer延时函数,至于微秒级是不是太精确了,1us就是1000ns. 如果DSP运行在456MHz,一个cycle也就是21.3ns,1000/21.3=47cycle. 就算不考虑timer本身,这47cycle的间隔根本干不了什么事了啊,进中断,出中断都来不及。
如果是软件中做delay延时,则可以用for循环加nop这种原始的方法实现。
http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
首先看你这个延时是用于中断,还是软件当中做delay。
如果是用中断,则用timer实现,starterware里实现的是1ms的timer延时函数,至于微秒级是不是太精确了,1us就是1000ns. 如果DSP运行在456MHz,一个cycle也就是21.3ns,1000/21.3=47cycle. 就算不考虑timer本身,这47cycle的间隔根本干不了什么事了啊,进中断,出中断都来不及。
如果是软件中做delay延时,则可以用for循环加nop这种原始的方法实现。
http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
举报