Halloj!
När jag läser in ett 8-bitars värde från PINC.. så lägger jag det i en unsigned char.
Men nu vill jag få det lagrat i en int.. eller float variablel
Hur gör jag på bästa sätt konverteringen, eller undviker konvertering?
Kör med avr-gcc och en at90s8515.. ja jag vet den är gammal osv.. men den duger till mig för tillfället.
Det 8-bitars värdet kommer från en A/D som ger spänningen i min wheatstone brygga. Mäter temperatur mha en PT100 givare.
Tacksam för hjälp här.
Datatyps konvertering.
Frågan är väl *varför* du behöver "konvertera" ?
Och float bör man nog undvika om det inte är *alldeles* nödvändigt
att använda det (vilket det sällan är om man tänker till lite...)
Men, är det inte bara att tilldela en "int" värdet av en "char"
rakt av ? Och kompilatorn kommer att göra vad som behövs ?
Och float bör man nog undvika om det inte är *alldeles* nödvändigt
att använda det (vilket det sällan är om man tänker till lite...)
Men, är det inte bara att tilldela en "int" värdet av en "char"
rakt av ? Och kompilatorn kommer att göra vad som behövs ?
Okej så det är så enkelt då!
Ska prova det senare.. Dumt att man ska göra saker krångligt för sig!
Kod: Markera allt
unsigned char a;
int b;
a=PINC; //In med 8-bitars tal
b=a; //Klart??
DeVille:
Normen brukar vara "x=(typ)variable" där typ är typen du vill konvertera till.
Enligt ditt exempel nedan:
Vissa kompilatorer varnar om man inte använder typkonvertering och detta är ju bra ifall man gör det av misstag. Du kan annars få väldigt konstiga fenomen.
Normen brukar vara "x=(typ)variable" där typ är typen du vill konvertera till.
Enligt ditt exempel nedan:
Kod: Markera allt
unsigned char a;
int b;
a=PINC; //In med 8-bitars tal
b=(int)a; //Konvertera från char till int.