📄 demo.c
字号:
#include <avr/io.h>
#include <avr/delay.h>
#define uint unsigned int
#define uchar unsigned char
#ifdef BASE_BORD
#define SET_RED_LED cbi(PORTC,2);
#define CLR_RED_LED sbi(PORTC,2);
#define SET_LFT_LED cbi(PORTC,1);
#define CLR_LFT_LED sbi(PORTC,1);
#define SET_RIT_LED cbi(PORTC,3);
#define CLR_RIT_LED sbi(PORTC,3);
#else
#define SET_RED_LED cbi(PORTB,2);
#define CLR_RED_LED sbi(PORTB,2);
#define SET_LFT_LED cbi(PORTB,1);
#define CLR_LFT_LED sbi(PORTB,1);
#define SET_RIT_LED cbi(PORTB,0);
#define CLR_RIT_LED sbi(PORTB,0);
#endif
#define FREQ 4
void DelayMs(uint ms)
{
uint i;
for(i=0;i<ms;i++)
_delay_loop_2(FREQ *250);
}
int main(void)
{
uchar i;
DDRC=0XFF;
PORTC=0XFF;
DDRB=0XFF;
PORTB=0XFF;
while(1)
{
#ifdef BASE_BORD
//三个灯逐一闪
for(i=1;i<4;i++)
{
PORTC=0xff;
PORTC&=~_BV(i);
DelayMs(500);
}
#else
for(i=0;i<3;i++)
{
PORTB=0XFF;
PORTB&=~_BV(i);
DelayMs(500);
}
#endif
//每一闪两次,循环2次
for(i=0;i<2;i++)
{
PORTC=0XFF;
SET_LFT_LED;
DelayMs(500);
CLR_LFT_LED;
DelayMs(500);
SET_LFT_LED;
DelayMs(500);
CLR_LFT_LED;
SET_RED_LED;
DelayMs(500);
CLR_RED_LED;
DelayMs(500);
SET_RED_LED;
DelayMs(500);
CLR_RED_LED;
SET_RIT_LED;
DelayMs(500);
CLR_RIT_LED;
DelayMs(500);
SET_RIT_LED;
DelayMs(500);
CLR_RIT_LED;
}
SET_RED_LED;
DelayMs(500);
CLR_RED_LED;
DelayMs(500);
SET_RED_LED;
DelayMs(500);
CLR_RED_LED;
SET_LFT_LED;
SET_RIT_LED;
DelayMs(500);
CLR_LFT_LED;
CLR_RIT_LED;
DelayMs(500);
SET_LFT_LED;
SET_RIT_LED;
DelayMs(500);
CLR_LFT_LED;
CLR_RIT_LED;
DelayMs(500);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -