定时100ms让LED_Er亮起来,然而并没有实现功能。请各位大侠帮看看是哪里设置不对。
#include<stm8l052c6.h>
#define LED_HB 0x01 << 1
#define LED_Er 0x01 << 0
void IO_Init(void)
{
PD_ODR=0x00; //刚开始LED全灭
PD_DDR=0xff; //输出模式
PD_CR1=0xff; //推挽输出
PD_CR2=0x00; //低速输出
}
void TIM3_Init(void)
{
TIM3_PSCR=0x03; //分频值2MHZ/(2^3)=250KHZ
TIM3_IER=0x01; //open timer interrupt
TIM3_ARR=250; //自动重载值,1/250Kx200=1ms
TIM3_CNTR=250; //计数器初始值200
}
void main(void)
{
IO_Init();
TIM3_Init();
_asm("rim");
TIM3_CR1|=0x01; //Start time
while(1)
{
PD_ODR^=LED_HB;
}
}
@far @interrupt void TIM3_IRQ(void)
{
unsigned int count = 0;
count++;
TIM3_SR1=0x00;
if(count==100) //计时100次则100ms时间到
{
PD_ODR^=LED_Er;
count=0;
}
}
此帖出自
小平头技术问答
一周热门 更多>