⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.h~

📁 这是一个AVRM16的定时器制的例子,比较适合初学者.
💻 H~
字号:
#ifndef __INIT_H__
#define __INIT_H__
#include "MEGA16.h" 
#include "EEPROM.h" 
#define	 uchar	   unsigned	   char
#define	 uint	   unsigned	   int 
#define  LED_L          0xef;
#define  LED_H          0xff; 
/* Data Register, Port A */ 
#define    PA7      7
#define    PA6      6
#define    PA5      5
#define    PA4      4
#define    PA3      3
#define    PA2      2
#define    PA1      1
#define    PA0      0

/* Data Register, Port B */  
#define    PB7      7
#define    PB6      6
#define    PB5      5
#define    PB4      4
#define    PB3      3
#define    PB2      2
#define    PB1      1
#define    PB0      0

/* Data Register, Port C */
#define    PC7      7
#define    PC6      6
#define    PC5      5
#define    PC4      4
#define    PC3      3
#define    PC2      2
#define    PC1      1
#define    PC0      0

/* Data Register, Port D */
#define    PD7      7
#define    PD6      6
#define    PD5      5
#define    PD4      4
#define    PD3      3
#define    PD2      2
#define    PD1      1
#define    PD0      0  

uchar   sec=0;
uchar   hour=0; 
uchar   min=0; 
uchar   sethour=0;
uchar   setmin=0;
uchar   display_bit=0;      
uchar   mode=0;  
uint    flash_add=0;
bit     b_sec=1;
bit     b_time=0; 
//uchar     LED=0; 
uint    rapidness=0;
//******************************初始化函数************************************   
//IO口初始化函数
void port_init(void)
{
	PORTA=0xff;
	DDRA=0xff;
	PORTB=0xff;
	DDRB=0xff;
	PORTC=0xff;
	DDRC=0x01;
   	PORTD=0xFF;
	DDRD=0x00;  
}  
//定时器1初始化函数
void timer1_init(void)
{
        TCCR1B = 0x00; //stop
        TCNT1H = 0xE3; //setup
        TCNT1L = 0x34;
        OCR1AH = 0x1C;
        OCR1AL = 0xCC;
        OCR1BH = 0x1C;
        OCR1BL = 0xCC;
        ICR1H  = 0x1C;
        ICR1L  = 0xCC;
        TCCR1A = 0x00;
        TCCR1B = 0x01; //start Timer
}
 
//看门狗初始化函数
void    wdt_init(void)
{
	WDTCR=0x1F;
	WDTCR=0x0F;
}
//初始化总函数
void init_devices(void)
{ 	port_init();
	wdt_init();
	timer1_init(); 
	TIMSK=0x04;  //01  05      //01是PWM 04是time1
	MCUCR = 0x00;
	GICR  = 0x00;  
	MCUCSR |= (1<<7);//屏蔽C口的JTAG功能     
	LED=0xef;
	#asm("sei"); //re-enable interrupts
}

#endif

⌨️ 快捷键说明

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