Bonjours à tous !
Je reçoi des informations d'un lien RS232 en Ascii que je voudrais convertire en Hexa, j'ai réaliser un bout de code mais il n'à pas l'air de fonctionner.
(j'utilise un microcontroleur ATMEGA2560 au plus bas niveau donc je ne peux pas utiliser toute les commande du style printf, sscanf, strcmp, stroul...) les pour afficher j'utilise putchar...
voici mon code :
Code :
- unsigned char asciitohexa(unsigned char C1, unsigned char C2)
- {
- unsigned char ret;
- if((C1 >= '0') && (C1 <= '9')) /*Si caractère 1 est compris entre 0 et 1 */
- ret = (C1 - 0x30) << 4; /* << 4 equivalent à multiplication par 16 */
- if((C1 >= 'A') && (C1 <= 'F')) /*Si caractère 1 est compris entre A et F */
- ret = (C1 - 0x41 + 10) << 4;
- if((C2 >= '0') && (C1 <= '9')) /*Si caractère 2 est compris entre 0 et 1 */
- ret+= C2 - 0x30;
- if((C2 >= 'A') && (C1 <= 'F')) /*Si caractère 2 est compris entre A et F */
- ret+= C2 - 0x41 + 10;
- return ret;
- }
|
trouver vous une érreur ?! ou quelque chose de louche dans mon code?