DMX512 mit ATtiny2313 empfangen

Gast #1342409
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
Angehängte Dateien:
Gast #1342449
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?
Persönliche Seite #1342491
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?
Gast #1342506
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
Angehängte Dateien:
Gast #1342571
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.