Fonctions » Historique » Révision 2
Révision 1 (Patrice Nadeau, 2024-01-27 15:12) → Révision 2/4 (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)