Den nemme løsning vil være at lave et kald til scanf(), hvor du specificerer, at det du tager i mod fra stdin, vil blive omkonverteret til hexadecimaler.
Med udgangspunkt i din skabelon, kan det gøres med få rettelser:
- #define F_CPU 16000000UL
-
- #include <stdio.h>
- #include <avr/io.h>
- #include <util/delay.h>
- #include "usart.h"
-
- int main(void) {
-
- uart_init(); // open the communication to the microcontroller
- io_redirect(); // redirect input and output to the uart
-
- int input = 0;
-
- while(1) {
-
- printf("Input a number\n");
- scanf("%x", &input);
- printf("You wrote %#x\n", input);
- }
-
- return 0;
- }
Hvis du skal gå mere teoretisk til værks, så skal du kigge på bl.a. modulus/divisions operatorerne.
Indlæg senest redigeret d. 17.09.2014 19:15 af Bruger #18836