Bonjour à tous,
j'aimerais déboguer mes programmes, pour microcontrôleurs, de manière séquentielle. Je crée mes fonctions et je mets une ligne d'impression vers le port RS-232 aux endroits qui posent problêmes, un peu comme le déboguage avec printf();.
Je ne peux envoyer que des caractères sur ce port RS-232.
Je voudrais comme résultat cette représentation : "X.X" où X est un numéro allant de 0 à 9.
Mon problème est que je ne peux modifier une chaîne de caractères donc il me faudrait 100 tableaux pour déboguer de 0.0 à 9.9.
Voilà une fonction de principe :
Je pourrais déboguer en répétant ce code à l'infini(0->9, 0->9...), mais je préfère réaliser ce système.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 /*******FONCTION PRINCIPALE*******/ void main(void) { unsigned int number=0; const unsigned char numb[]="0123456789"; port_init(); init_USART(); while(1) { if(BOUTON==0) { /***OPERATION-1***/ Sendchar_UART(numb[number++]);//Valeur à envoyer sur UART tempo(65500); /***OPERATION-2***/ Sendchar_UART(numb[number++]);//Valeur à envoyer sur UART tempo(65500); /***OPERATION-X***/ /*****************/ } } } /***ENVOI D'UN CHAR SUR RS-232***/ void Sendchar_UART(unsigned char data) { TXREG=data;//TXREG écrit sur le RS-232 while(TXSTAbits.TRMT==0);//Si débordement de tampon }
Je vous remercie pour vos suggestions.
Partager