mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART-/Portinitialisierung (Anfängerproblem) läuft schief


Autor: Hans Meier (h_meier)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

probiere gerade bei einem AVR Mega8 den UART in Betrieb zu nehmen und
eine Verbindung zum PC aufzubauen. Das klappt mit

void uart0_init(void)
{
  UCSRB = 0x00; //disable while setting baud rate
  UCSRA = 0x00;
  UCSRC = (1 << URSEL) | (3 << UCSZ0);
  UBRRL = 0xBF; //set baud rate lo
  UBRRH = 0x00; //set baud rate hi
  UCSRB = (1 << RXEN) | (1 << TXEN);
}

auch "gut". Ich kann Zeichen senden und empfangen. Was mich aber
stutzig macht (im main):

  while (1)
  {
    if (PINB & (1<<PINB3))
    {
      sent = 0;
    }
    else
    {
      PORTC &= ~(1<<PC0);
    }
    if (PINB & (1<<PINB2))
    {
      if (sent < 10)
      {
        uart_putc('H);
        uart_putc('M');
        uart_putc('\n');
        uart_putc('\r');
        sent ++;
      }
      else
      {
        PORTC |= (1<<PC3);
      }
    }
    else
    {
      PORTC &= ~(1<<PC3);
    }
  }

wird nach dem Einschalten/Reset ständig gesendet, obwohl ich den Taster
an PortB.2 nie drücke.
Woran liegt das?
Außerdem bekomme ich beim verwenden der uart_puts("HM\n\r\0");
Funktion nur "komische" Zeichen geliefert, d.h. ich kann nur einzelne
Zeichen empfangen.

Was mache ich falsch?

Hans

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist der Taster denn angeschlossen? Low-Side oder High-Side? Sollte
mich nicht wundern, wenn die UART aufhört zu senden, wenn Du den Taster
drückst...

Autor: Hans Meier (h_meier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AAAARRRRGGGGGHHHH.

wie peinlich. Sorry für das Posting, aber es ist echt so wie du sagst.
Hast du evtl. auch eine Lösung für das 2. Problem, das ich bei
uart_puts nur komische Zeichen empfange?

Hans

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.