新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2016-12-17
- 在线时间
- 1 小时
|
发表于 2016-12-17 13:41:43
|
显示全部楼层
volatile _Bool LED_ON3 @PD_ODR:0;
volatile _Bool LED_ON4 @PD_ODR:1;
void GpioInit(void)
{
//LED
PD_DDR = 0x03;
PD_CR1 = 0x00;
PD_CR2 = 0x00;
//
}
void Tim1Init(void)
{
TIM1_EGR |= 0x01;
TIM1_ARRH=1100/256;
TIM1_ARRL=1100%256;
TIM1_PSCRH=0;
TIM1_PSCRL=127;
TIM1_IER |=0X01;
TIM1_BKR |= 0x80;
TIM1_CR1 |=0X81;
}
void main()
{
//initial
_asm("sim");
ClockInit();
GpioInit();
Tim1Init();
_asm("rim");
//infiniti loop
while (1)
{
if(flag1ms)
{
flag1ms=0;
Led4Flash();
}
}
}
void Led4Flash(void)
{
unsigned int i=0;
u16 flag=0;
if(++i > 1000) // 1s led flash
{
flag=!flag;
if(flag)
PD_ODR &= ~0x02;
else
PD_ODR |= 0x02;
}
}
void Led3Flash(void)
{
unsigned int i=0;
u16 flag=0;
if(++i > 1000) // 1s led flash
{
flag=!flag;
if(flag)
PD_ODR &= ~0x01;
else
PD_ODR |= 0x01;
}
}
@far @interrupt void TIM1_Interrupt(void)
{
flag1ms=1;
TIM1_SR1 &= ~0x01;
}
这个程序灯为什么不闪啊,总是一直亮着,求指点 |
|