Datum: 04.11.2007 22:34
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
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel