📄 atmega8.h
字号:
#ifndef ATMEGA8_H
#define ATMEGA8_H
/*==============================*/
/* 各项时钟定义 */
/*==============================*/
/*定义AD时钟(同时打开AD使能与其中断)*/
#define SET_ADCLK_2 ADCSRA|=0xc9 /*AD时钟为系统频率的1/2 */
#define SET_ADCLK_4 ADCSRA|=0xca /*AD时钟为系统频率的1/4 */
#define SET_ADCLK_8 ADCSRA|=0xcb /*AD时钟为系统频率的1/8 */
#define SET_ADCLK_16 ADCSRA|=0xcc /*AD时钟为系统频率的1/16 */
#define SET_ADCLK_32 ADCSRA|=0xcd /*AD时钟为系统频率的1/32 */
#define SET_ADCLK_64 ADCSRA|=0xce /*AD时钟为系统频率的1/64 */
#define SET_ADCLK_128 ADCSRA|=0xcf /*AD时钟为系统频率的1/128*/
/*定义定时器0时钟*/
#define SET_TIMER0_NULL TCCR0|=0x00 /*定时器0无时钟,不工作 */
#define SET_TIMER0_1 TCCR0|=0x01 /*定时器0时钟为系统频率 */
#define SET_TIMER0_8 TCCR0|=0x02 /*定时器0时钟为系统频率的1/8 */
#define SET_TIMER0_64 TCCR0|=0x03 /*定时器0时钟为系统频率的1/64 */
#define SET_TIMER0_256 TCCR0|=0x04 /*定时器0时钟为系统频率的1/256 */
#define SET_TIMER0_1024 TCCR0|=0x05 /*定时器0时钟为系统频率的1/1024*/
#define SET_TIMER0_DOWN TCCR0|=0x06 /*定时器0时钟为T0输入的下降沿 */
#define SET_TIMER0_RISE TCCR0|=0x07 /*定时器0时钟为T0输入的上升沿 */
/*定义定时器2时钟*/
#define SET_TIMER2_NULL TCCR2|=0x00 /*定时器2无时钟,不工作 */
#define SET_TIMER2_1 TCCR2|=0x01 /*定时器2时钟为系统频率 */
#define SET_TIMER2_8 TCCR2|=0x02 /*定时器2时钟为系统频率的1/8 */
#define SET_TIMER2_32 TCCR2|=0x03 /*定时器2时钟为系统频率的1/32 */
#define SET_TIMER2_64 TCCR2|=0x04 /*定时器2时钟为系统频率的1/64 */
#define SET_TIMER2_128 TCCR2|=0x05 /*定时器2时钟为系统频率的1/128 */
#define SET_TIMER2_256 TCCR2|=0x06 /*定时器2时钟为系统频率的1/256 */
#define SET_TIMER2_1024 TCCR2|=0x07 /*定时器2时钟为系统频率的1/1024*/
/*==============================*/
/* 定时器0定义 */
/*==============================*/
#define SET_TIMER0_TOIE TIMSK|=0x01
/*==============================*/
/* 定时器1定义 */
/*==============================*/
/*==============================*/
/* 定时器2定义 */
/*==============================*/
#define SET_TIMER2_TOIE TIMSK|=0x40
/*==============================*/
/* IO口定义 */
/*==============================*/
/*==============================*/
/* 串口定义 */
/*==============================*/
/*==============================*/
/* EEPROM定义 */
/*==============================*/
/*==============================*/
/* 定时器定义 */
/*==============================*/
/*==============================*/
/* 中断定义 */
/*==============================*/
#define _EINT asm("sei") /* 使能全局中断 */
#define _DINT asm("cli") /* 关闭全局中断 */
/*==============================*/
/* AD定义 */
/*==============================*/
#define ADCSRA ADCSR//ATmega8的此寄存器在头文件中的称呼与ATmega16不同,在此统一
#define AD_START ADCSRA|=(1<<ADSC)/* AD转换开始 */
#define AD_RESET ADCSRA=0x00 /* AD转换复位 */
#define Next_ADchanle if((ADMUX&7)<5)\
{\
ADMUX++;\
AD_START;\
}\
else \
ADMUX&=0xf8
#define ADchanel(n) if(n<0x07)\
{\
ADMUX=ADMUX&0xf8+n;\
AD_START;\
}
#define AD_OBJ ADMUX&0x07
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -