Deserialisation Algorigramme
Deserialisation
1 - ETUDE DU PROGRAMME MPLAB : "Deserialiseur PIC V1-4"
On remarque que dans le fichier "Main.c" on ne trouve que les initialisations du PIC. Le microcontrôleur attend une interruption qui représente la détection d'un front montant ou descendant du signal PPM. Ce signal est reçu sur la borne RB5 du microcontrôleur. 1.1 - Fichier : "DecodePpm.c"
1.1.1 - Fonction : DecodePpm()
DecodePpm
Calcul de la durée de synchro. DureeDetectee < DureeSynchro ?
oui
Non
Compte Nbre de front recu Front impair ?
Oui
TesteImpulsion300us
Non
TesteDureeVoieAccessoire
Non
DureeDetectee = DureeDetectee + DureeImpulsion
NumeroVoisServo = NumeroFrontDetecte / 2
NumeroVoieServo <= NombreServo ?
Oui
TesteDureeVoieServo
Fin
Lycée Antonin ARTAUD
Bac 2008 STI Electronique
1/1
VOITURE RADIOCOMMANDEE
Deserialisation
1.1.2 - Fonction : TesteImpulsion300us()
TesteImpulsion300us
DureeImpulsion300Mini < DureeDetectee < DureeImpulsion300Maxi
non
Oui
DureeImpulsion = DureeDetectee
Allume Led Rouge
Eteint Led Verte
Erreur détectee
Eteint Led Rouge
Allume Led Verte
Pas d'erreur
DureeVoieModeErreur(0)
Fin
1.1.3 - Fonction : TesteDureeVoieServo()
TesteDureeVoieServo
DureeVoieMini < DureeDetectee < DureeVoieMaxi
non
Oui
DureeVoieServo(NumeroVoieServo) = DureeDetectee
Allume Led Rouge
Eteint Led Verte
Erreur détectee
Eteint Led Rouge
Allume Led Verte
Pas d'erreur
DureeVoieModeErreur(NumeroVoieServo)
Fin
Lycée Antonin ARTAUD
Bac 2008 STI Electronique
2/2
VOITURE RADIOCOMMANDEE
Deserialisation
1.1.4 - Fonction : TesteDureeVoieAccessoire()
TesteDureeVoieAccessoire
DureeVoieMini < DureeDetectee < DureeVoieMaxi
non
Oui
DureeVoieServo(NumeroVoieServo) = DureeDetectee
DureeVoieAccessoirei < DureeDetectee < DureeVoieMaxi
Non
EtatAccessoire(NumeroVoieServo) = 0
Oui
EtatAccessoire(NumeroVoieServo) = 1
Allume Led Rouge
Eteint Led Verte
Erreur détectee
ChangeEtatAccessoire(NumeroVoieServo)