Forums
Forums
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 
Rapport de message :*
 

Re: Structures, unions... ?

Titre du sujet : Re: Structures, unions... ?
par dinastar sur 13/05/2020 00:13:03

Bonsoir,

J'arrive à récupérer l'heure UTC par NTP et désormais, ma carte est dans les temps

Mais j'ai bien galéré depuis quelques jours. Autant la conversion des secondes en heure ne m'a pas trop embêté, autant j'ai manipulé ma structure dans tous les sens à tel point que j'en ai fait un cauchemard !

En effet, je me suis obstiné à déclarer ma structure dans 2 fonctions différentes, Send_NTP() et Recv_NTP(), avec juste un pointeur entre les 2. Tout ça pour économiser 48 octets dont seulement 4 contiennent les secondes si précieuses ...
A cause de petits soucis de mes buffer Rx et Tx partagés avec d'autre protocoles, je voulais créer la structure dans Send_NTP(), balancer mes données au serveur à partir de l'adresse pointeur octet par octet, récupérer le packet à jour du NTP en recréant la même structure dans Recv_NTP(), toujours à partir du pointeur.

Seulement voilà, et même si au fond je le sais, cette méthode de construire/détruire au sein d'une fonction, et même si le pointeur pointe toujours au même endroit, les données dans ma structure au moment de l'envoie étaient corrompues par le reste du programme ...

Bref je déclare donc ma structure en tant que variable globale. J'ai voulu tenter de mettre ces 2 fonctions dans une principale, afin de déclarer ma structure dans celle-ci, mais j'avais plus la foi.

Ma nouvelle question, est-il possible de déclarer dans une fonction, un tableau[48] avec un pointeur autre, et dans son collimateur la case tableau[0] ??

Ceci par exemple ne fonctionne pas puisque le tableau est fixe avec une autre adresse pour la case 0 :
extern U8 *p;
U8 tableau[48]

*
tableau = &p;


En fait ce serait de pouvoir déclarer un tableau provisoire à partir de l'adresse d'un pointeur existant avant ?

Bon désolé pour le pavé

Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Forums