• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: 請教dsPIC所耗的週期數問題
#3
新會員
新會員


查看用戶資訊
我試過了,結果是一樣的。

發表於: 2009/3/4 9:42
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教dsPIC所耗的週期數問題
#2
資深會員
資深會員


查看用戶資訊
如果改成這樣會好點嗎?

LED_FLASH = ~LED_FLASH;

發表於: 2009/3/3 15:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教dsPIC所耗的週期數問題
#1
新會員
新會員


查看用戶資訊
最近發現MPLAB有一個Disassembly Listing似乎可以列出C語言所轉換的assembly code,因此稍微看了一下以前寫的程式,結果發現在某些語法所需要的CPU cycle遠超乎想像,不知道是否是我認知的問題,例如

LED_FLASH = !LED_FLASH;

這一行,竟然要消耗15個cpu cyle,甚至比我寫成

if ( LED_FLASH )
LED_FLASH = 0;
else
LED_FLASH = 1;

還要來的多,以下是我從Disassembly Listing抓下來的結果(如附檔),不知到是否我認知有問題,請各位指教,謝謝。

72: LED_FLASH = !LED_FLASH;
008E6 BFC2CB mov.b 0x02cb,0x0000
008E8 FB8000 ze.b 0x0000,0x0000
008EA DE0044 lsr 0x0000,#4,0x0000
008EC A20400 btg 0x0000,#0
008EE 604061 and.b 0x0000,#1,0x0000
008F0 604061 and.b 0x0000,#1,0x0000
008F2 604061 and.b 0x0000,#1,0x0000
008F4 604061 and.b 0x0000,#1,0x0000
008F6 DD0144 sl 0x0000,#4,0x0004
008F8 202CB1 mov.w #0x2cb,0x0002
008FA 784091 mov.b [0x0002],0x0002
008FC B3CEF0 mov.b #0xef,0x0000
008FE 60C000 and.b 0x0002,0x0000,0x0000
00900 704002 ior.b 0x0000,0x0004,0x0000
00902 B7E2CB mov.b 0x0000,0x02cb
73:
74: if ( LED_FLASH )
00904 BFC2CB mov.b 0x02cb,0x0000
00906 604070 and.b 0x0000,#16,0x0000
00908 E00400 cp0.b 0x0000
0090A 320002 bra z, 0x000910
75: LED_FLASH = 0;
0090C A982CB bclr.b 0x02cb,#4
0090E 370001 bra 0x000912
76: else
77: LED_FLASH = 1;
00910 A882CB bset.b 0x02cb,#4

Attach file:



jpg  (0.00 KB)


發表於: 2009/3/3 15:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------