會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





Indirect Addressing 有 c sample code 嗎?
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 17
等級: 2; EXP: 86
HP : 0 / 46
MP : 5 / 66
離線
請問 PIC16系列提到的 Indirect Addressing
有無 C 的sample code??

6月10日 13:19:57
轉換PDF檔 列印


Re: Indirect Addressing 有 c sample code 嗎?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 15078
等級: 73; EXP: 94
HP : 1094 / 1823
MP : 5026 / 86297
離線
使用陣列及指標型態時,C Compiler 會將其轉為間接定址模式。

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

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

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

6月10日 14:45:06
轉換PDF檔 列印


Re: Indirect Addressing 有 c sample code 嗎?
新會員
註冊日期:
1月13日 17:42:39
所屬群組:
註冊會員
文章: 17
等級: 2; EXP: 86
HP : 0 / 46
MP : 5 / 66
離線
請問
在 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:38
轉換PDF檔 列印


Re: Indirect Addressing 有 c sample code 嗎?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 15078
等級: 73; EXP: 94
HP : 1094 / 1823
MP : 5026 / 86297
離線
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:24
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project