#include<macros.h>
#define sbipd7 asm("SBI 0x12,7")
#define cbipd7 asm("CBI 0x12,7")
#define uint unsigned int
void delay_us(int time)
{
do
{time--;}
while (time>1);
}
/* 毫秒级延时程序 */
void delay_ms(unsigned int time)
{
while(time!=0)
{
delay_us(1000);
time--;
}
}
void beep(void)
{
sbipd7;
delay_ms(300);
cbipd7;
}
{
PORTB = 0x08;
DDRB = 0xff;
PORTC = 0x00; //m103 output only
DDRC = 0xfe;
PORTD = 0x00;
DDRD = 0xff;
PORTA=0X00;
DDRA=0XFF;
}
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
//SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void main(void)
{
init_devices();
beep();
delay_ms(300);
beep();
delay_ms(300);
beep();
while(1);
}