久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊 登錄
返回首頁

uid:80954的個人空間

日志

DSP28335延時函數在flash中運行

熱度 2已有 5248 次閱讀2015-5-24 11:11 | DSP

 DSP28335— DELAY_US總結 
 
在很多程序中都會調用延時程序DELAY_US(A),在文件DSP2833x_Examples.h中有如下宏定義:

#define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)
從定義很容易推算出,需要延時A微妙就把DELAY_US()的參數設置為A即可。

在仿真調試的情況下運行程序,延時是較準確的,但是當把程序燒寫到flash里運行時,如果程序上不做修改,就會很容易發現延時的時間比你設置的要長(通過延時控制LED燈閃爍,很直觀)。這是因為,DSP訪問flash時需要等待時間的,而訪問RAM時幾乎是零等待,所以在使用DELAY_US(A)時要想延時時間準確必須使其在RAM里運行,在程序上需做如下修改:

1、在DSP2833x_usDelay.asm中,有如下代碼:


       .def _DSP28x_usDelay
       .sect "ramfuncs"

        .global  __DSP28x_usDelay
_DSP28x_usDelay:
        SUB    ACC,#1
        BF     _DSP28x_usDelay,GEQ    ;; Loop if ACC >= 0
        LRETR

其中.sect "ramfuncs"語句的作用就是就把用匯編寫的函數DSP28x_usDelay定位在ramfuncs段。

 

2、在工程中添加源文件DSP2833x_MemCopy.c,該文件中的函數void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr),實現把你想復制的代碼從裝載地址RamfuncsLoadStart—RamfuncsLoadEnd拷貝到RamfuncsRunStart開始的SARAM空間中。

 

3、在文件DSP2833x_SysCtrl.c開頭,通過偽指令定義一個代碼段,注意位置一定要放在函數前面(如下圖所示)。

DSP28335— <wbr>DELAY_US總結

4、在main函數中要調用MemCopy函數,注意該函數放置的位置。

DSP28335— <wbr>DELAY_US總結
5、修改用于燒寫的CMD文件
DSP28335— <wbr>DELAY_US總結

 

6、注意在頭文件DSP2833x_GlobalPrototypes.h 別忘做如下聲明:

DSP28335— <wbr>DELAY_US總結


路過

雞蛋
2

鮮花

握手

雷人

剛表態過的朋友 (2 人)

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 特级毛片| 成人久久 | 少妇久久久久 | 午夜免费观看网站 | 亚洲国产精品视频 | 国产 欧美 日韩 一区 | 日韩精品一二三 | 国产亚洲网站 | a级在线| 一级特黄色毛片 | 欧美一区二区三区久久精品 | 伊人影院99 | 久久大全 | 成人免费看片又大又黄 | 久久久精品综合 | 美国a级毛片免费视频 | 久久久久免费观看 | 亚洲九九色| 日本在线视频一区二区 | 日本精品视频 | 中国一级特黄真人毛片免费观看 | 91免费入口 | 91婷婷韩国欧美一区二区 | 日日噜噜噜夜夜爽爽狠狠视频, | 欲色av| 在线免费观看欧美 | 午夜欧美a级理论片915影院 | 亚洲国产精品va在线看黑人 | 日本亚洲精品 | 精品在线一区 | 国产成人精品区一区二区不卡 | 日日夜夜av | 久久久久国产 | 欧美毛片免费观看 | 男女网站在线观看 | 国产在线一区二区 | 久久福利电影 | 国产在线一区二区三区 | 国产在线一区二 | 国产在线精品一区 | 精品国产乱码久久久久久影片 |