[問題] KeilC C、ASM混合 & Delay函式
最近要完成一些function
裡頭需要使用到一些delay的時間
老闆的意思是時間大概就可以了 不需要到很準
但是我想藉此機會稍微了解一些KeilC ASM的用法
我的程式大概是這樣 (假設system CLK=12MHz)
--
void delay_2us(void)
{
unsigned short uiTemp;
__asm
{
mov uiTemp,#10 //假設繞10次2u
DJNZ uiTemp,$
}
}
int main(void)
{
.
.
.
delay_2us()
.
.
.
}
--
兩個函式需要放在同一個*.C檔中
之前的寫法是用C的loop去寫 但是時間是用量的...
想請問一下
如果我想用ASM來寫(可以來算週期來預估時間)
要怎麼寫?
BTW
我有google了一些code
不知道為什麼我compile都會錯= =
因為參考的code不在身邊
所以這邊沒辦法貼出來請教大家
謝謝
--
http://www.keil.com/support/docs/1671.htm 一定得extern出來嗎?
http://infocenter.arm.com/help/topic/com.arm.doc.dui0056d/DUI0056.pdf
朝CHAP4 這邊下手嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.237.71
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1429631469.A.892.html
※ 編輯: CCT63 (1.163.237.71), 04/21/2015 23:56:10
※ 編輯: CCT63 (1.163.237.71), 04/22/2015 00:07:48
推
04/22 17:18, , 1F
04/22 17:18, 1F
推
04/23 12:29, , 2F
04/23 12:29, 2F
→
04/23 12:29, , 3F
04/23 12:29, 3F
→
04/23 12:30, , 4F
04/23 12:30, 4F
黃色那行就是我參考網路上的寫法
mov 那邊會正確
可是DJNZ那邊會被compiler說unrecognized instruction
h大說的方法
用timer對我現在的狀況比較不適合
因為不太可能為了數時間再佔一個IP
※ 編輯: CCT63 (1.163.239.78), 04/24/2015 00:29:24
※ 編輯: CCT63 (1.163.239.78), 04/24/2015 00:29:50
推
04/25 15:17, , 5F
04/25 15:17, 5F
→
04/25 15:18, , 6F
04/25 15:18, 6F
推
04/29 01:45, , 7F
04/29 01:45, 7F
→
04/29 01:46, , 8F
04/29 01:46, 8F
→
09/05 12:47, , 9F
09/05 12:47, 9F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章