STM8S TIM4

2019-07-19 21:53发布

STM8S TIM4 不能定时1us吗?
void TIM4_Config(void)
{
  /* Time base configuration */
// TIM4_TimeBaseInit(TIM4_PRESCALER_128, TIM4_PERIOD);// TIM4_PRESCALER_128 -->>TIM4_PRESCALER_8 TIM4_PERIOD 有124 -->>1
  TIM4_TimeBaseInit(TIM4_PRESCALER_4, 3); //用来产生us级1
  /* Clear TIM4 update flag */
  TIM4_ClearFlag(TIM4_FLAG_UPDATE);
  /* Enable update interrupt */
  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
  
  /* enable interrupts */
  enableInterrupts();

  /* Enable TIM4 */
  TIM4_Cmd(ENABLE);
}
这样程序会死在  TIM4_Cmd(ENABLE);里。如果用TIM4_TimeBaseInit(TIM4_PRESCALER_128, 124);
TIM4_PERIOD 有124 -->>1 产生1ms可以正常。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 01:11
1us可能有点太短了,你先试试100us可以不?
然后10us可以不?
然后继续减少,就知道最少得多少时间了。
xiaoyan
2楼-- · 2019-07-20 03:54
 精彩回答 2  元偷偷看……
任才
3楼-- · 2019-07-20 04:12
回复【3楼】正点原子:
---------------------------------
THANK YOU,我仿真时候感觉仅仅while(n--);就用了差不多100us,(n=1时)。
正点原子
4楼-- · 2019-07-20 08:52
回复【4楼】任才:
---------------------------------
这够慢的 了...
n--要1us....

一周热门 更多>