分享

AVR单片机C语言的使用特点

 ldjsld 2016-08-20

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----中断向量编号

【更多资源】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多