- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 13

Thema: Atmel mega32 Programm abbrechen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    du könntest auch den Watchdog starten und den AVR dann in eine Endlosschleife schicken

    Gruß
    Chris

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2013
    Beiträge
    5
    Wsk8, aber da muss das Programm doch an dieser stelle vorbeilaufen um das Signal zu bekommen.
    Che Guevara, was ist ein Watchdog und wie wende ich ihn an?

    Was ich meine ist (habe so etwas gelesen) ein Ohr was die ganze zeit lauscht ob ein Signal auf einem bestimmten Port kommt. Wenn ja wird das Signal dem Programmablauf vorgezogen und reargiert dann irgendwie.

    Gruß

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    meinst du vielleicht einen Interrupt an einem Pin? Irgendwie blick ich jetzt doch nicht mehr so ganz durch, was du willst.
    Drück dich bitte mal sachlich korrekt & eindeutig aus
    Ein Watchdog ist eine Art Timer, bei dessen Überlauf der AVR resettet wird.
    Er wird üblicherweise verwendet, um das hängenbleiben eines µCs zu erkennen und darauf zu reagieren.

    Gruß
    Chris

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Ja, er meint wohl einen Interrupt. Aber ein Interrupt unterbricht dein Programm nicht ewig und fängt dann von Vorne an, sondern
    Programm läuft ... Interrupt wird ausgelöst -> Interruptcode wird abgearbeitet ... Programm läuft normal weiter.

    Wär toll wenn du dich etwas konkreter ausdrückst. Du klingst grad etwa so: Ich habe gehört, wenn ein Auto nicht funktioniert, dann muss man in ein Loch eine Flüssigkeit schütten.

    mfg

  5. #5
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Wie es genau in C aussehen muss kann ich dir nicht sagen...
    Bei Bascom würde es so ablaufen...
    Code:
    ...
    
    Config Pind.2 = Input                                        'Am Atmega8 der Int0-Pin
    
    ...
    Config Timer1 = Timer , Prescale = 8                    ' Timer konfigurieren und Takt einstellen
    Config Int0 = Change                                        ' Interrupt bei >wechselnder Flanke< des Echosignal starten
    On Int0 Interuproutine_Name                              ' Bei Interrupt zu InteruptSubroutine springen
    Enable Int0                                                     ' Wenn auf Echo gewartet wird wechselt Echo-Signal auf High
    Enable Interrupts                                             ' Interrupts global aktivieren
    ...
    SPRUNGMARKE_A
    Hauptprogramm
    blabla
    Hauptprogramm
    ...
    
    Interuptroutine_Name:                                                ' Interrupt startet bei Signalwechsel am Int0-Pin
       If Pind.2 = 1 Then                                                  ' Wenn Pin zu High wechselt ...
         Goto SPRUNGMARKE_A                                          ' Oder z.b. eine Variable setzen, die im Main immerwieder abgefragt wird
        End if
    Return
    Gruss, Joe
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2013
    Beiträge
    5
    Das mit dem Watchdog klingt doch gut. Wenn ich einen Taster drücke wird der Grenzwert überschritten (z.B. eine erhöhung von 0 auf 1) und das Programm wird RESETET. Also es Startet einfach ganz von vorne ohne den Reset-Knopf zu drücken.
    Aber wie wende ich so einen Watchdog an, an einem ATMega32 (ich Programmiere in C mit AVR). Habe geguckt werde aber aus dem Watchdog nicht schlau.

    Sorry wenn ich mich nicht gut ausdrücke. Bin aber ganz neu in der Thematik.

    Gruß

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hi,
    ich verstehe das eigentliche Problem nicht. Warum willst du den Reset-Taster nicht nutzen, der genau die Funktion erfüllt, die du wünscht. Stattdessen willst du einen weiteren Schalter/Taster anlöten, der technisch nichts an deiner vorhandenen Konfiguration ändert.
    Wenn du unbedingt den zus. Taster wünschst, würde ich zu Joe's Lösung tendieren, einen Taster am Int0-Pin abzufragen, in der Interrupt-Routine ein Flag (Variable) setzen und in der Main-Loop das Flag prüfen. Dann kannst du von dort an deinen Programmanfang springen, z.B. zur Initialisierung der Variablen.
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

Ähnliche Themen

  1. Atmel Mega32 Füßchen abgebrochen, Was tun?
    Von SiWi im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 02.02.2009, 16:39
  2. 2x Atmel Mega32
    Von Killer im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 05.04.2007, 17:41
  3. Atmel MEga32 --> Input
    Von Killer im Forum Elektronik
    Antworten: 21
    Letzter Beitrag: 11.02.2007, 17:16
  4. timer starten beim atmel rn mega32
    Von VODKACITY im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 26.09.2006, 19:49
  5. serielle übertragung beim Atmel mega32
    Von katiiiiii im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 26.01.2005, 17:01

Berechtigungen

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

12V Akku bauen