Warten bis Tasterdruck erfolgt

#3549768
Lesenswert?

Ist der Pin auf Eingang geschaltet?
WIe ist der Taster verschaltet?
Hast du einen Pullup/Pulldown Widerstand.

Auf Deutsch:
Zeig alles!

Das Problem ist nicht in den 3 Zeilen Code. Dass die nicht die Ursache 
sind, siehst du selber. Wir sehen da auch nichts anderes. Also liegt das 
Problem im Umfeld. Das aber zeigst du nicht.
#3549834
Lesenswert?

Martin Fischer schrieb:
> Was ist denn nun? Erst rummeckern und jetzt nicht helfen?

Ich hab auch noch anderes zu tun, als mich nur um deinen Code zu kümmern
1
            kalibrierung(PINB, PB5, &s, &o);
2
            
3
....
4

5
void kalibrierung(uint8_t pin, uint8_t port, float *steilheit, float *offset){
6
...
7

8
    while(1){
9
        if(digRead(pin, port)){
10
            break;
11
        }
12
    }

erstens sind die Argumnente schon mal falsch rum.
Zweitens kann das so nicht funktionieren. Denn beim Aufruf der Funktion 
kalibrierung wird hier
1
            kalibrierung(PINB, PB5, &s, &o);
der aktuelle Zustand des PINB ermittelt und an die Funktion übergeben. 
Innerhalb der Funktion ändert sich der aber nicht mehr, weil ja das 
PIN-Register überhaupt nicht mehr abgefragt wird, sondern hier
1
        if(digRead(pin, port)){
immer wieder lediglich auf den in pin gespeicherten Zustand zum 
Zeitpunkt des Funktionsaufrufs zurückgegriffen wird. Und der ist 
logischerweise immer derselbe.
#3549854
Lesenswert?

Teo Derix schrieb:
> Martin Fischer schrieb:
>> Was ist denn nun? Erst rummeckern und jetzt nicht helfen?
>
> Und... Tschüss

Ganz normal. Quer durch das Forum glänzt Martin durch eine interessante 
Mischung aus absolutem Unwissen, keinerlei Ansatz irgendwelches 
Verständniss der Materie aufzubringen und penetranter Dreistigkeit 
("malt mir einen Schaltplan und sagt mir genau was ich wo anschließen 
muss und schnell gefälligst").

Von mir gibts da inzwischen nix mehr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren