你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

[复制链接]
EricAl 提问时间:2011-11-15 22:05 /
用的固件库,调试的时候看了TIM1的寄存器配置都没错,就是不进入中断。。。。不知道是什么原因?
 
 
main.c中的程序:
 
 /* Includes ------------------------------------------------------------------*/
#include "stm8s.h"
#include "stm8s_it.h"
#define LED_PORT (GPIOD) 
#define LED1_PIN  (GPIO_PIN_3) 
#define LED2_PIN  (GPIO_PIN_2) 
#define LED3_PIN  (GPIO_PIN_0) 
 
 
#define BUTTON_PORT (GPIOD) 
#define BUTTON_PIN  (GPIO_PIN_7) 
 
 
void GPIOInit(void)
{
  /* Infinite loop */
   GPIO_Init(LED_PORT, LED1_PIN,GPIO_MODE_OUT_PP_LOW_SLOW);
   }
 
void TIM1Init(void)
{
 TIM1_TimeBaseInit( 0x1F3F,0x10,0x01F4,0x01F4);
                      
   /*PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms
    计数器使能,开始计数 
    每记数500次产生一次中断,即500ms*/
 TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE);
 TIM1_Cmd(ENABLE);
    /*允许更新中断*/
 }
 
 
void main(void)
{
  GPIOInit();
  TIM1Init();
  while(1)
  {
  
  }
 }
stm8_it.c中的程序部分:
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  GPIO_WriteReverse(LED_PORT, LED1_PIN);
  TIM1_ClearFlag(TIM1_FLAG_UPDATE);  // 清除更新中断标记
  i++;
}

 
收藏 评论8 发布时间:2011-11-15 22:05

举报

8个回答
废鱼 回答时间:2011-11-16 08:24:21

RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

TIM的时钟开启了吗?
EricAl 回答时间:2011-11-16 10:24:53

回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

回复第 2 楼 于2011-11-16 00:24:21发表:
TIM的时钟开启了吗?
开了啊。调试的时候看了TIM1的寄存器,该配置的都配置 QQ截图20111116102312.png
就是进不了中断。
 
废鱼 回答时间:2011-11-16 14:35:14

RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

/* enable interrupts */
  enableInterrupts();
没有开启环形中断使能
EricAl 回答时间:2011-11-16 16:29:33

回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

回复第 4 楼 于2011-11-16 06:35:14发表:
/* enable interrupts */
enableInterrupts();
没有开启环形中断使能
 
开启唤醒中断使能?
- -这个是什么
void main(void)
{
  asm("sim");  // 关全局中断
  GPIOInit();
  TIM1Init();
  asm("rim");  // 开全局中断
  while(1)
  {
  
  }
 }我把主函数换成这样后可以进入中断,但只能进一次额。。什么原因内?

 
dwwzl 回答时间:2013-12-5 18:54:35

RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

问题解决了吗?到底是哪里的问题呢?
zykzyk-93033 回答时间:2013-12-5 20:41:10

RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

感觉是定时器设置不正确。你仔细看看
zykzyk-93033 回答时间:2013-12-5 20:47:43

RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

正在使用的程序,你参考看看。
void TIME1_Initializes(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);

/* Configure TIM1 to generate an update event each 0.025 s */
TIM1_TimeBaseInit(127, TIM1_CounterMode_Up, 2343, 0);//25ms

TIM1_UpdateRequestConfig(TIM1_UpdateSource_Global);

/* Clear TIM1 update flag */
TIM1_ClearFlag(TIM1_FLAG_Update);

/* Enable update interrupt */
TIM1_ITConfig(TIM1_IT_Update, ENABLE);

/* Enable TIM1 */
TIM1_Cmd(ENABLE);
}
rocket432 回答时间:2014-5-31 11:27:22

回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断

 你的中断号应该有问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版