- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 24

Thema: AtMega32 - Delay wird bei Tasterdruck nicht richtig ausgelöst

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    okay,
    momentan hast Du eigentlich immer noch einen offen liegenden Eingang wenn nicht gedrückt ist. Einfach den Widerstand in Reihe mit dem Taster und Ground bring keinen effekt der dir hier hilft. Schau mal hier Bild1 : http://www.elektronik-kompendium.de/...erer/pullr.htm


    Du müsstest den Widerstand als PullUp zu VCC einbauen wenn du den taster zu GND schaltest. Oder den internen benutzen und extern dann weglassen.
    Dann musst Du in Deinem Programm allerdings beachten, das der Pin beim drücken auf low gezogen wird. Dazu müssen die dann Bedingungen angepasst werden - ich fürchte genau das meinte Hubert auch.


    Es kann eigentlich nicht sein das es wirklich merklich viel Rechenzeit benötigt bis sich was tut. Also antippen müsste ausreichen um den vorgang zu starten.

    Deinen neuen Code, könntest Du den ochmal zeigen?

    Edit: nochmal als tipp: Hardware muss zur Software passen! - baust Du deine Schaltung mit dem Taster zu GND auf, musst Du einen PullUp zu VCC schalten (intern aktivieren ODER erxtern fest einbauen). Damit ist der EingangsPin auf "high" = 1. Und das wiederum wird dann im Code üblicherweise abgefragt, also ob high weg ist = 0 (oder !=1).

    Ich persönlich ziehe es momentan vor meine Programme so zu schreiben und meine Schaltungen so aufzubauen, das meine TasterEingänge auf "low" gezogen sind wenn sie nicht gedrückt werden, und auf high gehen wenn man drückt. Dafür verbaue ich einen PullDown. Warum? Ganz einfach, ich finde es sinnvoller einen Kontakt zu schliessen und das messen zu lassen (PullDown>GND, mit Taster>VCC) , als einen bestehenden Kontakt zu unterbrechen und darauf zu reagieren (PullUp>VCC, mit Taster>GND).
    Egal wie man es macht, die Schaltung muss mit dem Code zusammen passen!

    konkret zu 2: Ich meine du bist da in deinem delay gelandet-daher die Verzögerung. Das bedeutet Deine if-Bedingung ist schon erfüllt, obwohl Du noch nicht gedrückt hast, jetzt drückst Du und der else-Teil läuft.

    Viel Erfolg
    Geändert von HeXPloreR (27.07.2012 um 07:02 Uhr)

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Sehr gut, jetzt hab ich meine Schaltung (war ja nur am Steckbrett) so umgebaut wie auf dem Bild dargestellt aufgebaut, das du mir in deinem Link gepostet hast (Abbildung rechts oben am Bild).

    Zack, schon funktionierts. Also ich habe jetzt einen Widerstand zwischen Port und GND, und den Taster zwischen Port und VCC.
    Funktioniert jetzt wirklich wie erwartet, also auch bei "antippen" wird sofort reagiert und der delay dann auch korrekt ausgeführt.
    War also ein Fehler im Anschluss des Tasters. Dazu könnte man ja mal einen RN-Wiki Eintrag verfassen, um sowas vorzubeugen.

    Riesen Dankeschön nochmal!

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Gut wenn es jetzt funktioniert.
    Etwas einfacher wäre es wenn der Taster zwischen Port und GND liegt und der interne PullUp des Kontroller aktiv ist.
    Die Abfrage muss natürlich dann angepasst werden.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Habe dazu jetzt noch einen kurzen Artikel in die Wiki gestellt mit dem Titel "Tastsensoren", um anderen Usern den Einstieg in dieses Thema zu erleichtern.

    Ich habe versucht den Artikel so vollständig und richtig wie möglich zu halten, wäre aber super wenn den jemand nochmal durchlesen könnte ob sich da nicht doch noch irgendwo etwas eingeschlichen hat.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Tausche bitte im letzten Codebeispiel den Kommentar "Taster ist nicht gedrückt" und "Taster ist gedrückt" um, denke so macht das dann Sinn mit der Abfrage auf low.
    Ansonsten sieht es für mich für den Einstieg recht brauchbar aus. Das hast Du gut gemacht.
    Allerdings habe ich den Artikel nur gefunden, weil es ein Neuer ist. Wo finde ich den morgen oder übermorgen? Es gibt den Beitrag "Taster-Abfragen in C" in der Kategorie Software, oder "Pullup Pulldown Widerstand" vielleicht da irgendwo mit hin oder sogar dazu in den Beitrag? Was hier anscheinend nur fehlt ist der zusammenhang Schaltung und Software.

    Es freut mich das wir helfen konnten und nun kann das Wochenende ja ruhig kommen

    Viel Erfolg weiterhin...Geduld Du haben, das Du bewiesen
    Geändert von HeXPloreR (27.07.2012 um 12:39 Uhr)

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    EDIT: Habs gefunden und habe den Beitrag jetzt dem "Sensoren" Verzeichnis hinzugefügt.

Ähnliche Themen

  1. Interrupt wird nicht ausgelöst
    Von Michael_am32 im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 02.08.2010, 00:37
  2. ICP auf ATMEGA8 wird nicht ausgelöst
    Von =JTR= im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 29.04.2010, 10:36
  3. Interrupt wird nicht ausgelöst
    Von einballimwas im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 01.09.2009, 14:29
  4. Interrupt wird nicht ausgelöst
    Von PcVirus im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 10.04.2008, 15:14
  5. [Frage?] die Delay TIme nicht stimmt mit <util/delay.h>
    Von PaMan im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 03.08.2007, 15:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress