|
需要根據(jù)不同的變量值對不同的IO口大量操作,如果當(dāng)變量為1、3、6值時,分針對P1、P3、P6操作。
define是不能使用變量為參數(shù)的。
寫了一段程序,基本可以實現(xiàn),但過于機械龐大,運行中廢時間。能不能簡化代碼,用一、兩條語句代替。一個IO的不同位可以用變量實現(xiàn),但=號前的P1、P3、P6如何按Port_X值為1、3、6來選擇是個麻煩。
能不能用IO地址指針操作,直接定位到需操作的IO地址,后期的操作就是對此IO?或者建立一個IO地址的數(shù)組,根據(jù)不同"變量"直接定位到相應(yīng)的IO口?
程序見下,我認為需要優(yōu)化程序:
#include "io430.h"
unsigned char Port_x=6,Bit_n=BIT5;
void DQ_out()
{
switch (Port_x)
{
case 1:
P1DIR|=Bit_n; break;
case 2:
P2DIR|=Bit_n; break;
case 3:
P3DIR|=Bit_n; break;
case 4:
P4DIR|=Bit_n; break;
case 5:
P5DIR|=Bit_n; break;
case 6:
P6DIR|=Bit_n; break;
case 7:
P7DIR|=Bit_n; break;
}
}
void DQ_in()
{
switch (Port_x)
{
.........
下述還有多個switch選擇模塊,很是不爽。
|
|