为什么我如何改TCx寄存器的值定时的时间还是没变?求大神指导
代码如下
#include /* common defines and macros /
#include "derivative.h" / derivative-specific definitions */
unsigned int num,num1;
//24M总线周期,指令周期2M
//延时1S函数
void delay() {
unsigned int a,b;
for(a=0;a<2000;a++);
for(b=0;b<1000;b++);
}
void CLOCK_INIT(void);
void main(void) {
/* put your own code here */
DisableInterrupts;
CLOCK_INIT(); //时钟初始化 总线为24M
EnableInterrupts;
TFLG2_TOF=1;//清标志位
DDRM_DDRM2=1;
PTM_PTM2=1;
TSCR1_TEN=0;//定时器不使能
TCNT=0x0000;
TIOS_IOS0=1;//输出输入选择
TCTL2_OM0=0;
TCTL2_OL0=1;
TC0=0x8000;
TIE_C0I=1; //使能中断
TSCR2=0X00; //不分频
TSCR1_TEN=1;//使能
for(;;) {
/* delay();
PTM_PTM2=~PTM_PTM2;
delay();
*/
if(num==366) {
num=0;
DDRM_DDRM2=~DDRM_DDRM2;
}
} /* loop forever /
/ please make sure that you never leave main */
}
void CLOCK_INIT(void) {
// CPMUPROT_PROT=0;
// CPMUCLKS_PLLSEL=1;
CPMUOSC_OSCE=1; //选择外部振荡器
CPMUREFDIV_REFFRQ=2; //6M-8M
CPMUREFDIV_REFDIV=0; //不分频 Fref=8M
CPMUSYNR_SYNDIV=2; // 2*8*(2+1)=48M Fvco=48M
CPMUSYNR_VCOFRQ=0; //32M-48M
CPMUPOSTDIV_POSTDIV=0;//不分频 Fpll=Fvco=48M Fbus=(Fpll/2)=24M
CPMUCLKS_PLLSEL=1;
while(CPMUFLG_LOCK!=0);//等待时钟稳定
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 aa(void) {
num++;
TFLG1 = TFLG1_C0F_MASK;
TFLG2 = TFLG2_TOF_MASK;
}
#pragma CODE_SEG DEFAULT