time.c

来自「该程序主要是控制电机的正转」· C语言 代码 · 共 42 行

C
42
字号
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
//时钟定为8MHz,F_CPU=8000000

//全局变量
volatile unsigned char FLAG;		
		


void timer1_init(void)
{
	TCNT1 = 1024;	 
	TCCR1A = (0<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)|(0<<WGM11)|(0<<WGM10);          		
	TCCR1B = (0<<WGM13)|(0<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);
}

SIGNAL(SIG_OVERFLOW1)
{
	FLAG++;
  if(FLAG==8)
	{
		FLAG=0;		
		PORTA^=(1<<PA3);
	}	
}

int main(void)
{
    //上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
    PORTA =0xff;									//不用的管脚使能内部上拉电阻。
	DDRA=0x3f;
	
    PORTD =0xff;
	DDRD  =0xff;	
	FLAG=0;		
   	timer1_init();
	TIMSK = (1<<TOIE1); 				
    sei();											//使能全局中断
    while(1);
	
}	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?