• slider image 71
  • slider image 72
  • slider image 73
:::


Browsing this Thread:   1 Anonymous Users






Indirect Addressing 有 c sample code 嗎?
#1
新會員
新會員


查看用戶資訊
請問 PIC16系列提到的 Indirect Addressing
有無 C 的sample code??

發表於: 6/10 13:19
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: Indirect Addressing 有 c sample code 嗎?
#2
版主
版主


查看用戶資訊
使用陣列及指標型態時,C Compiler 會將其轉為間接定址模式。

注意: PIC16Fxxx 與 PIC16F1xxx 的指標定址方式不盡相同,建議使用新的 PIC16F1xxx 進階系列的元件

可以參考一下 XC8 教育訓練課程裡的範例。
http://www.microchip.com.tw/Data_CD/

8-Bits MCU 相關課程 --> XC8T v1.0 的教材

發表於: 6/10 14:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: Indirect Addressing 有 c sample code 嗎?
#3
新會員
新會員


查看用戶資訊
請問
在 XC8T v1.0 中提到的

1.
文中提到的 變數絕對定址的方法 (@address)

對到的位址是是 對到 P15. "PIC16F1 新架構下的 FSRs" 這裡的位址嗎??

如 int foobar @ 0x003; 是會對在STATUS 這個特殊暫存器嗎?


2. 若我想要用 "PIC16F1 間接定址模式 (FSR)"

uint8_t value;
FSR0H=0x00;
FSR0L=0x0C;
value=INDF0;

=> value 會等於 月bank 0 0x0C (PORTA) 暫存器的值嗎??
PS: 用PIC16LF18345

發表於: 6/10 16:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: Indirect Addressing 有 c sample code 嗎?
#4
版主
版主


查看用戶資訊
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 會比較好。周邊暫存器用索引定址很奇怪,索引大部分都使用在大量記憶體的存取,最常用的就是陣列。

發表於: 6/12 10:49
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.

[進階搜尋]