我使用Protues对PIC16F1936进行仿真其内部定时器0,可是仿真实际值与理想值就是不同,真不知道怎么回事了!求大家指教,下面是代码部分:
__CONFIG(FOSC_INTOSC & WDTE_OFF & IESO_OFF);
int main()
{
PEIE = 1;
TMR0IE = 1;
GIE = 1;
OSCCONbits.SCS = 3;
OSCCONbits.IRCF = 13;
PIN_DIR(LED,PIN_OUTPUT);
OPTION_REGbits.PS = 0;
OPTION_REGbits.PSA = 1; // 禁止预分频器
OPTION_REGbits.T0SE = 0;
OPTION_REGbits.T0CS = 0; // Tcy = 4MHz/4 = 1us
TMR0 = 242; // 定时10us,TMR0 = 255-(10us/Tcy)-2(延时)-1;
while(1);
return 1;
}
void interrupt ISR(void)
{
if(T0IF)
{
T0IF = 0;
TMR0 = 245;
cnt++;
if(cnt>=100)
{
cnt = 0;
PIN_INV(LED); //反转二极管
}
}
}
|