Moin,
versuche eine Übertragung eines 10 Bitwertes über STK500 USART an einen
PC.
Empfangen wird mit Hterm (nicht hyper Teminal).
"Codeschnipsel"
ADC_Messung_starten();
// get converted value
ADC_Wert = ADCW;
PORTB = ~ADC_Wert>>2; // Ausgabe an PORT X mit LED's
itoa( ADC_Wert, s, 10 ); // ADC_Wert wandeln in String auf Basis 10
fuer radix -> Dezimalsystem
uart_puts( s ); // Ausagbe über UART
Der ADC Wert wird zusätzlich über LEDs angezeigt(i.O.).
An Hterm kommt aber nur ein einstelliger Wert an.
Meine das die Benutzung von itoa nicht korrekt ist.
Brauche einen Denkanstoß.
Schönes Wochenende +
Danke.
Wie ist s definiert?
sorry,
s wurde laut Tutorial so übernommen
int main()
{
int a;
char s[7];
1 | |
schon mal so versucht?
Gast
#1193033
Du definierst s als char und char ist immer nur einer. definiere mal: string s;
Sparki wrote: > Du definierst s als char und char ist immer nur einer. Nein, er definiert ein Array of char. > definiere mal: > string s; Einen Datentyp string gibt es in C nicht!
ja habe ich, laut Tutorial ist das die Zusammenfassung itoa( ADC_Wert, s, 10 ); uart_puts( s );
Gast
#1193076
Probiere mal
1 | |
2 | |
3 | |
4 | |
anstatt uart_puts(s);
uart_putc(s[i]); diese Zeile mag der Compiler gar nicht ../PWM_ADC_UART_11.c:151: error: subscripted value is neither array nor pointer
Gast
#1193130
Probiere mal zum Test s="4321";
Gast
#1193190
bevor das Rätselraten weitergeht solltest Du mal den ganzen Code posten
zero wrote: > Probiere mal zum Test > > s="4321"; Und was soll das testen, außer Fehlermeldungen? Nochmal: Es gibt in C keinen Datentyp string und man kann auch keinen String-Literal als ganzes zuweisen. Man kann nur ein Array oder einen Zeiger mit einem String initialisieren.
Es geht:-))) der Fehler "war zwischen den Kopfhöhrern". Ich hatte 'char s[7];! in main definiert aber den Aufruf zum Senden+ itoa in einer Funktion, in der unglücklicherweise 's' nochmal als int definiert war. Dadurch hat der Compiler nicht gemeckert aber es wurden seltsame Dinge ausgegeben. Herzlichen Dank an alle und noch einen schönen Abend
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.