- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Atmel mega32 Programm abbrechen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2013
    Beiträge
    5

    Atmel mega32 Programm abbrechen

    Anzeige

    Powerstation Test
    Hallo liebe Mitglieder,

    ich bin neu hier und habe auch noch keine Forum Erfahrungen, habe mir aber gedacht ich versuche es mal hier.

    Vor kurzem habe ich angefangen mit C zu programmieren. Ich Programmiere mit AVR 5 den ATMega32 und habe auch schon erfolgreich Programme geschrieben bin nur an ein Problem gestoßen was ich nicht gelöst kriege.
    Mein Problem ist das ich ein Programm habe es aber nicht mittendrin abgebrochen bekomme durch ein Signal. Habe schon irgendwas von interrupts gelesen bin da aber leider garnicht durchgestiegen.
    Würde mich über Hilfe freuen.

    Gruß Titooo

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Was heißt mittendrin abbrechen bei dir? Paar Infos mehr wären nett.

    mfg

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2013
    Beiträge
    5
    Also bei mir läuft ein Programm auf dem ATMega32. In dem Programm werden verschiedene Ausgänge angesteuert um LED's leuchten zu lassen.
    Jetzt ist eine for Schleife drin die 100x den Befehl _delay_ms(10) druchläuft. Mein Wunsch ist es jetzt den Ablauf zu unterbrechen und an eine Bestimmte Stelle im Programm zu springen, von mir aus an den Anfang des main Programms. Weil wenn ich z.B. einen Zeitablauf habe der 1h dauert möchte ich den gerne Abbrechen können ohne die Stromversorgung zu entfernen oder den RESET Knopf zu drücken.
    mfg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    if(Signal) {
    -- PORTX auf Input //PortX hängt an Reset
    }

    Dann gibts einfach nen Reset und alles fängt wieder von Vorne an.

    mfg

  5. #5
    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

  6. #6
    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ß

  7. #7
    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

  8. #8
    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

  9. #9
    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.

  10. #10
    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ß

Seite 1 von 2 12 LetzteLetzte

Ä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
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad