Indirect Addressing 有 c sample code 嗎?
|
||||
---|---|---|---|---|
初級會員
|
請問 PIC16系列提到的 Indirect Addressing
有無 C 的sample code??
發表於: 2020/6/10 13:19
|
|||
|
Re: Indirect Addressing 有 c sample code 嗎?
|
||||
---|---|---|---|---|
版主
|
使用陣列及指標型態時,C Compiler 會將其轉為間接定址模式。
注意: PIC16Fxxx 與 PIC16F1xxx 的指標定址方式不盡相同,建議使用新的 PIC16F1xxx 進階系列的元件 可以參考一下 XC8 教育訓練課程裡的範例。 http://www.microchip.com.tw/Data_CD/ 8-Bits MCU 相關課程 --> XC8T v1.0 的教材
發表於: 2020/6/10 14:45
|
|||
|
Re: Indirect Addressing 有 c sample code 嗎?
|
||||
---|---|---|---|---|
版主
|
STATUS Reg. 在 h 檔已宣告過了,用 FAR1 = 0x0003 是可以存取到的,只不過為避免定義上的混淆,一般不建議再做其他的宣告。
XC8 底下 STATUS 都由都由 C 程式自行判斷使用,一般是不會看 STSTUS Reg. 的,但用組合語言是例外。 索引定址在PIC16F1xxx (Advanced Mid-Range) 有兩種方式: 1. 是傳統的索引定址模式,其定址範圍 RAM (0x0000 ~ 0x0FFF) 2. 是資料區線性定址: FSRx 線性定址起始位址 0x2000 ~ 0x29AF (BANK31 不列入),允許使用較大的資料堆疊、陣列、暫存區 … 等 3. 你的程式是屬於類組和語言的寫法,是可以用的。直接用 PORTA 會比較好。周邊暫存器用索引定址很奇怪,索引大部分都使用在大量記憶體的存取,最常用的就是陣列。
發表於: 2020/6/12 10:49
|
|||
|