Projet

Général

Profil

Fonctions » Historique » Révision 2

Révision 1 (Patrice Nadeau, 2024-01-27 15:12) → Révision 2/3 (Patrice Nadeau, 2024-01-27 15:25)

# Fonctions 
 Les fonctions définies dans une librairie de bas niveau pour du matériel (« driver ») devraient utiliser le nom définis dans la fiche technique. 

 ## Règles 
 Le nom DOIT être dans le format suivant : Item_Action_Attribut 
 1. Action signifie : 
     * set, get, clear : Règle, obtient ou vide un registre 
     * read, write : Lis ou écris dans un fichier 
     * init : Fonction d’initialisation 
     * is : Vérifie un état 
     * setup : Fonction de configuration des ports (p. ex. :AVR) 
 1. Le modificateur static doit être utilisé dans la déclaration d’une fonction avec une vue locale 
 1. Contient les commentaires Doxygen supplémentaires suivants : 

     > Si nécessaire, sinon ne pas inclure le champ 
     * `param[in,out]` : Nom du paramètre et description 
     * @arg : Valeur prédéfinie d’un paramètre (#, * *) 
     * @return : Description de la valeur retournée 
     * `@retval` : Si une valeur de retour est prédéfinie, une ligne pour chaque valeur 
     * `@pre` : Chaque précondition, sur une ligne séparée, sinon le terme Sans objet 
     * `@post` : Chaque postcondition, sur une ligne séparée, sinon le terme Sans objet 
     * `@sa` : Si une référence à un autre objet doit être faite (#), sinon le terme Sans objet 
     * Un paragraphe **Exemple* contenant un exemple de code, si nécessaire 
 1. Ne contient qu’un seul `return` 

 

 ## Exemple 
 ```c 
 /** 
 * @brief Vérifie si une horloge est initialisée 
 * @param[in] nb Le numéro du timer parmi 
 * @arg #TIMER_1 
 * @arg #TIMER_2 
 * @return 
 * @retval true Horloge *nb* est initialisée 
 * @retval false Horloge *nb* n'est PAS initialisée 
 * @pre init_timer 
 * @post Sans objet 
 * @par Exemple 
 * @code 
 * ... 
 * @endcode 
 **/ 
 static bool is_timer_set(uint8_t nb); 
 ``` 

 

 ## Justification 
 • [TB3262 - AVR1000b : Getting Started with Writing C-Code for AVR® MCUs](https://ww1.microchip.com/downloads/en/Appnotes/AVR1000b-Getting-Started-Writing-C-Code-for-AVR-DS90003262B.pdf) 
 • Correspondance avec la fiche technique (datasheet)