请教:用COSMIC软件仿真为什么一直进不了TIM4中断?

[复制链接]
 楼主| hunqianmenyin 发表于 2009-12-8 13:49 | 显示全部楼层 |阅读模式
小弟第一次用103K3这个单片机,准备用TIM4做一个主循环里面的1ms定时用,照抄了例程的TIM4的初始化之类的函数,但是软件仿真就是进不了TIM4的定时中断,不晓得什么原因啊 哪位大哥能指导一下啊。
void main(void)
{

  TIM4_DeInit();
  TIM4_TimeBaseInit(TIM4_PRESCALER_1,1);
  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
  enableInterrupts();

  TIM4_Cmd(ENABLE);

  while (1)
  {
   
  }
}
zhaoxinzxzx 发表于 2009-12-8 14:25 | 显示全部楼层
103K3的TIM4与207/208/105不同,楼主还是详细研究一下Datasheet吧
改例程要注意一下头文件中对芯片型号的宏定义
hsbjb 发表于 2009-12-8 20:55 | 显示全部楼层
建议你看看头文件,看到底有没有开中断这条语句
司徒老鹰 发表于 2009-12-8 21:55 | 显示全部楼层
不会是头文件的问题吧
solarmax1969 发表于 2012-8-22 08:29 | 显示全部楼层
我碰到一样问题啊!
STM8L151K4T6,TIM4 做一秒定时,死活不出中断,通过调试发现,所以赋值语句执行后,寄存器的值还是0x00!
1楼的兄弟,你debug 下,看看寄存器的值被设置了吗?
solarmax1969 发表于 2012-8-24 07:51 | 显示全部楼层
STM8L151K4T6 内部设置启用,需要给它喂时钟!!
现在我上面的问题解决了。
void Clock_Init(void)
{
        CLK_CKDIVR = 0x03; //8分频
        CLK_ICKCR  = 0x11; //启用内部RC=16mhz
        while((CLK_ICKCR & 0x02)==0); //等待时钟稳定

  CLK_PCKENR1  = 0xff;        //定义,时钟提供给设备
        CLK_PCKENR2 |= 0b00111111;  //定义,时钟提供给设备
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

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

3

主题

4

帖子

1

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