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

Thema: Pwm Motorsteuerung mit PCINT1

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Mir erschließt sich zwar leider immer noch nicht so genau, WAS der Controller denn nun letzten Endes tun soll - aber ich habe einen weiteres "No-Go" im Zusammenhang mit Interrupts entdeckt (das erste waren "Wait"-Befehle in der ISR):

    Die ISR darf niemals mit einem Goto verlassen werden!

    Und es ist auch schnell erklärt wieso:
    Bei jedem Interrupt werden als allererstes eine Menge Register-Inhalte "gerettet", damit der Controller nach dem Abarbeiten der ISR an genau der gleichen Stelle weiterarbeiten kann, an der er unterbrochen wurde. Die Inhalte dieser Register werden in den sogenannten "Stack" (= "Haufen") geschrieben, für den ein Teil des Speichers reserviert ist. Wenn am Ende der ISR der Befehl Return kommt, werden alle Bytes aus dem Stack in die Register zurückgeschrieben - der Controller kann ganz normal weiterarbeiten, und Stack ist wieder frei für den nächsten Interrupt.
    Wenn der Return-Befehl aber übersprungen wird (indem die ISR mit einem Goto verlassen wird), wächst der Stack bei jedem Interrupt an, und da er nur eine endliche Größe besitzt, läuft er irgendwann einmal über - und dann hängt der Controller fest.

    Also: Die ISR Immer schön über Return verlassen!!

    Allerdings erklärt das Dein Problem noch nicht, denn E ist ja zunächst mal 0, so dass dieses Goto gar nicht ausgeführt werden sollte.

    Hast Du denn ordentliche PullUp-Widerstände an den Eingängen? Die Controller-eigenen sind ja nicht aktiviert...


    Edit:

    Außerdem ist es eine potenzielle Fehlerquelle, E durch Additionen und Subtraktionen auf 1 und 0 zu setzen. Wenn z.B. als erstes die ISR PWM2 abläuft, ist E = 0 - 1 = 255, und dann stimmt sowieso nichts mehr.

    Schreib doch stattdessen ganz einfach E=0 oder E=1! Genauso einfach kannst Du die Variablen M, N, X und Y in der ISR PWM2 auf 0 setzen, ohne eine aufwendige Multiplikation zu machen!
    Geändert von Sauerbruch (09.03.2013 um 14:49 Uhr)

Ähnliche Themen

  1. PWM Motorsteuerung
    Von daniel.weber im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 08.03.2008, 11:41
  2. PWM Motorsteuerung probleme
    Von homedom im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 07.01.2008, 13:22
  3. PWM für Motorsteuerung
    Von julien im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 06.03.2007, 13:28
  4. Denkfehler bei motorsteuerung nFET mit PWM
    Von FoCus im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 01.03.2007, 14:35
  5. Antworten: 7
    Letzter Beitrag: 12.07.2006, 00:52

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress