AVR单片机C语言的使用特点
扫描二维码
随时随地手机看文章
PORTX和PINX的使用区别
AVR单片机每组I/O口有3个8位寄存器,分别是DDRx、PORTx和PINx;
DDR用于控制I/O口的输入输出方向:
DDRx=1时,I/O口输出,PORTx=1时输出高电平,PORTx=0时输出低电平,
DDRx=0时,I/O口输入,这时要读取外部管脚的电平就应读取PINx中的数值,而不是PORTx;
PORTx是数据寄存器,而PINx不能称为真正意义上的寄存器,更像是一个可控的三态口
引用 几种单片机C语言的中断程序写法
本文引用自Ajiao《几种单片机C语言的中断程序写法》
引用
Ajiao的 几种单片机C语言的中断程序写法
Keil C51编译器:
void intfunc (void) interrupt m using n
{
......
}
其中:intfunc----函数名称 interrupt----专门定义中断函数的关键字 m----中断向量编号(0~N)n----在中断中用的寄存器组(0~1)
IAR msp430C编译器
#pragma vector = xx
void intfunc(void)
{
.........
}
其中:intfunc----函数名称 xx是中断向量地址
ICC AVR C编译器
#pragma interrupt_handler intfunc : n
void intfunc(void)
{
............
}
其中:intfunc----函数名称 n----中断向量编号
NC30 for Renesas R16C R8c...编译器
方式1:
#pragma INTERRUPT [/B|/E|/V] intfunc
void intfunc(void)
{
............
}
其中:intfunc----函数名称
方式2:
#pragma INTERRUPT [/B|/E] n intfunc
void intfunc(void)
{
............
}
其中:intfunc----函数名称 n----中断向量编号
方式3:
#pragma INTERRUPT [/B|/E] intfunc (vector = n)
void intfunc(void)
{
............
}
其中:intfunc----函数名称 n----中断向量编号