AVR全局定义

本文介绍说明一些预定义的常量及C的类型及通用函数,这些常量全局有效,以及一些IO口操作函数

0.常量及宏

这些常量用于端口的操作,仅作为pinMode中的第二个参数使用

常量名 作用
INPUT 用于pinMode函数,将一个端口设置为输入,禁用上拉电阻
OUTPUT 输出,作用于一个端口
INPUT_PULLUP 将一个端口设置为输入,启用上拉电阻
INPUT_ALL 将一组端口设置为输入,全部启用上拉电阻
OUTPUT_ALL 将一组端口设置为输出

请特别注意使用这些常量的作用范围,如果不正确的使用将会导致程序死锁,详细请见pinMode函数

这些常量用于定义IO端口,作为pinMode函数的第一个参数使用
一组引脚
ZPA、ZPB、ZPC、ZPD,这些常量对应PA,PB,PC及PD的8个端口
单个引脚
ZPA0-7、ZPB0-7、ZPC0-7、ZPD0-7 ,这些常量用于操作单个引脚

数学常量的定义

  • PI
  • HALF_PI
  • TWO_PI
  • DEG_TO_RAD
  • RAD_TO_DEG
  • EULER
位操作宏,value 支持所有变量类型,bit从0开始计数

宏名 作用
bitRead(value,bit) 读取value的第bit位,返回0或1
bitRead(value,bit) 将value的第bit位置1
bitClear(value,bit) 将value的第bit位置0
bitWrite(value,bit,bitvalue) 将value的bit位设置成bitvalue,bitvalue仅能为0或1
bitToggle(value,bit) 将value的bit位翻转

单片机特殊指令宏

宏名 作用
_NOP() 执行一个nop指令,可以放在任何位置
EINT 开启全局中断,必须独立成行
DINT 关闭全局中断,必须独立成行

1.函数

这里的函数指用C语言实现的函数,而不是预处理宏

函数名 作用
pinMode(uchar pin,uchar value) 设置引脚输出模式,pin为引脚编号,当引脚是单个引脚,value只允许设置INPUT,OUTPUT和INPUT_PULLUP,设置错误将导致程序锁定。当引脚编号为组的时候则可以设置成INPUT_ALL,OUTPUT_ALL,或者一个字节,与寄存器DDRx直接赋值相同
digitalWrite(uchar pin,uchar value) 设置数字引脚的值,pin为引脚编号,当引脚是单个引脚,value值仅为HIGH或者LOW,对应高电平与低电平,请确认设置引脚输出之前确认将引脚的模式设置为输出。当引脚编号为组的时候则可以设置成HIGH_ALL,LOW_ALL,或者一个字节,与寄存器直接赋值PORTx相同
uchar digitalRead(uchar pin) 读取引脚的值,pin为引脚编号,当引脚是单个引脚,返回LOW或者HIGH,当pin为组的时候返回一个字节,相当于访问PINx
digitalToggle(uchar pin) 翻转数字引脚的值,pin为引脚编号,当引脚是单个引脚,单个引脚的输出电平将会发生翻转,如果是一个组则一个组所有端口都会翻转
delay_ms(Uint16 t) 非精确的延时函数

2.类型定义

类型名 原型
uchar unsigned char
Uint16 unsigned short
Uint32 unsigned long
int32 signed long
int16 signed short
float32 float
float64 double可能会有编译器不支持,已知avr-gcc可用