Conseils pour l'écriture d'un soft - Perfectionnement > Méthodologie de programmation - Articles et téléchargements
Conseils pour l'écriture d'un soft - Perfectionnement > Méthodologie de programmation - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 

Conseils pour l'écriture d'un soft

Publié par david le 02/10/2005 (2444 lectures)


Pour commencer, il est très important de sur-commenter son programme, pour plusieurs raisons :

- dans le cas ou on cherche une erreur pendant le debuggage,
- dans le cas ou on veux faire évoluer son soft et ne pas y passer 2 fois plus de temps que la réecriture du soft lui même,
- dans le cas ou l'on partage son soft.

Les commentaires en ASM doivent être précédés des signes suivant:";" ou "*".
Ces caractères dépendent du logiciel utilisé. Mais ne vous inquiétez pas sur le type de signe, l'assembleur ou le compilateur vous signalera une erreur s'il ne connaît pas ce type de caractères ou si vous l'avez tout simplement oublié.

En premier lieu, il faut marquer le plus d'informations possible en en-tête, notemment les entrées/sorties utilisées et le type de micro utilise.
En voici un exemple :

********************************************
* VOLET AUTOMATIQUE *
********************************************
* version
*
*
* Utilisation d'un 68HC908QT2 ou QT4, DIL ou CMS
* Pas de quartz externe, valeur par defaut 12,8Mhz sot un bus de 3,2Mhz
* Pas d'interruption
* Chien de garde actif
*
* Config:
* PA0 (entree) capteur de lumiere: 0=lumiere 1=pas de lumiere
* PA1 (entree) bp monte
* PA2 (entree) bp descente
* PA3 (entree) mode automatique par capteur de lumiere, les bp sont inactifs 0=AUTO 1=MANUEL
* PA4 (sortie) relais de monte du volet
* PA5 (sortie) relais de descente du volet

Ensuite, il faut initialiser tous les registres et variables qui doivent être utilisés dans ce programme :

org RomStart
Start:
rsp ; reset du stack pointer, activation par defaut du COP
clra ; mise à 0 de A
clrx ; mise à 0 de X
mov #%00011000,DDRA ; PA4 en sortie
mov #%00000110,PTAPUE ; résistance de tirage sur PA1 et PA2 sur les entrees
clr PORTA ; met le PORT A à 0

* System clock initialization */
* CONFIG1: COPRS=0,LVISTOP=0,LVIRSTD=0,LVIPWRD=1,LVI5OR3=0,SSREC=0,STOP=0,COPD=1
* CONFIG2: IRQPUD=0,IRQEN=0,??=0,OSCOPT1=0,OSCOPT0=0,??=0,??=0,RSTEN=0

mov #%00010001,CONFIG1
mov #%00000000,CONFIG2
mov #%00000000,OSCSTAT

Il est important de mettre des noms de sous-programmes compréhensibles. Si vous utilisez une temporisation, marquez combien de temps elle dure et la nature de cette tempo. Elle peut être soit une tempo logicielle, soit une tempo par interruption.

En voici un exemple :

jsr TEMa2_100ms ; tempo de 100ms logicielle
jsr TIMER_100ms ; tempo de 100ms par interruption du timer


Le langage anglais est très souvent utilisé par les programmeurs mais celui-ci n'intervient en aucun cas dans la compilation ; utilisez donc vos propres termes court et précis. Eviter au maximum les noms du style ATTENTE_1, ATTENTE_2, ... sauf si elles font parties d'une même partie du sous programme. Ce type de nom devient vite incompréhension à la relecture du soft.

Les programmes peuvent comporter des astuces qui permettent de faire fonctionner correctement son programme. Il n'y a aucun règles mais il faut au moins un commentaire pour 2 lignes de soft, même si cela parait évident à l'écriture du soft.
En voici un court exemple :

Boucle_principale:
sta COPCTL ; mise à 0 du COP (chien de garde)
bclr REL_MONTE,PORTA
bclr REL_DESCENTE,PORTA
brclr AUTO_MANU,PORTA,AUTO ; on verifie le mode ou l'on est
brset AUTO_MANU,PORTA,MANUEL

bra Boucle_principale

MANUEL:
sta COPCTL ; mise à 0 du COP (chien de garde)
brclr BP_MONTE,PORTA,MONTE ; si appuye sur bp monte, on va au s/p monte
brclr BP_DESCENTE,PORTA,DESCENTE ; si appuye sur bp descente, on va au s/p descente
bra MANUEL

AUTO:
sta COPCTL ; mise à 0 du COP (chien de garde)
brclr CAPTEUR_LUM,PORTA,DESCENTE_TOTALE ; si lumiere soleil, on va au s/p monte car on veut de l'ombre
brset CAPTEUR_LUM,PORTA,MONTE_TOTALE ; si pas lumiere soleil, on va au s/p descente pour avoir lumiere du jour
bra AUTO


N'oubliez surtout pas de prendre en compte toutes les possibilités de votre programme, notemement sur les branchements inconditionnels, renvoyez les vers une instruction JMP ou BRA pour un second test éventuel.

En règle générale, on écrit le soft principal en début de page et les sous programmes en fin de page. Mais ceci dépend de votre soft. La plupart du temps, les sous programmes très utilisés sont placés à la fin du soft (avant les vecteurs de reset).

Pensez aussi à scinder votre fichier en plusieurs fichiers si vous comptez utiliser vos routines dans plusieurs soft différents. Cela permettra de les réutiliser facilement mais aussi d'éviter les "copier coller" souvent erronés. Il suffira dans ce cas d'y faire un appel avec la fonction INCLUDE tout comme le fichier de descriptions du microcontrôleur.


Article précédent Article suivant
Utilisation des modes de gestion d'énergie sur 9S08 Article suivant
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Conseils pour l'écriture d'un soft - Perfectionnement > Méthodologie de programmation - Articles et téléchargements