XC8 Quelltext Frage

OP #4939972
Lesenswert?

Hallo Zusammen,

unter dem C18 läuft folgender Quelltext problemlos.
1
        while (Busy1USART());
2
        sprintf(chr_Temp, "Adresse: ");
3
        puts1USART(chr_Temp);
4
        
5
       while (!DataRdy1USART());
6
       unc_RS232 = Read1USART();
7
       
8
       putc1USART(unc_RS232);
9
       sprintf(chr_Temp, "\n\r");
10
       puts1USART(chr_Temp);
11
       
12
       // Möglichkeit Nr. 1 -> über Cast (Typenkonvertierung) Befehl
13
       int_Adresse = (int)unc_RS232 - 0x30;

Der XC8 Comiler hat mit dieser Zeile ein Problem.

//Wandlung char to int
int_Adresse = (int)unc_RS232 - 0x30;

Wo ist mein Denkfehler? Der Comiler bringt keinen Fehler. Im Debugger 
kommen immer wieder ganz andere Werte. Weiß jemand warum?

Viele Grüße
Ingo
Gast #4940060
Lesenswert?

Liegt das Problem in den fehlenden Teilen? Überlappen die 
Speicherbereiche? Speicher für die \0 am Stringende? Liegt der Fehler 
ganz woanders - nicht initialisierte Pointer in einer ISR? Wie sollen 
wir das erraten?

Bau uns doch ein minimales main(). 20 Zeilen, kompilierbar.

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