- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Brauche Hilfe mit C-Code für einen ATmega645 auf STK600 Board

  1. #1

    Brauche Hilfe mit C-Code für einen ATmega645 auf STK600 Board

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich habe ein Problem mit meinem C-Code und komme irgend wie nicht dahinter warum
    Unten ein Ausschnitt aus meinem Programm. Ich habe diverse Test LEDs zwischen geschaltet um zu testen wo ich im Ablaufprogramm hängen bleibe. Ich komme in die Stop Routine rein bis unten zu den letzten Zeilen durchläuft er das Programm ohne Fehler. Auch die TestLED4 wird gesetzt. Mein Problem ist jetzt das er mir die Variable Stop (zum verlassen der Stop Routine) nicht auf 0 setzt. Wenn er das machen würde müsste die TestLED0 wieder aus gehen und das tut sie nicht und mein "normales" Ablaufprogramm bleibt gesperrt. Also warum setzt er die TestLED4 aber Stop nicht auf 0 obwohl beide in der gleichen if-Schleife sind? Ich hoffe mir kann hier einer weiter helfen bin grad am Verzweifeln
    Programmiert ist alles mit dem Atmel AVR Studio 6 Version 6.1.2730 mit dem STK600 Experimentierboard.
    Ich sag schon mal Danke für alle Tips

    // Auswertung Stop Variable ob 0 oder 1

    if (Stop==0) {
    PORTB &= ~(1 << TestLED0);}
    if (Stop==1) {
    PORTB |= (1 << TestLED0);}

    // -------------- Programmabschnitt Stop --------------------------
    // Auswertung Stop Routine
    if (Stop==1){
    if ((Stop_aktiv==0) && (Schluessel_auf==0) && (Schluessel_zu==0)) {
    Stop_aktiv=1;
    PORTB |= (1<<TestLED1);} // Ansteuerung von Test LEDs
    PORTB |= (1<<TestLED2);

    if ((Pointer_oeffnen>=1) && (Stop_aktiv==1)){ // Auswertung Programm öffnen aktiv
    cli();// Globale Interuptfreigabe löschen
    if (Schluessel_auf==1) { // Auswertung das "Schlüssel auf" betätigt wurde
    Stop=0; // Stop Routine verlassen
    PORTB |= (1<<TestLED4);
    Stop_aktiv=0;}
    sei(); }

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    542
    Blog-Einträge
    17
    Geht die Auswerteroutine noch weiter? Wenn man sich den Code in einem Editor mit Syntax Highlighting anschaut (habe kein AVR - auf die Schnelle Notepad++ benutzt), fällt auf, dass die geschweifte Klammer nach if (Stop==1){ nicht geschlossen wird. Nicht dass dann Code mit ausgeführt wird, das nicht zu der Routine gehört, in dem Stop gesetzt wird
    Code:
    if (Stop==1){
        if ((Stop_aktiv==0) && (Schluessel_auf==0) && (Schluessel_zu==0)) {
            Stop_aktiv=1;
            PORTB |= (1<<TestLED1);
        } // Ansteuerung von Test LEDs
        PORTB |= (1<<TestLED2);
    
        if ((Pointer_oeffnen>=1) && (Stop_aktiv==1)){ // Auswertung Programm öffnen aktiv
            cli();// Globale Interuptfreigabe löschen
            if (Schluessel_auf==1) { // Auswertung das "Schlüssel auf" betätigt wurde
                Stop=0; // Stop Routine verlassen
                PORTB |= (1<<TestLED4);
                Stop_aktiv=0;
            }
            sei(); 
        }

  3. #3
    Zitat Zitat von witkatz Beitrag anzeigen
    Geht die Auswerteroutine noch weiter? Wenn man sich den Code in einem Editor mit Syntax Highlighting anschaut (habe kein AVR - auf die Schnelle Notepad++ benutzt), fällt auf, dass die geschweifte Klammer nach if (Stop==1){ nicht geschlossen wird. Nicht dass dann Code mit ausgeführt wird, das nicht zu der Routine gehört, in dem Stop gesetzt wird
    Ja die Auswerteroutine geht noch weiter. Ich habe allerdings den Rest auskommentiert damit mir nicht irgend etwas weiter unten da oben rein pfuscht. Die Fehlenden Klammern kommen ganz unten am Schluss. Das war das erste was ich gecheckt hab. Den Eingang in die Stop Schleife ist eine Auswertung von zwei Eingängen und zwei Variablen. Das hab ich bereits gecheckt, das die mir stop nicht mehr auf 1 setzt. Das ist die einzigste Stelle wo ich stop setze.

    MfG.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 29.01.2013, 20:33
  2. Bascom code auf Arduino Board Flashen **Hilfe**
    Von KoaxPilot im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 13
    Letzter Beitrag: 23.06.2011, 10:14
  3. Hilfe bei einen Mega16 Code für IR Anwendung
    Von PsychoElvis64 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 06.11.2006, 21:39
  4. Brauche Hilfe für Mega RGB LED Board
    Von djenk im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 30.08.2005, 23:35
  5. Ich brauche eure Hilfe für einen Tachobau
    Von basti im Forum Elektronik
    Antworten: 18
    Letzter Beitrag: 13.05.2004, 16:49

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress