Forum: Mikrocontroller und Digitale Elektronik Ausgabe einer Zeichenfolge über Usart an PC Terminalprogram


von flo (Gast)


Lesenswert?

Hallo,
gibt es eine einfache Funktion zur Textausgabe vom Mikrocontroller zum 
Terminal über Usart.
Mein Versuch sieht so aus und klappt leider nicht:

void usart_putc(unsigned char c)
{
    while (!(UCSRA & (1<<UDRE))); // warten bis Senden moeglich
  UDR = c;                        // sende Zeichen
}

void usart_puts (unsigned char *s)
{
    while (*s)
    {
        usart_putc(*s);
        s++;
    }
}

void Usart_Tx(char text)
{
  char s[50];
  usart_puts(text);
}

int main (void)
{
        Usart_Tx('Hallo welt!');
        return 0;
}

Gruß flo

von fieser, klugscheissender Rahul (Gast)


Lesenswert?

>void Usart_Tx(char text)
>{
>  char s[50];
>  usart_puts(text);
>}

Wozu brauchst du die noch extra?
Sonst sind das ja die Standard-Funktionen zur Textübertragung.
Vermultlich liegt dein Fehler woanders im Programm.

von fieser, klugscheissender Rahul (Gast)


Lesenswert?

Ist das dein ganzes Programm?

Da fehlt nämlich noch die Initialisierung...

von flo (Gast)


Lesenswert?

Nein nur ein Auszug.

wenn ich im main Teil die Funktion usart_putc('s') verwende wird der 
Buchstabe s richtig Ausgegeben, ich kann nur keine Zeichenketten 
ausgeben.

Habe gerade noch was geändert:

void Usart_Tx(char text[50])
{
  usart_puts(text);
}

leider bekomme ich es nicht hin die usart_puts()Funktion direkt 
einzubinden auf Grund der verschiedenen Deklarationen. Bin leider nicht 
so gut im Programmiren.

von fieser, klugscheissender Rahul (Gast)


Lesenswert?

Fehler:
'Hallo welt!'

Nimm "Hallo welt!"

von flo (Gast)


Lesenswert?

Vielen dank, jetzt funktioniert es tadellos.
Es sind halt immer die kleinen Fehler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.