作者ruemann (樹海游魂)
看板ASM
標題Re: [問題] 單晶片使用Keil C ?
時間Sun Jun 21 02:40:22 2009
※ 引述《hotpot21 (小新)》之銘言:
: ※ [本文轉錄自 C_and_CPP 看板]
: 作者: hotpot21 (小新) 看板: C_and_CPP
: 標題: [問題] 單晶片使用Keil C ?
: 時間: Sat Jun 20 17:28:21 2009
: 大學時期學C(螞蟻書) 只是在電腦上Run
: 現在碰到單晶片使用Keil C,有看過相關程式、與51晶片的各接腳功能
: 有些地方一直搞不懂
: (程式主要是控制LCD的驅動IC)
: 請問。。。
: 1.程式裡的哪些變數才是對應到晶片上的接腳? 一直連結不起來 @@
: 怎麼設定 ?
一般單晶片都會有一塊特殊的暫存器(記憶體),用來儲存對應硬體的狀態
控制硬體(不管是 IO 還是 timer 或是 UART)其實就是對那些暫存器做存取而已
至於你說是那些變數嘛,我建議是去下載你要使用的MCU的datasheet,
從裡面找答案比較快
: 2.初學者如何吸收才會較有效率?
做中學啦
: 又如果在"晶片控制LCD的驅動IC"方面來說 要如何學習與吸收?
去買/借台示波器是很重要的
: 3.看到程式裡有如下:
: void WRITE(unsigned int cmd)
: {
: .
: .
: .
: .
: .
: XBYTE[0X01] = cmd ;
: }
: 請問 XBYTE[0X01] 是什麼意思?
這樣的話只能說是 XBYTE 這個陣列的 第1個 元素(因為是C的關係嘛)
但是 XBYTE 是去控制什麼就無法解答了
: 4. 譬如 location = 0X0000
: 只知道 0X0000 是16進制 但為何要 = 0X0000 ? 而不是一般的數@@
有時候是習慣,例如對address指定時,用 16 進位比較清楚
: 麻煩各位前輩教導!! 原諒小弟的才疏學淺..
: 非常感謝各位
一般初學者的問題在 datasheet 中可以找到解答,C的部份,在keilC的help中也
可以找到大部份的解答
--
我是路人甲
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.29.223
1F:推 hotpot21:1.目前情況:自行閱覽程式 未開始做 不知以後是否會有人敎 06/21 12:55
2F:→ hotpot21:2.有配合IC datasheet 一起看!! 不過時序圖看不懂..... 06/21 12:57
3F:→ hotpot21:3.如果陣列語法 那0X01不是應該改成整數=>XBYTE[2] ? 06/21 12:58
4F:→ hotpot21: 所以那是何種語法? 06/21 13:00
5F:→ hotpot21:很感謝你耐心的回答與指導!! 06/21 13:00
6F:→ hotpot21:剛又想了一下 3. ..為陣列第一個元素 意思是0X01換算成1? 06/21 13:30
7F:→ hotpot21:十六進制換算成十進制? 06/21 13:31
8F:推 dexders:XBYTE是keil c內建的指令 用來存取單晶片內部延伸記憶體 06/21 16:57
9F:→ dexders:XBYTE[0x01] 就是存取XRAM位址0x01 06/21 16:57
10F:→ hotpot21:XRAM 是外部記憶體?? 06/21 18:46
11F:推 utility:把keil的手冊看一看...它會跟你說.要用到各種記憶體的方式 06/21 20:56
12F:→ ruemann:XRAM有可能是內建也有可能是外掛的記憶體,用xmov去做搬移 06/21 23:51
13F:→ ruemann:的都算 06/21 23:51
14F:推 kenji1101:所以原PO所謂的單晶片是51囉@@? 06/22 09:11
15F:推 hotpot21:XBYTE看了Cx51 User's Guide 06/25 00:14
16F:→ hotpot21:還是不知道怎麼用!! 是對應到實體電路的哪個部份?? 06/25 00:16
17F:→ MasterChang:你還是先去買本書來看吧! 06/25 00:20
18F:→ hotpot21:哪本推的? 有去看過很多書了 大部分都沒提到@@!! 06/25 00:35