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 + -
显示快捷键?