Hallo Leute, ich hab ein kleines Problem, steh gerade völlig auf dem Schlauch ;-) im moment werden mir die Werte wie folgt ausgegeben: 100; 237; 45; 34; so wie im Code eben beschrieben ;-) sprintf(Sensor1,"%i;", ADCWert1); sprintf(Sensor2,"%i;", ADCWert2); sprintf(Sensor3,"%i;", ADCWert3); sprintf(Sensor4,"%i;\n", ADCWert4); uart_puts(Sensor1); uart_puts(Sensor2); uart_puts(Sensor3); uart_puts(Sensor4); _delay_ms(100); Ich benötige die Daten aber im folgenden Format: 100;237;45;34; Kann mir jemand sagen was ich abändern muss? sorry bin völliger Neuling alles was ich versucht habe das ganze mit "+" Sensor1 Sensor2 Sensor3 Sensor4 brachte ein Compiler Fehler. für eure Hilfe wäre ich Sehr Dankbar
David schrieb: > im moment werden mir die Werte wie folgt ausgegeben: > > 100; > 237; > 45; > 34; Werden die Werte so über die serielle Schnittstelle ausgegeben oder werden sie so von einem (unbekannten) Empfangsprogramm angezeigt?
Wie wärs einfach mit printf statt sprintf:
1 | printf("%i;", ADCWert1); |
2 | printf("%i;", ADCWert2); |
3 | printf("%i;", ADCWert3); |
4 | printf("%i;\n", ADCWert4); |
Oder brauchst Du die Strings Sensor1 - 4 noch an anderer Stelle?
Vielleicht könnte es so funktionieren:
1 | char sensorString[32]; //auf ausreichende Länge achten! |
2 | sprintf("%i;%i;%i;%i;\n", ADCWert1, ADCWert2, ADCWert3, ADCWert4); |
3 | uart_puts(sensorString); |
Allerdings kann man auch nachforschen, warum die Werte denn in deinem Fall "untereinander" stehen, also woher der Zeilenumbruch zwischen den Werten kommt. Ich vermute, dass die uart_puts-Funktion oder die Empfangssoftware dieses Linebreak einfügt.
Peter K. schrieb: > sprintf("%i;%i;%i;%i;\n", ADCWert1, ADCWert2, ADCWert3, ADCWert4); Fast.
1 | sprintf(sensorString,"%i;%i;%i;%i;\n", ADCWert1, ADCWert2, ADCWert3, ADCWert4); |
David schrieb: > sorry bin völliger Neuling Dann schau ins Manual zu Deinem "uart_puts". Vermutlich hängt es immer "\n" an. Entweder es läßt sich abschalten oder es gibt eine andere Funktion, die das nicht tut.
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.