
上次的问题还没解决,这次我又来了,我们应该不断往正确道路发展,好了不啰嗦,上主题: 例程TIM5定时器,神舟大神们说了,这是1s中断一次,不过大家可别被这1秒欺骗喽,实际是0.5s的!!!!!! 不信你可以试试看,我的做法是这样的: 定时器中断程序里面不是打印两句嘛,也就是没中断一次就会打印一次 counter就++ 那好 我就拿出秒表计时呗,当counter打印出20的时候,我以超越光速的速度按下了计时键,得到时间T0,接下来就等counter等于30的时候,我再次按下计时键,得到时间T1。然后就是40,T2,50,T3,60,T4....... 结果出来了T1-T0=T2-T1=T3-T2=T4-T3=5秒 而counter每次都打印10次 也就是说中断了10次,得出结果每次中断0.5s,而不是神舟用户手册里说的1s中断一次 |
TIM_Period = (10000 - 1);
TIM_Prescaler = (4500 - 1);
中断一次的时间就是: 10000/(84M/4500) 约等于 0.5s
哎呀!那是原原本本的例程呢 我一字未动呢 就是不能上传,发个截图吧
setsysclock
ç¥èçæä»¶å表
æ¶éåå§å
TIM5
TIM_TimeBaseInitStruct.TIM_Period =60000; //TIM update rate =TIM counter clock/TIM_Period =6MHz/60000=100Hz
TIM_TimeBaseInitStruct.TIM_Prescaler =1001; //TIM counter clock =TIMxCLK/(Prescaler +1) =72MHz/12=6MHz
TIM_TimeBaseInitStruct.TIM_ClockDivision = 0; //时钟倍频
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; //计数方向向上计数
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseInitStruct);
试试我的代码
恩,小问题而已,改天试一试,只是希望神舟能够重视一下,是否是例程的问题我不在乎,只要我发的500多块大洋买的板子没问题就行!