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

📄 atmega8.h

📁 IARAVR多项功能测试+protues调试例程
💻 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 + -