Projet

Général

Profil

Fonctions » Historique » Version 4

Patrice Nadeau, 2025-03-23 11:49

1 1 Patrice Nadeau
# Fonctions
2
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.
3
4
## Règles
5
Le nom DOIT être dans le format suivant : Item_Action_Attribut
6 4 Patrice Nadeau
1. *Item* signifie
7
    * Le nom d'un objet ou de la librairie
8
1. *Action* signifie :
9 1 Patrice Nadeau
    * set, get, clear : Règle, obtient ou vide un registre
10
    * read, write : Lis ou écris dans un fichier
11
    * init : Fonction d’initialisation
12
    * is : Vérifie un état
13
    * setup : Fonction de configuration des ports (p. ex. :AVR)
14
1. Le modificateur static doit être utilisé dans la déclaration d’une fonction avec une vue locale
15
1. Contient les commentaires Doxygen supplémentaires suivants :
16
17
    > Si nécessaire, sinon ne pas inclure le champ
18
    * `param[in,out]` : Nom du paramètre et description
19
    * @arg : Valeur prédéfinie d’un paramètre (#, * *)
20
    * @return : Description de la valeur retournée
21
    * `@retval` : Si une valeur de retour est prédéfinie, une ligne pour chaque valeur
22
    * `@pre` : Chaque précondition, sur une ligne séparée, sinon le terme Sans objet
23
    * `@post` : Chaque postcondition, sur une ligne séparée, sinon le terme Sans objet
24
    * `@sa` : Si une référence à un autre objet doit être faite (#), sinon le terme Sans objet
25 3 Patrice Nadeau
    * Un paragraphe **Exemple** contenant un exemple de code, si nécessaire
26 1 Patrice Nadeau
1. Ne contient qu’un seul `return`
27
28
## Exemple
29
```c
30
/**
31
* @brief Vérifie si une horloge est initialisée
32
* @param[in] nb Le numéro du timer parmi
33
* @arg #TIMER_1
34
* @arg #TIMER_2
35
* @return
36
* @retval true Horloge *nb* est initialisée
37
* @retval false Horloge *nb* n'est PAS initialisée
38
* @pre init_timer
39
* @post Sans objet
40 2 Patrice Nadeau
* @par Exemple
41
* @code
42
* ...
43
* @endcode
44 1 Patrice Nadeau
**/
45
static bool is_timer_set(uint8_t nb);
46
```
47
48
## Justification
49
• [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)
50
• Correspondance avec la fiche technique (datasheet)