UART Datensalat

Gast #179232
Das ich meine UART Schnittstelle nicht zum laufen bekomme ist ja wohl
inzwischen der Runninggag dieses Forums.

Auf der Suche nach dem Fehler wollte ich jetzt ein PC5 auf High setzen,
wenn die Abfrage der Daten beginnt und zurücksetzen, wenn die
Datenabfrage gelaufen ist.


countit=1;
while (countit < 16)
{
 if (checkbit(UCSR1A,RXC1))
  {
  data = UDR1;
  text[countit] = data;
  setbit(PORTC,PC5);
  asm("NOP");asm("NOP");asm("NOP");
     switch(countit)
  {
  case 1 : stunde  = ((data) * 10);       break;
  case 2 : stunde  = (stunde + (data));   break;
  case 3 : minute  = ((data) * 10);       break;
  case 4 : minute  = (minute + (data));   break;
  case 5 : sekunde = ((data) * 10);       break;
  case 6 : sekunde = (sekunde + (data));  break;
  case 8 : tag     = ((data) * 10);       break;
  case 9 : tag     = (tag +     (data));  break;
  case 10: monat   = ((data) * 10);       break;
  case 11: monat   = (monat   + (data));  break;
  case 12: jahr    = ((data) * 10);       break;
  case 13: jahr    = (jahr    + (data));  break;
  case 15: status  = (data );              break;
  }
  clearbit(PORTC,PC5);
  asm("NOP");asm("NOP");asm("NOP");
  setbit(PORTD,PORTD3);
  countit++;
   }
}

Die Datenübertragung wird ausgelöst und das Programm verläßt auch die
Schleife woraus ich schließe, dass mindestens 15 Byte erkannt wurden.
Aber es gibt kein Signal an PC5 ?!? Wenn ich "clearbit(PORTC,PC5);"
auskommentiere wird das Bit gesetzt.
Was ist daran falsch?
Warum bekomme ich kein Impuls auf PC5?
Gast #179234
Ja. Der Impuls war im Verhältnis zum Datenstrom nur zu kurz. Ich toggle
ihn jetzt nur bei jedem Byte, das passt besser und ich kann sehen, dass
meine 15 Datenbyte abgefragt sind, wenn das 14te gerade den Sender
verläßt. Bleibt die spannende Frage, warum das so ist.
Reloadwert stimmt.
Gast #179235
Fehler gefunden! 2 Wochen Arbeit wegen eines Fehler in der Dokumentation
des Datensenders. Das Ausgangssignal ist invertiert!
So eine verfluchte .......

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.