32khz做主时钟,_delay_cycles();延时不对,高手近来看看
如题贴上程序:
时钟配置部分:
uint8 i; //32768Hz
for(i=0; i<0xff; i++); //wait forOSC
BCSCTL2 |= SELM_3; //MCLK:32768hz
延时部分:
#define CPU_F ((double)32768)
#define Delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define Delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
使用Delay_ms(3000);
延时连半秒都不到?请问是什么原因?
来看看吧~ 没人知道么? 不知道long类型的变量占几个字节,如果是两个字节的话,就溢出了。 你的晶振没启动吧!是不是晶振坏掉了,然后系统直接使用的RC振荡器的始终?
还有,不建议用这种方法延时,有误差的,差的还很大。
页:
[1]