systick定时问题____香水有请

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部