📄 led.c
字号:
//ICC-AVR application builder : 2008-07-02 下午 03:28:23
// Target : M32
// Crystal: 8.0000Mhz
#include <iom32v.h>
#include <macros.h>
#define uchar unsigned char
void port_init(void) //端口定义
{
PORTA = 0x00; //低电平
DDRA = 0xFF; //输入
PORTB = 0x00; //低电平
DDRB = 0xFF; //输出
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x3C;
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//1微秒延时
void delay_1us(void)
{ uchar i=8;
asm("nop");
i--;
}
//长微秒延时
void delay_nus(uchar t)
{ while(t--)
delay_1us();
}
//1毫秒延时
void delay_1ms(void)
{
delay_nus(1000);
}
//长毫秒延时
void delay_nms(uchar t)
{ while(t--)
delay_1ms();
}
//定义LED等
void led_out(void)
{ uchar i;
for(i=1;i<5;i++)
{PORTD|=BIT(6-i);
delay_nms(500);}
for(i=5;i<13;i++)
{PORTB|=BIT(12-i);
delay_nms(500);}
for(i=12;i>4;i--)
{
PORTB&=~BIT(12-i);
delay_nms(500);
}
for(i=4;i!=0;i--)
{
PORTD&=~BIT(6-i);
delay_nms(500);
}
}
//主程序开始
void main(void)
{
init_devices();
while(1)
{
led_out();
}
//insert your functional code here...
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -