新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2017-9-7
- 在线时间
- 15 小时
|
1金钱
探索者的板子,想做一个1k到1m的扫频程序,精度为1k,
int main(void)
{
u16 led0pwmval=2;
u8 dir=1;
Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
delay_init(168); //延时初始化
LED_Init(); //初始化LED
// TIM3_Int_Init(176-1,84-1);//84M/8400=10Khz的计数频率,计数5K次为500ms
TIM3_Int_Init(21-1,2-1);//84M/8400=10Khz的计数频率,计数5K次为500ms
while(1)
{
LED0=!LED0;
delay_ms(20);//约25hz的 累计速度
pl=1000;
cz=84000/pl;
if(pl>=500) pl=1;
TIM3_Int_Init(cz-1,1-1);//84M/8400=10Khz的计数频率,计数5K次为500ms
};
}
实际结果:示波器显示,频率到666K 就上不去了。而且程序会死机。
想不明白原因。
后来手动修改定时器函数参数,发现到666K ,也上不去了。在大就会出现,方波便宜,变的是占空比,不是频率了。
求告知?
|
|