Datatyps konvertering.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
DeVille
Inlägg: 2361
Blev medlem: 29 mars 2004, 15:04:22
Ort: Dalsländska skogen.
Kontakt:

Datatyps konvertering.

Inlägg av DeVille »

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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

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 ?
Användarvisningsbild
DeVille
Inlägg: 2361
Blev medlem: 29 mars 2004, 15:04:22
Ort: Dalsländska skogen.
Kontakt:

Inlägg av DeVille »

Okej så det är så enkelt då!

Kod: Markera allt

unsigned char a;
int b;

a=PINC;         //In med 8-bitars tal
b=a;            //Klart??
Ska prova det senare.. Dumt att man ska göra saker krångligt för sig!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

När du ändå provar, prova även med "b = PINC;", om du
inte behöver "a" till annat, vill säga... :-)
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

DeVille:

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.
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.
Användarvisningsbild
DeVille
Inlägg: 2361
Blev medlem: 29 mars 2004, 15:04:22
Ort: Dalsländska skogen.
Kontakt:

Inlägg av DeVille »

Tackar för hjälpen..

b=PINC;

funkade finfint..

Anledningen till att jag använt unsigned char var pga en nödlösning som inte behövs längre..

/DeVille
Skriv svar