📄 modem.c
字号:
#include <avr/io.h>
#include <avr/interrupt.h>
void pa(void);
static int flag=1;
typedef struct
{
unsigned char TimerID;
unsigned int Dealy;
void (*funptr)();
}Timer;
Timer T1={1,2,pa};
void TimeInit(void)
{
TCNT1=0xFFF8;
TIMSK |= (1<<TOIE1);
TCCR1B |= 0x02;
}
void pa(void)
{
PORTA=flag++;
}
int main(void)
{
int j=1;
// Timer T2={1,4,pb};
// Timer T3={1,6,pc};
// Timer T4={1,8,pd};
DDRA=0xff;
PORTA=0;
DDRB=0xff;
PORTB=0;
DDRC=0xff;
PORTC=0;
DDRD=0xff;
PORTD=0;
TimeInit();
SREG |= (1<<7);
while(1);
return j;
}
SIGNAL(SIG_OVERFLOW1)
{
if( T1.Dealy != 0)
if(--T1.Dealy == 0)
T1.funptr();
__asm__ __volatile__("cli"::);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -