瑞薩單片機(jī)學(xué)習(xí)筆記(2)中斷的使用
WDTE = 0xac;
本文引用地址:http://m.butianyuan.cn/article/201611/318631.htm這個(gè)賦值操作就是喂狗,至今我也不知道option_byte的復(fù)位值是多少,從官網(wǎng)下載的數(shù)據(jù)手冊也沒有說明。其實(shí)可以通過一些方法來驗(yàn)證,即不設(shè)置option_byte,不喂狗,看程序是否會(huì)不停復(fù)位。廢話說完,言歸正傳,我們用定時(shí)器來實(shí)現(xiàn)定時(shí)喂狗。
這里用到的是78K0/FY-2系列單片機(jī),使用TM51作為定時(shí)器,需要配置的寄存器有:
TCL51——選擇定時(shí)器時(shí)鐘頻率,是在外部硬件時(shí)鐘頻率的基礎(chǔ)上進(jìn)行分頻。
TMC51——此寄存只有最高位TCEN51,開啟/關(guān)閉定時(shí)器。
CR51——計(jì)數(shù)比較寄存器,當(dāng)計(jì)數(shù)寄存器TM51的值等于CR51時(shí),會(huì)置位對應(yīng)中斷標(biāo)識位。此處的值不同于STC定時(shí)器的裝置值。
TMMK51——TM51中斷屏蔽寄存器位
TMPR51——TM51中斷優(yōu)先級寄存器位
本人喜歡將某個(gè)部件的初始化代碼編寫為一個(gè)函數(shù)
void init_TM51(void)
{
TCL51 = 0x05; //基于20MHz分頻為312.5KHz ,定時(shí)間隔為3.2us
TMC51 = 0x80; //打開定時(shí)器
CR51 = 0xfa; //0.8ms會(huì)產(chǎn)生中斷
TMMK51 = 0; //使能中斷
TMPR51 =0; //設(shè)置為高優(yōu)先級中斷
EI(); //還記得前面添加的#pragma EI 嗎?總中斷使能,剛開始摸索的時(shí)候就是忘記添加此行代碼
}
中斷函數(shù):
#pragma interrupt INTTM51 inter_TM51 rb1
__interrupt void inter_TM51(void)
{
//添加自己的代碼
}
評論