PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abfrage von 2 Ports die die selbe Funktion ausführen sollen



Misterbrot
18.08.2007, 17:46
Hallo ,
ich hab da ein kleines Problem, und zwar will ich mit einer if abfrage 2 ports abfragen. Also wenn einer von den beiden bedingungen erfüllt ist soll die if schleife ausgeführt werden. Muss ja irgentwie mit einem "oder" gemacht werden. Glaub das war in C diese beiden Striche || .
Ich hab mir das so gedacht, aber irgentwie funzt das nicht :





if ( PINA & (1<<PINA1) || PINA & (1<<PINA5) )
{
PORTC &=~(1<<3);
}



Vieleicht kann mir ja einer helfen =D>

Kann natürlich auch 2 getrennt if abfragen machen, das funktioniert auch, aber möchte das gerne so haben ;-)

Superhirn
18.08.2007, 19:56
ja die stiche sind es.

ist ein kompilerfehler dabei?

schreibs mal mit klammern so um:

if ( (PINA & (1<<PINA1)) || (PINA & (1<<PINA5)) )

mfg

Misterbrot
19.08.2007, 15:05
ist ein kompilerfehler dabei?




Hallo ,

nein hat mir kein fehler angezeigt. Werd dein Tipp gleich ausprobieren und dann schreiben obs geklappt hat. :-)

Misterbrot
19.08.2007, 22:26
hi,

ne dein Tipp mit den Klammern hat leider nicht geklappt. Schade.

Hat sonst noch einer eine Idee??

squelver
20.08.2007, 12:10
Was hast du denne vorher geschrieben? Wie hast du dein DDR und deine pullups gesetzt?

Misterbrot
20.08.2007, 12:14
so:


DDRA=0x00; // Port A als Eingang
PORTA=0xff; // Pull-ups auf Port A ein
DDRC=0xff; // Port C als Ausgang
PORTC=0x00; // Alle Pins auf Port C auf low

squelver
20.08.2007, 12:18
was ist mit dem ausrufezeichen?

if((!(PINA........)) || (!(PINA........)))
{PORTC &=~(1<<3);}

Ziehst du auf Masse?