• slider image 276
  • slider image 277
  • slider image 278
  • slider image 279
  • slider image 280
  • slider image 281
:::


Browsing this Thread:   1 Anonymous Users






使用MCLR將MCU RESET之後 Data Memory裡面的自定義變數會重置嗎?
#1
高級會員
高級會員


查看用戶資訊
各位前輩好
小弟目前有一個疑問是
如果將MCLR拉LOW之後
Data Memory 裡面的資料會自動重新歸0嗎?

謝謝

發表於: 12/2 9:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MCLR將MCU RESET之後 Data Memory裡面的自定義變數會重置嗎?
#2
版主
版主


查看用戶資訊
PIC 除了 Power-On Reset 初次上電開機時的 RAM 是隨機所產生的數值外。一般有電源供應時的各種 Reset (MCLR, WDT, BOR & RESET 指令) 是不會影響到 RAM 的內容 (除了 RCON 的 TO & PD 位元)。

所以在有 Vdd 供應下,MCLR 拉 Low 的 reset 是不會改變 RAM 的內容值。這也就可以做為冷開機或熱開機的判別。

發表於: 12/2 10:17
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MCLR將MCU RESET之後 Data Memory裡面的自定義變數會重置嗎?
#3
高級會員
高級會員


查看用戶資訊
那有沒有設定是說 MCLR拉地以後 可以自動清除?
如果沒有的話 我手動初始化也是個辦法 只是蠻多變數的XD

發表於: 12/2 10:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MCLR將MCU RESET之後 Data Memory裡面的自定義變數會重置嗎?
#4
版主
版主


查看用戶資訊
在非第一次上電時的 Reset (MCLR) 後,PC 會重置成 0x0000 這時會先執行 C 的初始化程式,RAM 也會在這階段做初始值的設定(如果你有指定變數的初始值)。其他 RAM 的內容值將不會改變。

如果要將所有的 RAM 清為 0 的話,用指標的方式會比較簡單。還有你用那一顆 PIC ? 不同的 PIC 採用指標清 0 的方式會不一樣的。


本實驗將以 PIC16F1xxx 新的線性索引定址方式來存取陣列 InputBuffer[256]
若陣列大小,小於、等於 80 Bytes 查詢資料 

使用傳統 Mid-Range 方式放在 BANKn 的起始位址。
若陣列大小,大於 80 Bytes 查詢資料 

使用 FSR 線性定址方式 (可以支援巨大陣列功能)
程式中將使用到 Common Memory 來擺放指標。


// ************ 設定 PIC16F1937 Configuration Bits  ******
// 有關此設定的定義字請參考 pic16f1937.h 檔的說明
//
__CONFIG  FOSC_INTOSC WDTE_OFF PWRTE_OFF MCLRE_ON CP_OFF BOREN_ON CLKOUTEN_ON
           
IESO_OFF FCMEN_OFF FCMEN_OFF ); 
__CONFIG PLLEN_ON STVREN_OFF BORV_25 LVP_OFF);

unsigned char InputBuffer[256]    ;          // 宣告陣列 
unsigned char *near PTR ;                   // PTR 指標位址設在 Commom Memory
near unsigned int j ;                        // 變數 j 放在 Common Memory


void main(void)
{
         
OSCCONbits.IRCF=0B1110;        // 選用 8MHz * 4 (PLLEN_ON) = 32MHz(Fosc)


    
PTR InputBuffer ;

    for (
j=0j<=255j++)
    {
        *
PTR =0x00;
        
PTR++;
    }

    while(
1);

}

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


Re: 使用MCLR將MCU RESET之後 Data Memory裡面的自定義變數會重置嗎?
#5
高級會員
高級會員


查看用戶資訊
噢 對! 用指標也可以
謝謝R大指導

太感謝了

發表於: 12/2 14:00
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.

[進階搜尋]


:::

Microchip連結

http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
[ more... ]

Microchip CAE 空中教室

教育訓練中心

課程 - 台北教育訓練中心
課程 - 新竹教育訓練中心
課程 - 高雄教育訓練中心
教育訓練中心介紹
購買 - 實驗工具
臺灣實驗板介紹與資源