Projet

Général

Profil

Fonctions » Historique » Version 2

Patrice Nadeau, 2024-01-27 15:25

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