PIC16F1823 計時器設定問題

作者 a780917a 於 2018年04月09日 14:40:27
HI 各位前輩好:
我用PIC16F1823的內部震盪想做一個0.1ms中斷一次的計時器。
但是功能一直有問題,以下是我程式中TMR2的相關設定。

目前的問題是我寫入TMR2的數值好像都沒有影響到中斷的速度,
原本預計是TMR2=0xE6,到PR2的0xFF 只有25個數 25/250K = 0.1ms
但是量測出來的數值都是1ms才發生中斷,猜測是8bit跑好跑滿了 255/250K = 1ms
我key的TMR2的數值好像都不影響結果。這是哪裡出問題呢?


void interrupt ISR(void)
{
if(TMR2IE && TMR2IF)
{
TMR2IF=0;
CTER1++;
CTER2++;
TMR2 = 0xE6; //Reset計時器 0x7C=230
}
}

int main(void)
{
OSCCON=0xFF; //16MHZ
InitTMR2();
GIE = 1;//允許所有中斷
PEIE = 1;//允許所有外設中斷
}


void InitTMR2(void)
{
T2CON = 0x7C; //後分比1:16 //啟動TMR2計時 4M/16=250k
TMR2 = 0xE6; //Reset計時器 0xE6=230
PIE1bits.TMR2IE = 1; //25/250k = 0.1ms發生中斷
PIR1bits.TMR2IF = 0;
}

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22256&post_id=77957