C167 + serielle Schnittstelle

Gast #693134
Lesenswert?
• ▲
▼
Hallo an alle
Ich bin gerade dabei für einen C167 die serielle schnittstelle zu 
konfigurieren und Funktionen zur Benützung zuschreiben! Daher habe ich 
eine Funktion printf_asc geschrieben welche einen Satz buchstabenweise 
verschickt! Jedoch funktioniert es derzeit nur das der erste und letzte 
Buchstabe ankommen!

im Main:  printf_asc("test");

function.h:   void printf_asc(char data[]);

function.c:

void printf_asc(char data[]){
   int i;
   i = 0;
   do{
   write(data[i]);
   i++;
   }
   while (data[i] != '\0');
}

void write(char data){
  do{
    }
  while(S0TBIR != 1);
  S0TBUF = data;
}

char rBuf[10];
int rBufindex = 0;

void asc0_isr (void) interrupt 0x2B{
   rBuf[rBufindex] = S0RBUF;
   rBufindex == 9 ? rBufindex = 0 : rBufindex++;
}

Die Interrupt Service Routine wird wie gesagt nur 2 mal aufgerufen!

Sieht da irgendwer vielleicht einen groben Fehler!

Danke im vorhinein

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