[BCB] hex, array en compoorten

Pagina: 1
Acties:

  • bart0l0meus
  • Registratie: Mei 2006
  • Laatst online: 04-11-2022
Hallo, ik zit met een probleem!


Ik lees via de compoort waarden uit van een ADC.
Deze structuur van de waarde is #00 tot #FF.
Het # staat voor; begin met lezen.

code:
1
2
3
4
5
char buffer[2];
        if((com->getChar()) == "#")
          {
          com->getArray(buffer, 2);
          }

Nu is "#" een *char en com->getChar() een char. Hoe zet ik deze in vredesnaam om? Ik heb het geweten maar kom er bij god niet meer op!
Verder, is buffer een array van 2 plaatsen groot, waar dus 0-F in komt te staan. Nu vraag ik mij af, hoe zet ik dit array om in een decimale waarden van 0 tot 255?

“If Your Only Tool Is a Hammer Then Every Problem Looks Like a Nail” (Abraham Maslow)


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 18-11 19:36
Probeer eens:
C++:
1
2
3
4
char buffer[2];
if (com->getChar() == '#') {
  com->getArray(buffer, 2);
}


Omzetten naar wat, of: hoe wil je het representeren?
C++:
1
printf("waarde: %d\n", buffer[0]);

[ Voor 35% gewijzigd door zeroxcool op 15-05-2008 23:26 ]

zeroxcool.net - curity.eu


  • bart0l0meus
  • Registratie: Mei 2006
  • Laatst online: 04-11-2022
de variabele buffer die 2 characters bevat moet omgezet worden naar een int. dus
{F,F} = 255 en {0,F} = 15.

“If Your Only Tool Is a Hammer Then Every Problem Looks Like a Nail” (Abraham Maslow)


  • schoene
  • Registratie: Maart 2003
  • Laatst online: 21:09
je moet gewoon enkele quotes gebruiken: (dat moet je toch weten?)

code:
1
if((com->getChar()) == '#')

  • bart0l0meus
  • Registratie: Mei 2006
  • Laatst online: 04-11-2022
Ik kom op het moment nog niet uit de conversie van Hex naar Int.
Het probleem is dat het eigenlijk geen Hex is, maar gewoon een character, dus er staat niet 0x voor. Op het moment doe ik het met de ASCII tabel, maar omdat het zeer snel moet gebeuren is dit op het moment de bottleneck in de loop waardoor het te langzaam gaat. Is hier niet iets slimmer op te bedenken?

“If Your Only Tool Is a Hammer Then Every Problem Looks Like a Nail” (Abraham Maslow)


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-11 18:33
Voor '0'' -'9' trek je '0' van je karakter af, voor A-F trek je 'A' - 10 van je karakter af.
Verder stelt elk character een nibble voor; dat komt overeen met een factor 2^4.

Als de code die je hiervoor nodig hebt een bottleneck is in je applicatie dan erm ... is er iets goed mis.

[ Voor 23% gewijzigd door farlane op 22-05-2008 01:28 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1