测试一个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; //清空标志位
}
|