Go Down

Topic: Variabele naar HEX (Read 206 times) previous topic - next topic

JamesBoelens

Hallo,
als ik deze lijn gebruik:

Code: [Select]
tft.fillRect(leftColPositionX, verticalAlign, BOXSIZE, BOXSIZE, 0x001F);

dan wordt de box BLAUW

Wanneer ik aan de variabele boxkleur de waarde 0x001F geef, en die vervolgens gebruik, dan kleurt de box niet zoals ik het wil.

Code: [Select]
tft.fillRect(midColPositionX, verticalAlign, BOXSIZE, BOXSIZE, boxkleur);

Twee vragen dus:
welke variabele type moet ik declaren om een HEX waarde te bevatten?
en
doe ik het helemaal verkeerd en zoek ik op de verkeerde plaats?
alvast bedankt,
James

PieterP

Een HEX waarde bestaat niet. Alle waarden in een computer zijn binair. Hexadecimaal is slechts een voorstelling die gebruikt wordt wanneer mensen een waarde moeten lezen.

De kleuren van de meeste Arduino schermpjes zijn 16-bit (5 voor rood, 6 voor groen, en 5 voor blauw). Het correcte type voor een kleur is dus uint16_t.
Daar had je ook zelf kunnen achter komen door te kijken naar de declaratie van fillRect:
https://github.com/adafruit/Adafruit-GFX-Library/blob/b920674807573950873e4dc2fef69e855e63e5ad/Adafruit_GFX.h#L46

Als dat niet lukt is er iets anders mis, en moet je een werkend, volledig stukje code posten dat die fout demonstreert, zonder concrete code kunnen we je niet helpen.

Pieter

Go Up