我用时基做的中断程序,发现CONFIG2寄存器的TBMCLKSEL位,无论设置为1还是0,对中断时间没有影响啊,还有一个问题是TBCR寄存器的TBR2,TBR1,TBR0的设置也只有000,001,010的中断时间是正确的,其他的与理论值不同。
函数如下:
void main(void) {
DDRF_DDRF3=1;
 TF_PTF3=0; CONFIG1=0x05; CONFIG2_MSCANEN=1; //CAN使能 CONFIG2_TMCLKSEL=0;
CONFIG2_OSCENINSTOP=1; PCTL_BCS=0;
TBCR_TBR0 =0; //TB divider selection bits TBCR_TBR1 =0; TBCR_TBR2 =1; TBCR_TBIF =0; //TB interrrupt not pending
TBCR_TBON =1; //TB enable TBCR_TBIE =1; EnableInterrupts; while(1){ }
} interrupt 17 void TBM_Interrupt(void) { TBCR_TACK =1;  TF_PTF3=PTF_PTF3^1; }
请帮忙看看,需要哪里需要改正。谢谢 |