Hallo alle µC-Bastler, ich stehe gerade vor einem kleinen Problem. Ich habe immer zum Taster abfragen if (bit_is_clear(var, bit)) {} else {}. genutzt. Doch nun will ich den Zustand eines Portpins auslesen und dann in eine Variable schreiben. In Bascom geht dies ja einfach mit var = PinA.2. Doch wie geht dies in C? Gibts da auch eine Funktion oder kann man sich da was selber basteln? Wäre nett, wenn mir jemand helfen kann.
Das geht so: 1. Möglichkeit x = PORTA & (1 << BITDASGETESTETWERDENSOLL) Setzt in x (1 << BITDASGETESTETWERDENSOLL) oder 0 - je nachdem ob das bit in PORTA an war oder nicht. Das reicht für if abfragen, da die nur auf 0 oder ungleich 0 testen. 2. Möglichkeit: x = (PORTA & (1 << BIT)) == (1 << BIT) liefert 1 wenn das bit gesetzt ist oder 0 wenn nicht. Das ist aber eigentlich genau das selbe wir bei Deinem alten Code. Wenn Du Taster abfragst, denke daran, daß diese prellen. Dazu gibt es hier im Forum viel Beispielcode wie man das unterdrückt, ist nicht so einfach wie man zunächst denkt. Frohes Schaffen und ein gesegnetes Weihnachtsfest. Hans
Danke. Möchte jedoch keine Taster abfragen, sondern beschäftige mich gerade mit dem DS18S20. Jedoch funktioniert bei mir der Reset nicht ganz und schätze, dass das an meiner Pin abfrage scheitert. Ich bekomme bei meinem Code immer "kein Device vorhanden" per RS232. Liegt mein Fehler im Code? Code ist angehängt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.