Bascom RGB-PWM mit RFM12 Funkmodul führt zum Controllerabsturz

Fynn

Neues Mitglied
06. Okt. 2009
91
0
0
Sprachen
Hallo Leute!

Seit langer Zeit bin ich auch mal wieder im Forum unterwegs. Hat sich ja einiges verändert, schön :)

Derzeit programmiere ich an einer RGB Farbbeleuchtung, die ich über RFM12 Funkmodule fernsteuern möchte. Ehrlich gesagt, RGB ist es nicht, es sind lediglich die Farben Rot, Grün und Blau :p Eigentlich funktioniert alles einzeln wunderbar, nur zusammen gibt es mysteriöse Probleme :confused:

Zuerst habe ich mich um die Funkübertragung gekümmert. Diese wird mittels des FFIT Empfangs vom RFM12 realisiert. Die Verbindung steht! Der Controller empfängt ausnahmslos alles, was gesendet wird. Danach hab ich mich um die PWM von den drei Farben gekümmert. Jede Farbe sollte einzeln dimmbar sein. Leider kann ich somit auf die Hardware-PWM verzichten, diese bietet ja nur 2 PWM-Ausgänge :( Somit habe ich mich wohl oder übel für die Softwarelösung entschieden.
Nach etwas experimentieren mit den richtigen Frequenzen kann sich das Ergebnis durchaus sehen lassen :)

Nun zum Problem: Sobald ich RFM12 Funkübertragung und die Software-PWM in einem Programm unterbringe, bleibt der Controller ab und zu hängen. Also, der Timer für die PWM bleibt stehen, alle Interrupts reagieren nicht mehr. Sogar der Watchdog schläft ein o_O Bevor dieser Fall eintritt, empfängt der Controller mindestens einmal neue Farbwerte und setzt diese auch für mindestens ein paar Sekunden um. Nach unbestimmter Zeit bleibt der Controller wie schon gesagt einfach stehen. -> LEDs gehen aus, da der Timer nicht mehr läuft. Nach einem Reset funktioniert dann wieder alles, bis das Problem wieder eintritt. Das mein Programm irgendwo hängen bleibt, schließe ich in meinen Augen aus. Eigentlich kommt es nie zu einer Schleife, in der Interrupts deaktiviert werden. Und in den Interrupts selbst entsteht auch keine Endlosschleife.

Mein Verdacht liegt irgendwie bei der SPI Schnittstelle. Kann da irgendwas "stehen bleiben"? Ist aber nur ne wage Vermutung ;) Eine fehlerhafte Hardware kann man eigentlich auch ausschließen, da ja einzeln alles funktioniert, oder? Und auch wenn sich die Interrupts in die quere kommen, werden sie nacheinander ausgeführt. Mein größtes Problem ist aber einfach: Unter welchen Umständen kann ein Controller einfach "stehen bleiben"?

Ich habe meinen Code für euch mal etwas abgespeckt, damit es nicht zu unübersichtlich wird. z.B. Timer0 hab ich rausgenommen. Dort werden später nur die Effekte mit PWM erzeugt, die ich hier gar nicht benutze ;) Die RFM12 Routinen fehlen auch, nur das Empfangen ist noch da. Falls ihr meint, ich hätte den wichtigen Teil einfach rausgeschnitten, dann meckert rum! :p

Ich hoffe ihr könnt meine Ansätze vervollständigen!

Fynn
 

Anhänge

  • main_avrforum.bas
    5,8 KB · Aufrufe: 66

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)