mikrocontroller.net

Forum: Compiler & IDEs UART Datensalat


Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du auch PortC, Bit5 als Ausgang initialisiert?

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler gefunden! 2 Wochen Arbeit wegen eines Fehler in der Dokumentation
des Datensenders. Das Ausgangssignal ist invertiert!
So eine verfluchte .......

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.