STM8S103的单片机写了个定时程序,为什么上电就会先进入定时器中断程序?
#include"iostm8s103.h"_Boold1@PB_ODR:5;unsignedcharfen,num;voidTIM1_Init(void){TIM1_C...
#include"iostm8s103.h"
_Bool d1 @PB_ODR:5;
unsigned char fen,num;
void TIM1_Init(void)
{
TIM1_CR1 = 0x00; //向上的计数方向,中断计数不停
TIM1_IER = 0x01;
TIM1_PSCRH = 0x9c; //进行39999分频
TIM1_PSCRL = 0x3f;
TIM1_ARRH = 0x03;
TIM1_ARRL = 0xe8; //10秒
TIM1_CR1 |=0x01;
}
main()
{
CLK_CKDIVR=0x10;
PB_DDR|=0x20;
PB_CR1|=0x20;
PB_CR2|=0x00;
d1=1;
TIM1_Init();
_asm("rim");
while(1);
}
@far @interrupt void TIM1_OVER_Int(void)
{
TIM1_SR1 = 0x00;
fen++;
if(fen==1)d1=0;
if(fen==2) {
fen=0;d1=1;
}
} 展开
_Bool d1 @PB_ODR:5;
unsigned char fen,num;
void TIM1_Init(void)
{
TIM1_CR1 = 0x00; //向上的计数方向,中断计数不停
TIM1_IER = 0x01;
TIM1_PSCRH = 0x9c; //进行39999分频
TIM1_PSCRL = 0x3f;
TIM1_ARRH = 0x03;
TIM1_ARRL = 0xe8; //10秒
TIM1_CR1 |=0x01;
}
main()
{
CLK_CKDIVR=0x10;
PB_DDR|=0x20;
PB_CR1|=0x20;
PB_CR2|=0x00;
d1=1;
TIM1_Init();
_asm("rim");
while(1);
}
@far @interrupt void TIM1_OVER_Int(void)
{
TIM1_SR1 = 0x00;
fen++;
if(fen==1)d1=0;
if(fen==2) {
fen=0;d1=1;
}
} 展开
5个回答
展开全部
要看程序,可能是初始化错误
追问
已附上程序,再帮忙看看,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要给你写吗
追问
你好,是这样的程序我自己写好了,设置10秒中断一次,现在是每次上电都会先进中断一次,不知道什么原因
追答
代做的
我id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你定时器初始化的正确吗?
追问
已附上程序,再帮忙看看,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看程序啊
追问
已附上程序,再帮忙看看,谢谢
追答
其实如果你只是想上电不仅定时中断,你完全可以加个延时,然后再打开定时器中断呢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看程序了
追问
已附上程序,再帮忙看看,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询