www.mikrocontroller.net

Forum: Compiler & IDEs DMXmit atmega32


Autor: Marco G. (mgrueger)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche die DMX Lib von Hendrik Hölscher auf meinem atmega32
zum laufen zu kriegen. Bis jetzt komme ich aber nur bis zum break.
Könnte mal jemand über den Quelltext schauen und mir sagen was da
schief ist?

Vielen Dank.

Marco

Autor: Stefan B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe nur diese komische Stelle:

> #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000"
> #define F_CPU 8000000UL  // Systemtakt in Hz - Definition als unsigned long 
beachten

Aber das wirkt sich bei mir nicht auf die Kompilierung aus. Die 
funktioniert  klaglos; auch über das break hinaus.

Autor: Marco G. (mgrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
mein Problem ist, das ich in der ISR(USART_RX_vect) nur das break 
erkenne den Rest der Daten aber nicht richtig auswerte. Ich komme also 
nicht an die Stelle "else if (DmxState == STARTB)".

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit was für einem Takt läuft denn dein Mega32?

MFG

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define BAUD 25000UL      // Baudrate


Ich glaub da fehlt ne Null.

Autor: Marco G. (mgrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Mein Takt ist 8Mhz, mit der geänderten Baudrate gehts auch nicht weiter.

Autor: Stefan B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie testest du, AVR Simulation oder angeschlossene DMX Hardware?

Autor: Marco G. (mgrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs erst mit dem AVR Studio im Debugger laufen lassen und nachdem 
es da gut aus mittels USB Interface und udmx.exe. Meine Schaltungen hab 
ich von http://plischka.at/DMX-512.html. Ein RGB-LED Par läßt sich 
einwandfrei ansteuern nur mein selbstgebauter reciver halt nicht.

Autor: Stefan B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist ich sehe den Bug auch nicht. Von der Programmlogik her können drei 
Dinge passieren:

1. Du bekommst im Zustand BREAK beim nächsten Byte einen FE. Dann 
bleibst du in BREAK

2. Du bekommst im Zustand BREAK beim nächsten Byte keinen FE. Das 
empfangene Byte ist gleich 0, dann geht es nach STARTB. Das scheint 
nicht der Fall zu sein.

3. Du bekommst im Zustand BREAK beim nächsten Byte keinen FE. Das 
empfangene Byte ist ungleich 0, dann geht es nach IDLE. Das scheint 
nicht der Fall zu sein.

Du sagst du steckst in BREAK fest. Also wieso bekommst du einen FE? 
Baudratenberechnung (mit dem korrekten 250000UL) habe ich geprüft. 
Stimmt. Frameformat (1 Start, 8 Data, 2 Stop, No Parity) habe ich 
geprüft. Stimmt.

Autor: Marco G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst einmal vielen Dank für Eure Hilfe!
Ich habe es zwar immer noch nicht zum laufen,
aber ich denke ich sollte noch einmal die Schaltung
vornehmen. das Programm sollte es ja eigentlich tun.

Autor: Henne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lass mal eine LED blinken und schau ob die erwartete Frequenz rauskommt.

Wenn nicht -> fuses falsch. (Dann hängst du auch im break ;-)


VG,
Hendrik

Autor: Henne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--> DAS IST NICHT MEINE LIB. <--

Lokale Variablen werden eh in Registern gehalten.
Du setzt die FSM absichtlich vor Erreichen der Startadrsse auf IDLE. Das 
kann nicht funktionieren.

Nimm doch erst mal meine Lib und schau nach welcher Änderung sie Dir um 
die Ohren fliegt. Effizienter ist das eh nicht... (sonst hätte ich es 
vor 1,5 Jahren mal übernommen.)

Hendrik

Autor: Marco G. (mgrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hendrik,

ich habe ja auch geschrieben "ich versuche", das es nicht Deine Lib ist 
und das Du es nicht so geschrieben hast ist mir klar. Wenn ich Dir zu 
nahe getreten bin bitte ich vielmals um Entschuldigung. Ich versuche nur 
zu lernen, ich hoffe Du nimmst esmir nicht übel.

Danke für Deine Arbeit und Deinen Hinweis.

Marco

Autor: Henne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehm keinem was übel ;-)

Autor: Marco G. (mgrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
es waren tatsächlich die Fuse Bits so was blödes. Wieder was gelernt.
Vielen Dank an alle die geholfen haben.

Marco

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.