测试一个stm8s105的
tim2延时函数,但总是进不了中断。麻烦大家帮我看看问题出在哪里。多谢了!代码简化了,方便大家查看。之前试过是可以的,但后来不小心改动程序,一下子晕头了,怎么搞都不对了

代码如下:
- #include "iostm8.h"
- int main(void){
- CLK_ECKR = 0x00; //关闭外部时钟
- CLK_ICKR = 0x01; //开启内部高速时钟 16M
- CLK_CKDIVR = 0x00; //cpu不分频 16M
- __asm("sim");
- //Clock_Config();
- // TIM2_Init();
- TIM2_PSCR = 0x04; //16分频 1us一个数
- TIM2_ARRH = 0x03;
- TIM2_ARRL = 0xE7; //999 计算1000次
- TIM2_IER = 0x01; //允许更新中断
- TIM2_CR1 = 0x01; //使能计数器
- __asm("rim");
- while(1){
- unsigned int t=1000;
- if(t>1){t--;}
- }
- }
- //中断函数
- #pragma vector = 0x0F
- __interrupt void TIM2_UPD_OVF_TRG_IRQHandler(void)
- {
- asm("nop");
- TIM2_SR1 = 0x00; //清空标志位
- }