請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
資深會員
|
大家好:
如題,個人使用16f914想將變數的RAM address, 定於BANK0 之0x71及0x72,不知該如何設定, 煩請指教,Thanks.
發表於: 2008/6/2 14:24
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
資深會員
|
大家好:
RAM的定址已解決=> volatile unsigned char eeprom_addr @ 0x71; 但現在又有一個問題,如何將RAM的位址設給FSR呢? 嘗試中... Thanks.
發表於: 2008/6/2 15:52
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
版主
|
FSR=@eeprom_addr;
如果夠狠的話 : FSR = 0x71;
發表於: 2008/6/2 15:58
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
資深會員
|
大家好:
感謝版主回答,But這行FSR=@eeprom_addr;會有錯誤=> Error [195] D:\Test\MCU\PIC\HTC_16C\TS_914C\MAIN.C; 71.5 expression syntax 不知是何原因? 再麻煩了! Thanks.
發表於: 2008/6/2 16:43
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
版主
|
抱歉! 打錯字了。應該是用 & 才能抓到位址。
FSR=& eeprom_addr;
發表於: 2008/6/2 17:54
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
版主
|
參照:
Warning [358] D:\Test\MCU\PIC\HTC_16C\TS_914C\MAIN.C; 72.17 illegal conversion of pointer to integer 會出現這種錯誤是: FSR 不是 C 所宣告指標,所以會有型態上的錯誤。只要在 Hi-Tech PICC 使用指標形態變數基本上只要指向 RAM 的指標就會使用 FSR。所以寫C 的時候不要直接動 FSR否則會發生指標錯誤的Bug。 參照: unsigned char eeprom_addr; 這是正確的寫法。
發表於: 2008/6/3 8:36
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
資深會員
|
大家好:
謝謝版主,又有一個MPLAB V8.2顯示的問題?=> unsigned char* j; 我是定義unsigned char應該是8位元吧! 在Watch視窗為何是顯示16位元呢? Address | Symbol Name | Value | Hex 042 j 0x0143 0x0143 煩請解說.Thanks. 我有試個應該沒有關係,只是顯示上的小錯誤!
發表於: 2008/6/3 11:11
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
版主
|
j 是指標變數,不是指標所指到的 unsigned char 資料,又指標為512Byte的大小所以就會用16-bit 的資料格式 (只使用 9-bit而已)。
發表於: 2008/6/3 17:02
|
|||
|
Re: 請問於PICC16 V9.6該如何自定RAM位址?
|
||||
---|---|---|---|---|
資深會員
|
大家好:
謝謝版主. 由File Register的視窗來看是真的有問題! 假設 j 的位址是在0x43,而另一由compiler 自行定義的變數位址是0x44, 又設0x43的內容為0x00而0x44的內容為0x01, 那麼於Watch的視視窗則顯示 j 的內容為0x0100, 這樣的話當0x44的內容有更動,是否會影響到0x43 的內容呢(9-bit)? 煩請指教.Thanks.
發表於: 2008/6/4 9:02
|
|||
|