为何STM8S003F3进不了TIM1中断?
第一次中STM8S003F3的中断,用的是固件库,其他还好,当想用中断,弄了半天也进不了定时中断,定时器初始
void TIMER1_Init(void)
{
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);//开时钟
TIM1_DeInit();
TIM1_Cmd(DISABLE);
TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,1000,0); //16分频,向上计数,每1ms定时中断一次, 重复计数器值为0
TIM1_ARRPreloadConfig(ENABLE);
TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);
TIM1_Cmd(ENABLE);
}
stm8s_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.
*/
//TIMER1_Decrement();
TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}
主函数:
void main(void)
{
#include "stm8s.h"
TIMER1_Init();
enableInterrupts();
while(1)
{}
}
用IAR for stm8 ,编译,软件仿真,怎么搞也进不了定时1的中断。
到底漏了什么呢??
这个官方例程参考看看
ITC->ISPR5 = 0xDF; //18AD中断优先级设置为1。10为0,01为1,00为2,11为3
ITC->ISPR6 = 0xFF; //23T1中断优先级设置为3,默认,优先级最高
这两个寄存起设置了吗?我都用的寄存器,没用库 感谢各位 赞一个 :(:):)
页:
[1]