Open PBYetml opened 6 months ago
L'évaluation des fichiers source et headerfile (GEST_PWM .c et .h) est terminée
Le start des timers devraient se faire a la fin de cette fonction.
DRV_OCx est le driver pour les OCs et DRV_TMRx est le driver pour les timers.
Un uint32_t va de 0 à (2^16) -1.
Un int32_t va -2^31 à (2^31) -1
"i" est l'indexe pour le nombre de valeur prise pour la moyenne glissante, et "n" est l'index pour la valeur moyenne de cette moyenne glissante.
valeur_variant_ADC1 est la valeur que nous allons donner à la structure pour le moteur DC, et valeur_variant_ADC2 est la valeur que nous allons donner à la structure pour le servomoteur. Le résultat obtenu correspond aux cahier des charges.
Cela est lié a la librairie "app.h". Nous aurions du include cette librairie dans le fichier "GestPWM.c".
Elles ont le même type (APP_DATA), mais ils n'ont aucun lien.
Ce test sert à garantir que nous prenons 10 valeurs dans notre moyenne glissante.
On aurait du mettre des define.
Car l'ADC va de de 0 à 1023.
Dans notre cas, cela n'a aucun impact. Cependant, selon la valeur du define, il serait possible que cela crée un overflow sur la valeur d'une variable en 16 bits. Cela crée également une perte de précision.
D'abord la multiplication, puis la division et l'addition pour la fin. Ce pour quoi nous avons mis les parenthèse, afin de garantir ce résultat.
1) Changement de plage de 0 à 1023 vers 0 à 198.0 (Vitesse moteur). Le "+0.5" fait l'arrondie de la valeur. 2) Permet que la valeur de la vitesse soit de -99 à +99. 3) Changement de plage de 0 à 1023 vers 0 à 180.0 (angle servomoteur). Le "+0.5" fait l'arrondie de la valeur. 4) Permet que la valeur de l'angle soit de -90 à +90.
Oui on pourrait mettre le résultat du calcul directement dans la structure. On a donc supprimé les variables que nous avons modifiées auparavant (valeur_variant_ADC1 et valeur_variant_ADC2).
Ces fonctions sont liée à la librairie "Mc32DriverLcd.h". Nous aurions dû inclure la librairie dans le fichier GestPWM.c.
Pour aligner les valeurs de l'angle et de la vitesse absolue. Cette valeur a été choisie purement arbitrairement. Nous aurions pu mettre la valeur de 15 ou 16.
Le nom du paramètre pourrait être afficher qu'une seul fois. Les valeurs doivent être afficher a chaque fois.
Permet de garder la valeur de la variable au prochain appel de la fonction.
Ces fonctions sont liées à la librairie suivante : plib_ports.h. Il faut mettre cette include dans le GestPWM.c.
Ces fonctions sont liées à la librairie suivante : plib_oc.h. Il faut mettre cette include dans le GestPWM.c.
Il faut le mettre à 1 pour que le moteur ne passe pas en standby.
Par des define. Voir corrections dans le fichier.
PulseWidthOC2 va de 0 à 1999. PulseWidthOC3 va de 2999 à 11999.
Ces fonctions sont liée à la librairie "bsp.h". Nous aurions dû inclure la librairie dans le fichier GestPWM.c.
Par des define. Voir corrections dans le fichier.
Pour l'utiliser dans l'interruption comme paramètre d'entrée
Dans le cahier des charges, il n'est pas stipulé que nous ne pouvons pas changer le nom de cette structure et son nom n'y figure pas dans le cahier des charges. Cependant, il est vrai que nous n'aurions pas du changer le nom de la structure. En espérant que nous n'avons pas pris un "C" pour ça ;).
A rien, donc elles doivent être déplacé dans le fichier GestPWM.C.
Merci pour ces issues, j'ai bien retenu qu'il faut faire attention au hardcodage et au include. (Ps: nous saqué pas au TP2 de MINF. Cordialement, le codeur à l'arrache et le codeur nul.)
pour le 30ème point, j'essaierai mais je promets rien !!! de la part de l'évaluateur fou et tout petit peu psychorigide ;)
pour information les point 11 au 15 non pas été totalement corriger dans votre listing : on y voit toujours des constantes => merci d'aller jusqu'au bout de vos corrections / améliorations !!!
FCT _INIT..
DRV_OCx
etDRV_TMRx
https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L51C1-L56C21FCT _GET..
uint32_t
=> quelle est la plage de valeur ?int32_t
=> quelle est la plage de valeur ?i
oun
? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L86C1-L87C15valeur_variant_ADC1
ouvaleur_variant_ADC2
? à quoi va vous servir ces variables ? correspondance aux résultats obtenus ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L114 https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L116APP_DATA
=> à quelle librairie est lié ce type ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L92appData
=> est-ce qu'il y a un lien avec la variable du fichier sourceapp.c
? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/app.c#L79FCT _DISP
lcd_gotoxy
,printf_lcd
,printf_lcd
14
=> pourquoi cette valeur ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L163 https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L169FCT _EXCPWM
static
=> à quoi sert ce mot clé ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L207C1-L208C35PulseWidthOC2
etPulseWidthOC3
https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L228 https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L232FCT _EXCPWM_SOFT
BSP_LEDOff
etBSP_LEDOff
=> à quelle librairie sont liées ces appels de fonctions ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L266 https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.c#L271AUTRES
pData
, déclaré dans le fichier headerfilegestPWM.h
extern S_pwmSettings PWMData;
https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.h#L33gestPWM.h
=> à quoi vous servent les lib :"app.h"
,<math.h>
et"peripheral/oc/plib_oc.h
" ? https://github.com/CyrilFeliciano/MINF_TP1/blob/a66637f99f8c948ba6626841b47fb1093a76d55e/TP1_PWM%202/firmware/src/gestPWM.h#L17C1-L19C35