AVR單片機(jī)C語言的使用特點(diǎn)
PORTX和PINX的使用區(qū)別
AVR單片機(jī)每組I/O口有3個(gè)8位寄存器,分別是DDRx、PORTx和PINx;
DDR用于控制I/O口的輸入輸出方向:
DDRx=1時(shí),I/O口輸出,PORTx=1時(shí)輸出高電平,PORTx=0時(shí)輸出低電平,
DDRx=0時(shí),I/O口輸入,這時(shí)要讀取外部管腳的電平就應(yīng)讀取PINx中的數(shù)值,而不是PORTx;
PORTx是數(shù)據(jù)寄存器,而PINx不能稱為真正意義上的寄存器,更像是一個(gè)可控的三態(tài)口
引用 幾種單片機(jī)C語言的中斷程序?qū)懛?/p>
本文引用自Ajiao《幾種單片機(jī)C語言的中斷程序?qū)懛ā?/p>
引用
Ajiao的 幾種單片機(jī)C語言的中斷程序?qū)懛?/p>
Keil C51編譯器:
void intfunc (void) interrupt m using n
{
......
}
其中:intfunc----函數(shù)名稱 interrupt----專門定義中斷函數(shù)的關(guān)鍵字 m----中斷向量編號(hào)(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----中斷向量編號(hào)
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----中斷向量編號(hào)
方式3:
#pragma INTERRUPT [/B|/E] intfunc (vector = n)
void intfunc(void)
{
............
}
其中:intfunc----函數(shù)名稱 n----中斷向量編號(hào)
【更多資源】
編輯:admin 最后修改時(shí)間:2018-05-19