Forum: Mikrocontroller und Digitale Elektronik C18: type mismatch in assignment Error


von Aggronym (Gast)


Lesenswert?

Hallo,

ich habe hier einen Fehler im Programm, anscheinend passen die 
Datentypen der Variablen nicht zusammen, hab schon wegen y/8 einen float 
bzw. wegen int einen double Datentyp für temp versucht, geht aber nicht
1
void glcd_ReadData(unsigned int x, unsigned int y)
2
....
3
unsigned int temp;
4
temp = glcd_ReadData(x, y/8);

von Karl H. (kbuchegg)


Lesenswert?

Aggronym schrieb:


> void glcd_ReadData(unsigned int x, unsigned int y)

Was sagt uns das void an dieser Stelle?

Das die Funktion keinen Returnwert liefern wird.

> ....
> unsigned int temp;
> temp = glcd_ReadData(x, y/8);

Wie kannst du einen nicht vorhandenen Returnwert einer Variablen 
zuweisen?


>  hab schon wegen y/8 einen float bzw. wegen int einen double
> Datentyp für temp versucht

Autsch.
Das eine hat mit dem anderen genau gar nichts zu tun.
Welche Werte in eine Funktion reingehen ist eine Sache. Welcher Wert 
(und welchen Datentyp der hat) aus einer Funktion rauskommt ist eine 
ganz andere Sache.

(Im C-Buch noch mal das Grundlagenkapitel über Funktionen studieren. 
Solche Sachen müssen 100% sitzen. Da gibt es kein Pardon)

von Aggronym (Gast)


Lesenswert?

Tschuldigung, mein Fehler!

Im Code gehören die Zeilen nicht zusammen, also ich versuch das nochmal 
besser zu schreiben:
1
void glcd_ReadData(unsigned int x, unsigned int y){
2
.....
3
}
4
5
void glcd_pixel(unsigned int x, unsigned int y, unsigned int colour) {
6
unsigned int temp;
7
temp = glcd_ReadData(x, y/8);
8
....
9
}

Tut mir leid Karl, das geht auf meine Kappe.

Gruß
Aggro

von Aggronym (Gast)


Lesenswert?

Welches Buch würdest du mir dafür empfehlen?

von Karl H. (kbuchegg)


Lesenswert?

Aggronym schrieb:
> Tschuldigung, mein Fehler!
>
> Im Code gehören die Zeilen nicht zusammen, also ich versuch das nochmal
> besser zu schreiben:

Ist doch völlig wurscht.
glcd_ReadData ist eine Funktion, die keinen Returnwert liefert. Das ist 
das, was das void vor dem Funktionsnamen in der Deklaration aussagt.

Einen nicht vorhandenen Returnwert kannst du keiner Variablen zuweisen.
Wo nichts ist, kann man auch nicht damit arbeiten.

von Karl H. (kbuchegg)


Lesenswert?

Aggronym schrieb:
> Welches Buch würdest du mir dafür empfehlen?

Die Standard-Bibel

Kernighan & Ritchie
Programmieren in C

Und zwar vom Anfang an durcharbeiten. Ich orte da schwere Defizite in 
deinem Wissen.

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
Noch kein Account? Hier anmelden.