Hallo Glaube meine Fragen werden langsam peinlich.Ich habe im Netz nichts darüber gefunden und hoffe mal wieder auf Hilfe von euch. Arbeite mit Codevision und Mega128. Wie gebe ich über die USART1 einen String aus? Beim mega163 ging es ganz einfach mit puts(string).Hatte ja auch nur eine UART. Gruß Helge
könntest den string einzeln ausgeben. also putchar1(string[0]); putchar1(string[1]); putchar1(string[2]); denn putchar wird bei der initialisierung mit codevision vom USART1 declariert. ist halt ein größerer schreibaufwand, aber dafür funktionierts.
Hallo Dieter Also mit putchar(string[0]) geht es. Aber ich würde ja gerne mit puts den gesamten string ausgeben. Wenn gar nicht anders muß ich mir wohl ne Schleife basteln um die Zeichen einzeln auszugeben. Kann man vielleicht etwas in der stdio.h ändern?
na ich hab bis jetzt noch keine andere lösung gefunden. wenns dir so wichtig ist den schreibaufwand zu sparen, gebs doch über den USART0 aus. ansonsten versteh ich nicht, wo das problem ist, die zeichen einzeln auszugeben. und über USART1 heißt es putchar1 nicht putchar. ich mein ob du puts(string); oder putchar1(string[0]); putchar1(string[1]); putchar1(string[2]); ist doch egal. und wenns ein zu langer string ist, machst du's halt mit ner schleife (i=0 bis i=n); sind doch alles wunderschöne lösungen. am ende ist doch egal was du fürn befehl verwendest, das ergebnis muss stimmen.
kannst dir ja auch ein kleines unterprogramm schreiben. void stringausgabe() oder so, da kannst du dann die länge des strings mit übergeben. und im unterprogramm steht halt die schleife, und fertig ist.
Ja wenns nicht anders geht muß ich wohl damit leben.Etwas umständlich ist es schon. Puts wär die Lösung.Wußte nicht das es mit dem Mega128 nicht geht. Habe bei mir putchar1 programmiert nur vergessen in meinem Beitrag zu schreiben. Vielen Dank für die prompte Hilfe
> Aber ich würde ja gerne mit puts den gesamten string ausgeben. > Wenn gar nicht anders muß ich mir wohl ne Schleife basteln um die Zeichen einzeln auszugeben. Nun rate mal was die puts(..) Funktion macht? Zeichen für Zeichen des übergebenen Strings in den Sendebuffer ausgeben, eine Schleife.
Hi Sascha Ich mach es mit einer Schleife.Werde vorher mit strlen die Länge ermitteln und dann gehts los.
Das mit strlen(..) ist ein unnötiger Aufwand: // -------------------------- unsigned char c; while (c = *string++) putchar1(c); // -------------------------- Pseudocode, also bitte nicht hauen wenns nicht exakt so klappert.
Na dann versuch ich es mal ohne strlen.Die Zeichenkette wird gut ausgegeben mit strlen. Hab momentan aber noch ein anderes Problem.Hab am RX0-Pin ein S35 dran.Komischer weise gibt mein Handy jetzt keine Daten zurück. ---->aber morgen ist auch noch ein Tag :-))
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.