modem.c
来自「UCOSII在Mega128上的移植版本 开发工具: WINGCC」· C语言 代码 · 共 62 行
C
62 行
#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 + =
减小字号Ctrl + -
显示快捷键?