C portok
Dévényi Zsolt
dzsolt at axelero.hu
Mon Mar 26 08:08:14 CEST 2007
Sziasztok!
Tudtok valami jo, es elegans megoldast arra, hogy kulonbozo portok kulonbozo
bitjeit (nevezzuk egyszeruen input1-input10), hogyan lehetne tombkent vagy
ertelmes modon kezelni? Arra lenne szuksegem, hogy detektaljam, hogy
valtozott-e valamelyik bit, es ha igen akkor tudjak valamit tevekenykedni.
Persze a portbitek nem egymas utaniak:
#define IN1 (!PORTFbits.RF7)
#define IN2 (!PORTAbits.RA4)
#define IN3 (!PORTCbits.RC1)
#define IN4 (!PORTCbits.RC3)
#define IN5 (!PORTCbits.RC6)
#define IN6 (!PORTCbits.RC7)
#define IN7 (!PORTBbits.RB3)
#define IN8 (!PORTBbits.RB2)
#define IN9 (!PORTEbits.RE1)
#define IN10 (!PORTEbits.RE5)
Az ilyeneket szeretnem elkerulni:
if (( OldBits.Old1 != IN1 ) || ( OldBits.Old2 != IN2 ) ||
( OldBits.Old3 != IN3 ) || ( OldBits.Old4 != IN4 ) ||
( OldBits.Old5 != IN5 ) || ( OldBits.Old6 != IN6 ) ||
( OldBits.Old7 != IN7 ) || ( OldBits.Old8 != IN8 ) ||
( OldBits.Old9 != IN9_) || ( OldBits.Old10!= IN10 )){
if (OldBits.Old1 != IN1){
UDPPut('1');
if (IN1){
UDPPut(1);
}else{
UDPPut(0);
}
OldBits.Old1 = IN1;
}
else if (OldBits.Old2 != IN2){
UDPPut('2');
if (IN2){
UDPPut(1);
}else{
UDPPut(0);
}
OldBits.Old2 = IN2;
}
.
.
.
.
else if (OldBits.Old10 != IN10){
UDPPut('10');
if (IN10){
UDPPut(1);
}else{
UDPPut(0);
}
OldBits.Old10 = IN10;
}
}
Koszi: Zsolt
More information about the Elektro
mailing list