mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DMX512 mit ATtiny2313 empfangen


Autor: Theo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem mit dem Empfang von DMX512 mit einem ATtiny2313.

Ich habe schon mal einen Beitrag geposted, bitte entschuldigt, dass ich 
mich nochmals an Euch wende. Aber ich komme einfach nicht weiter.

Im Anhang findet Ihr meinen Code. Den habe ich von Hendrik Hoelschers 
Projekt für den ATmega8515 versucht zu übertragen. Leider scheitere ich 
noch immer.

Konkretisierung meines Problems:
Ich habe versucht, mich Schritt für Schritt an die Ursache ranzutasten. 
D.h. ich habe in der Interruptroutine in jeder einzelnen If-Schleife 
einen Ausgang des µC geschaltet um zu überprüfen, ob das Programm 
überhaupt in diejenigen Schleifen springt.

Beim 8515 funktioniert das einwandfrei, beim ATtiny2313 jeoch springt 
das Programm lediglich in die erste if-Schleife "if (USARTstate 
&(1<<FE))".

Das bedeutet für mich ja schon mal, dass der Interrupt soweit 
funktioniert und der Controller UART zumindest "sieht".

Wo kann nun mein Fehler liegen, dass der Interrupt nicht weiter 
ausgeführt wird?

Ich wäre Euch sehr sehr dankbar, wenn konstruktive Antworten kämen.

Viele Grüße

Theo

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Vermutung:

kann es sein, dass das Ganze mit dem Register UCSRC zusammenhängt? Im 
Vergleich zum 8515 weist das Register vom ATtiny2313 kein URSEL auf.

Wie hat man damit umzugehen?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theo schrieb:

> kann es sein, dass das Ganze mit dem Register UCSRC zusammenhängt? Im
> Vergleich zum 8515 weist das Register vom ATtiny2313 kein URSEL auf.
> Wie hat man damit umzugehen?

Man lässt das URSEL Bit dann weg. Also man initialisiert die UART so wie 
du es gemacht hast.

Hast du bereits kontrolliert, ob dein Attiny2313 mit 16 MHz läuft, wie 
im Programm vorausgesetzt?

Autor: Theo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stefan,

erstmals vielen Dank für Deine Antwort.

Dein Hinweis könnte durchaus zielführend sein:
Die Fuse-Bits habe ich lt. Anhang gesetzt und zum Programmieren verwende 
ich ein STK500 mit 16 MHz Quarz.
Zum Testen hab ich den USART-Interrupt auskommentiert und ein 
Rechtecksignal an einem Ausgang mit je _delay_ms(100) für ON und OFF 
Zeit programmiert.
Die tatsächliche Zeit ist aber ca. 800ms.

Hab ich da wieder was falsch gemacht?

Viele Grüße

Autor: kaffeetas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Theo,

RTFDS -> mach den Haken bei CKDIV8 raus dann passts auch mit dem delay.

Grüße
 kaffeetas

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

nun läufts!! Genau der Fehler wars.

Vielen Dank für Eure Hilfe.

Ihr habt mir geholfen, meinen Haarausfall noch ein wenig zu verzögern.

Diese Scheiß Fusebits........

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.