打印

systick定时问题____香水有请

[复制链接]
1833|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mzscg|  楼主 | 2008-9-16 17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SystickConfiguration();
SystickDelay(10);


void SystickConfiguration(void)
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
   /* SysTick end of count event each 1ms with input clock equal to 9MHz (HCLK/8, default) */
 SysTick_SetReload(9000);
 SysTick_ITConfig(ENABLE);
}

void SystickDelay(int nTime)
{
  /*Enable the SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Enable);
  TimingDelay = nTime;
  while(TimingDelay != 0);

  /* Disable SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Disable);
  /* Clear SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Clear);
}

在stm32f10x_it.c中填写

void SysTickHandler(void)
{
 if (TimingDelay != 0x00)
  { 
    TimingDelay--;
  }
}


程序如上,也就是参照了demo里面的程序,

但无法定时,,,不知道还差些什么东西????

香水兄很长时间不理小弟了.
沙发
mzscg|  楼主 | 2008-9-16 17:53 | 只看该作者

我说的无法定时是指:

运行到SystickDelay(10);
后,程序停在SystickDelay中的while(TimingDelay != 0);
也就是说中断服务程序void SysTickHandler(void)并没有得到执行.

大虾分析下原因....

使用特权

评论回复
板凳
香水城| | 2008-9-16 18:16 | 只看该作者

定义 volatile TimingDelay;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

234

帖子

0

粉丝