Forum: Mikrocontroller und Digitale Elektronik oder VErknüpfung einer Abfrage


von Matthias H. (maethes26)


Lesenswert?

Hallo zusammen,

ich habe Schwierigkeiten mit der bedingten Ausführungen,

Wie kann ich dem programm mitteilen, dass wenn der eine oder der andere 
Taster betätigt wird, eine bestimmte aktion ausgeführt wird?




While (PIND & (1<<PD7) );     //tue solange nichts, bis PD7 auf high

wie geht das bitte, wenn er auf taster PD7 oder Taster PD6 warten soll?

das bekomme ich leider nicht hin.

Meine Vermutung wäre so, aber es ging nicht.

while   ((PINC & (1<<PC7)) | (PINC & (1<<PC0))   )

// dies hier hat sich aber als und  Verknüpfung herausgestellt


besser wäre natürlich, man baut eine If Scheife, damit das programm an 
der Stelle bei unbestätigten Taster nicht stehen bleibt


if (PINA & (1 << PINA0))  wenn PA0 geschlossen (HIGH)
{
}
wie würde man hier oben die Oder Verknüpfung realisieren? entweder 
Taster 1 oder Taster 2 betätigt, dann mache folgendes

so ähnlich?
if (PINA & (1 << PINA0)    | (PINA & (1<<PINA1)  )


Über eine konkrete Hilfe wäre ich Euch sehr dankbar.

Viele Grüße, Matthias.

von Helfer (Gast)


Lesenswert?

Der Beitrag liest sich irgendwie gruselig. Für C bitte [c ] [/c ] Tags 
nutzen.

Matthias H. schrieb:
> While (PIND & (1<<PD7) );     //tue solange nichts, bis PD7 auf high
Falsch. Tue solange nicht solange PD7 high ist.

> wie geht das bitte, wenn er auf taster PD7 oder Taster PD6 warten soll?
Fass es in Worte:
Ich warte solange PD7 und PD6 low sind.
1
while( (PIND & (1<<PD6))==0 && (PIND & (1<<PD7))==0 );

> besser wäre natürlich, man baut eine If Scheife, damit das programm an
http://www.if-schleife.de

Du solltest mal ein Blick in ein C-Buch werfen, da stehen solche Sachen 
drin. Auch das Tutorial könnte hilfreich sein.

von Matthias H. (maethes26)


Lesenswert?

Guten Morgen,

vielen Dank für Deine Hilfe.

von gaast (Gast)


Lesenswert?

Helfer schrieb:
>> wie geht das bitte, wenn er auf taster PD7 oder Taster PD6 warten soll?
> Fass es in Worte:
> Ich warte solange PD7 und PD6 low sind.

Ziemlicher Blödsinn gemäß dem Falle dass er wie der Rest der Welt 
Pull-Ips verwendet.

Helfer schrieb:
> Auch das Tutorial könnte hilfreich sein.

Genau da hat er es wohl rauskopiert. Nur nicht gemerkt, dass wildes 
kopieren nichts bringt wenn man nicht weiß, was man tut.

von Oktavian G. (Firma: Hochschule Karlsruhe) (tavin)


Lesenswert?

Helfer schrieb:
>> besser wäre natürlich, man baut eine If Scheife, damit das programm an
>
> http://www.if-schleife.de

diese Seite lügt, weil
1
label:
2
   if (A<6)
3
     {
4
     a++;
5
     goto label;
6
     }
 es auch eine if Schleife gibt :p

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.