Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

XC8 et fonction sizeof problemo
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#1 Message par paulfjujo » lun. 30 déc. 2024 10:50

bonjour

Packaged project in C:\MPLABX_Projects\Test_Lect_Wav_en_Flash_18F27K42_2024.X
Test_Lect_Wav_en_Flash_18F27K42_2024.zip


bedit problem
avec fichier son wav
//WAV tout nu tou bronze 106Ko
const uint8_t SonWav[64000]= // 4000 lignes de 16 datas
// 2em partie
const uint8_t SonWav1[42304]= // 2644 lignes de 16 datas
et
uint8_t CRam1[64];
uint32_t L0,L1,L2;


const uint8_t SonWav[64000]= ... // 4000 lignes de 16 datas
et la suite
// 2em partie
const uint8_t SonWav1[42304]= ..... // 2644 lignes de 16 datas
taille de L2=0 ????
si impression sur la meme ligne !!

mais OK en 2 lignes séparées

Code : Tout sélectionner


    L1
=sizeof(SonWav);
    L2=sizeof(SonWav1);
    sprintf(CRam1,"SonWav size L1=%u , SonWav1 L2=%u \r\n",L1,L2);
    Print(CRam1);
    CRLF1();
      
   L1
=sizeof(SonWav);
   sprintf(CRam1,"SonWav L1=%u   ",L1);  //  
   Print(CRam1);
   L2=sizeof(SonWav1);    
   sprintf
(CRam1," SonWav1 L2=%u \r\n",L2);  //  
   Print(CRam1);


(15:20:45.027) Test_Lect_Wav_en_Flash_18F27K42_2024
(15:20:45.070) SonWav_tou_nu_tou_bronze_datas_en_2_tables.txt 106k
(15:20:45.070) SonWav size L1=64000 , SonWav1 L2=0
(15:20:45.070)
(15:20:45.070) SonWav L1=64000 SonWav1 L2=42304
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

XC8 et fonction sizeof problemo
satinas
Expert
Expert
Messages : 1484
Enregistré en : novembre 2015

#2 Message par satinas » lun. 30 déc. 2024 13:14

Bonjour Paul,
Chez moi il l'affiche correctement dès le premier Print. Faut pas trop abuser du Dom Pérignon :-)
En déclarant CRam1 en char* il y aurait beaucoup moins de warnings.
Il y a 3999 et 2641 lignes dans le fichier data, mais cela n'est pas gênant.

Rectificatif, j'ai le même bug, pourtant au début il me l'affichait correctement, étrange. Là le bug est permanent, même avec le simulateur. Pourtant je suis sûr que c'était bon, l'affichage était ok sur le terminal PC. Mais comme je n'avais pas activé le log sur disque, on le saura jamais.

Bon, pour terminer, toujours la même chose, c'est sprintf qu'il faut correctement utiliser. avec un %u elle attend un int, avec %lu elle attend un long ou un (u)int32_t, et l'affichera converti en unsigned. Le premier %u marche quand même, pas le second, il doit y avoir une explication. Quoique de toute façon sprintf ne garantit rien lorsqu'on ne l'utilise pas correctement.
En tout cas tout à l'heure j'ai dû faire un essai en %lu d'entrée, donc j'y ai pensé tout de suite, et ensuite ma mémoire l'a zappé, elle est vraiment dans les choux hiboux cailloux.

Ce qui marchera :
sprintf(CRam1,"SonWav size L1=%lu , SonWav1 L2=%lu \r\n", L1, L2);
sprintf(CRam1,"SonWav size L1=%u , SonWav1 L2=%u \r\n", (int)L1, (int)L2);

XC8 et fonction sizeof problemo
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » mar. 31 déc. 2024 16:25

Merci Satinas,

De plus, j'avais déja rencontré ce probleme avec ta même réponse dans un autres post ..perdu dans Fantaspic

:sifflotte: Neurones en partance ... !
j'espere qu'il m'en restera en 2025

:-D j'ai mis ce contenu .. surtout pour moi - meme

Formats_variables_dans Print_sprintf_XC8.txt
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 8 invités