- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
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 Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Hallo,

    Also der Quarz ist definitiv ein 8.0Mhz, andere Programme (z.B. LEDs immer 1 sek an, 1 sek auszuschalten) funktionieren auch ganz problemlos. Fuses passen also auch dafür, wie gesagt, alle anderen Programme mit _delay_ms(x) machen keinerlei probleme.

    @Hubert.G: Es macht leider keinen Unterschied wie lange ich den Taster gedrückt halte, auch wenn ich den Taster nur kurz "antippe" geht die LED nur für genau die Zeit an, die der Taster gedrückt ist. Unabhängig davon ob ich den Taster antippe oder für 10 sek halte, die LED bleibt exakt so lange an wie der taster gedrückt ist.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Hallo,
    macht deine LED auch das was sie machen soll, weil du schreibst sie geht brav AN und auch wieder AUS. Laut deinem Programm müsste sie ja von anfang an AN sein?

    Baue doch mal ein delay zum prüfen in den else-Teil ein, funktioniert dieses delay?

    mfg
    Geändert von HeXPloreR (23.07.2012 um 18:26 Uhr)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Sry da habe ich mich in meiner letzten Antwort verschrieben, bin ich vor lauter herumprobieren übers Wochenende durcheinander gekommen.

    Also die LED ist beim Programmstart AN und soll mit Tastendruck für exakt eine Sek AUSgehen.
    Unabhängig davon wie lange ich den Taster gedrückt halte, also sowohl bei antippen als auch bei halten, ist die LED immer nur so lange auus wie der Taster gehalten wird.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    okay,

    in einem andere Beitrag hast du geschrieben das Du die Warnungnen des Compilers aus hast, hast Du sie heir an? Meldet er was?

    Ich kann es mir nicht vorstellen, aber ich würde fast sagen das hört sich wie ein Reset an.

    Bist Du sicher das der den else-Teil durchläuft? Tausche doch bitte mal die Anweisung aus, so das die LED bei taster drücken an geht und ansonsten aus ist. Vielleicht noch eine extra LED an einem PORT hängen und mit _delay_ms(200) einschalten lassen sobald das programm an main vorbei gelaufen ist - nicht wieder ausschalten. Wenn der jetzt immer neu startet würde dann würde diese LED blinken.

    Verursacht ein Kurzschluss möglicherweise einen Reset?

    Was weißt Du über den Watchdog? hat der m32 einen? ist der aktiviert? Möglicherweise muß der ausgeschaltet oder zurückgestzt werden, damit er nicht "denkt" dein Program ist abgestürzt?

    mfg
    Geändert von HeXPloreR (26.07.2012 um 19:54 Uhr)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Warnungen sind eingeschaltet, werden aber keine ausgegeben.

    Watchdog sagt mir leider kaum was, also ich hab schon mal davon gelesen im AtMega32 Datenblatt glaub ich.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    okay, der Hubert schient etwas wichtiges angespochen zu haben.
    Setze einen 1kOhm Widerstand zwischen GND und PORT TASTER, den Taster auch mit an PORT TASTER und die andere Seite vom Taster auf VCC(+5V). Damit hast du solange "0" am PORT TASTER solange du nicht drückst. Drückst Du geht er auf "1". Und ist somit der von Hubert bemängelte PullDown.

    Viel Erfolg

    mfg

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Also ich hab jetzt den von euch angesprochenen 1k Ohm Widerstand hineingeklemmt, macht aber leider auch keinerlei Unterschied zu vorhin. Also die LED Schaltet noch immer genau so lange, wie der Taster gedrückt wurde und nicht eben mindestens eine Sekunde.

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hab das gerade noch mal getestet, aber eigentlich ganz klar.
    Du drückst die Taste, wird erkannt, LED geht aus, delay läuft. Jetzt kommt es darauf an wann du die Taste auslässt.
    Lässt du sie unmittelbar vor dem Ablauf des delay los, hast du keine Verzögerung mehr.
    Es ist also Glückssache wie lange die LED noch aus bleibt.
    So wie du es willst, müsste das delay nach dem loslassen der Taste beginnen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    @Hubert.G: Dann müsste aber auch bei "antippen" des Tasters die LED für mindestens eine Sekunde aus bleiben, passiert aber auch nicht sondern die LED blinkt nur ganz kurz auf.

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Bei mir tut es das schon.
    Hast du auf deiner Taste auch einen PullDown oder ist der Eingang offen wenn keine Taste gedrückt?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 2 12 LetzteLetzte

Ä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