String an UART mit C

Gast #5106
Lesenswert?

Hallo!

Ich möchte einen string ans uart ausgeben. es gibt bereits in gcctest4 
eine solche funktion, aber die ist interrupt-basiert, was mich stört. 
ich möchte gerne, daß der avr wenn er sendet, nur sendet.

hier is mein code:

void uart_send(u08 *buf, u08 size)
{
  unsigned char i=size;
  for (i=0;i<size;i++){

    outp(buf[i],UDR);

    while ( bit_is_clear(UCSRA,TXC));
  }

}



woran liegt's dass der nicht klappt?

mfg
Gast #5108
Lesenswert?

Hallo!

Vielleicht dass du die Abfrage NACH dem Senden hast ob er bereit ist?
Schau amal meine ein - die geht PERFEKT...

void send_command(unsigned char *data, unsigned char len)
{
  unsigned char i = 0;
  while(len--)
  {
    while(!bit_is_set(UCSRA, UDRE));
    outp(data[i], UDR);
    i++;
  }
}


Niki

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren