AVR單片機C語言的使用特點
PORTX和PINX的使用區(qū)別
AVR單片機每組I/O口有3個8位寄存器,分別是DDRx、PORTx和PINx;
DDR用于控制I/O口的輸入輸出方向:
DDRx=1時,I/O口輸出,PORTx=1時輸出高電平,PORTx=0時輸出低電平,
DDRx=0時,I/O口輸入,這時要讀取外部管腳的電平就應(yīng)讀取PINx中的數(shù)值,而不是PORTx;
PORTx是數(shù)據(jù)寄存器,而PINx不能稱為真正意義上的寄存器,更像是一個可控的三態(tài)口
引用 幾種單片機C語言的中斷程序?qū)懛?/P>
本文引用自Ajiao《幾種單片機C語言的中斷程序?qū)懛ā?/P>
引用
Ajiao的 幾種單片機C語言的中斷程序?qū)懛?/P>
Keil C51編譯器:
void intfunc (void) interrupt m using n
{
......
}
其中:intfunc----函數(shù)名稱 interrupt----專門定義中斷函數(shù)的關(guān)鍵字 m----中斷向量編號(0~N)n----在中斷中用的寄存器組(0~1)
IAR msp430C編譯器
#pragma vector = xx
void intfunc(void)
{
.........
}
其中:intfunc----函數(shù)名稱 xx是中斷向量地址
ICC AVR C編譯器
#pragma interrupt_handler intfunc : n
void intfunc(void)
{
............
}
其中:intfunc----函數(shù)名稱 n----中斷向量編號
NC30 for Renesas R16C R8c...編譯器
方式1:
#pragma INTERRUPT [/B|/E|/V] intfunc
void intfunc(void)
{
............
}
其中:intfunc----函數(shù)名稱
方式2:
#pragma INTERRUPT [/B|/E] n intfunc
void intfunc(void)
{
............
}
其中:intfunc----函數(shù)名稱 n----中斷向量編號
方式3:
#pragma INTERRUPT [/B|/E] intfunc (vector = n)
void intfunc(void)
{
............
}
其中:intfunc----函數(shù)名稱 n----中斷向量編號
評論