Notice Notice en Français du BS2-IC.

Transcription

Notice Notice en Français du BS2-IC.
MANUEL
D’UTILISATION
BASIC Stamp II
SOMMAIRE
1 Configuration requise
2 Liste du matériel fourni
3 Connexion au PC
4 Brochage du Stamp II
8 Programmation du Basic Stamp II
• La directive VAR - définition de variables
• La directive CON - définition de constantes
• La directive DATA - définition de données
• Expression utilisées pendant l’exécution
9 Instructions BASIC
5 Utilisation de l’éditeur
• Installation de l’éditeur
• Lancement de l’éditeur
• Options de la ligne de commande
• Entrée et édition des programmes
• Touches de fonctions de l’éditeur
• Chargement des programmes
• Sauvegarde des programmes
• Utilisation du couper - coller
• Utilisation de la recherche et remplacement
6 Résumé du jeu d’instructions
7 Organisation de la mémoire
BRANCH
BUTTON
COUNT
DEBUG
DTMFOUT
END
FOR ... NEXT
FREQOUT
GOSUB
GOTO
HIGH
IF ... THEN
INPUT
LOOKDOWN
LOOKUP
Instructions BASIC (suite)
LOW
NAP
OUTPUT
PAUSE
PULSIN
PULSOUT
PWM
RANDOM
RCTIME
READ
RETURN
REVERSE
SERIN
SEROUT
SHIFTIN
SHIFTOUT
SLEEP
STOP
TOGGLE
WRITE
XOUT
1 - configuration requise
3 - connexion au pc
Pour pouvoir utiliser le kit de développement, il vous faut disposer d’un
compatible PC dont voici la configuration minimum :
Pour programmer le Stamp II vous devez le connecter au PC et exécuter l’éditeur
et le logiciel de téléchargement. Dans la suite de cette notice, on suppose que
vous êtes en possession d’un circuit BS2 et de sa carte support présentée cidessous.
•
•
•
•
Lecteur de disquette 3,5 pouces.
Port série.
128 K de RAM.
MS DOS 2.0 ou supérieur.
Pour alimenter le Stamp, nous vous recommandons d’utiliser une simple pile de
9 volts. Si vous voulez employer une alimentation externe, vous pouvez utiliser
n’importe quelle source délivrant de 5 à 15 volts continus.
Si vous utilisez une source qui délivre 5 volts, reliez-la à la borne + 5 volts ou
VDD du Stamp. Cela alimentera directement le Stamp sans passer par son
propre régulateur.
Si vous utilisez une source qui délivre de 5 à 15 volts, employez l’entrée PWR ou
Vin afin de passer par le régulateur 5 volts du Stamp
Pour relier le Stamp au PC, procédez de la façon suivante :
a) Enfichez le circuit BS2 à 24 pattes dans le support prévu à cet effet sur la carte
de circuit imprimé fournie. Attention ! Le sens correct est tel que les mots
“Parallax BS2-IC” se trouvent du côté du bouton de Reset.
b) Avec votre kit de développement vous avez du recevoir un cordon muni à
chaque extrémité d’une prise DB 9. Connectez l’extrémité femelle de ce cordon
dans la prise d’un port série libre de votre PC.
c) Connectez l’autre extrémité du câble sur le connecteur du circuit imprimé du
Stamp II.
d) Alimentez le Stamp avec l’une des méthodes décrites ci-avant.
Attention : si vous connectez une source de tension supérieure à 5 volts à la
borne + 5 V ou VDD du Stamp, vous pouvez l’endommager irrémédiablement.
Zone prototype
2 - liste du matériel fourni
Si vous avez acheté le kit de développement, vous devez y avoir trouvé les
éléments suivants :
• Câble de programmation du Stamp I (port parallèle DB 25
vers fiche à 3 broches).
• Manuel du Stamp I.
• Notes d’application du Stamp I (contenues dans le manuel).
• Câble de programmation du Stamp II (port série DB 9 vers DB 9).
• Manuel du Stamp II (que vous êtes en train de lire).
• Disquette 3,5 pouces.
Selectronic
Clips pour pile
Connecteur d’ E/S
Poussoir de RESET
Support du BS2
Connecteur RS 232
Connecteur d’ E/S
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
1
4 - Brochage du Stamp
L’éditeur va se lancer après quelques secondes. L’écran est bleu sombre avec
une ligne en haut qui permet d’accéder à l’aide en ligne. Hormis cette ligne, tout
l’écran est disponible pour entrer vos programmes BASIC.
OPTIONS DE LA LIGNE DE COMMANDE
Trois option peuvent être utilisées sur la ligne de commande de lancement de
l’éditeur ce sont :
1) STAMP2 nom de fichier : qui lance l’éditeur et charge le fichier dont le nom est
spécifié.
2) STAMP2 /m : qui lance l’éditeur en mode affichage monochrome ce qui peut
donner une affichage plus lisible, particulièrement sur les ordinateurs portables.
3) STAMP2 /n : qui précise quel port série est utilisé pour la connexion au Stamp
II. n doit être compris entre 1 et 4.
Patte
Nom
Description
Commentaire
_________________________________________________________________
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
TX
RX
ATN
GND
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
+5V**
RES
GND
PWR**
Sortie série
Entrée série
Reset actif haut
Masse série
Entrée/sortie 0
Entrée/sortie 1
Entrée/sortie 2
Entrée/sortie 3
Entrée/sortie 4
Entrée/sortie 5
Entrée/sortie 6
Entrée/sortie 7
Entrée/sortie 8
Entrée/sortie 9
Entrée/sortie 10
Entrée/sortie 11
Entrée/sortie 12
Entrée/sortie 13
Entrée/sortie 14
Entrée/sortie 15
Alim +5 volts
Reset actif bas
Masse système
Entrée régulateur
A relier à la patte 2 de la DB 9 du PC *
A relier à la patte 3 de la DB 9 du PC *
A relier à la patte 4 de la DB 9 du PC *
A relier à la patte 5 de la DB 9 du PC *
Nous avons essayé de rendre cet éditeur aussi intuitif d’emploi que possible :
pour aller vers le haut appuyez sur la touche “flèche haut” du curseur ; pour
mettre en surbrillance un caractère sur la droite, actionnez shift et la touche
“flèche à droite”, et ainsi de suite.
• Chargement et sauvegarde d’un programme.
• Déplacement du curseur d’un caractère, d’un mot, d’une ligne,
d’un écran ou au début ou à la fin d’une ligne.
• Mise en surbrillance d’un caractère, d’un mot, d’une ligne,
d’un écran, depuis le début ou jusqu’à la fin d’une ligne.
• Couper, copier et coller du texte mis en surbrillance.
• Rechercher et/ou remplacer du texte.
Entrée 5 volts ou sortie régulée 5 volts
Mettre au niveau bas pour un Reset
Entrée +5 à +15 volts du régulateur
** : En fonctionnement normal le Stamp II consomme environ 7 mA. Dans divers
modes de repos la consommation peut être réduite jusqu’à 50 µA.
5 - Utilisation de l’éditeur
INSTALLATION DE L’ÉDITEUR
Placez la disquette fournie dans votre lecteur. Sur votre disque dur créez un
D C:\STAMP2
répertoire que vous appellerez STAMP2 (par exemple) en frappant : MD
Copiez tous les fichiers du répertoire STAMP2 de la disquette dans ce répertoire
en frappant : COPY A:\STAMP2\*.*,C:\STAMP2
LANCEMENT DE L’ÉDITEUR
Avec le Stamp II connecté et alimenté, placez-vous dans le répertoire approprié
en frappant : CD STAMP2
Une fois dans ce répertoire, vous pouvez lancer l’éditeur en frappant la
commande suivante : STAMP2
Selectronic
ENTRÉE ET ÉDITION DES PROGRAMMES
La majorité des fonctions de l’éditeur est simple à utiliser. De plus, en une seule
action sur des touches vous pouvez obtenir les fonctions suivantes :
* : Pour une détection automatique du port série utilisé par le Stamp II, il doit
également y avoir une connexion entre DSR (patte 6) et RTS (patte 7) dans la
prise DB 9 utilisée. Cette connexion est faite sur le circuit imprimé support du
Stamp II. Si vous n’utilisez pas ce circuit imprimé, réalisez cette connexion vousmême ou utilisez une option de la ligne de commande du logiciel pour préciser
le port série à utiliser.
2
Normalement, le logiciel détecte automatiquement le port série utilisé grâce à la
connexion entre DSR et RTS de la liaison série. Si cette connexion n’existe pas
vous devez impérativement utiliser cette dernière option pour préciser le port
série utilisé.
TOUCHES DE FONCTIONS DE L’ÉDITEUR
Vous trouverez ci-dessous la liste complète des touches de fonctions de l’éditeur
avec leur effet.
F1
Alt-R
Alt-L
Alt-M
Alt-S
Alt-I
Alt-Q
Entrée (Enter)
Tab
Flèche à gauche
Flèche à droite
Flèche en haut
Flèche en bas
Ctrl-Flèche gauche
Ctrl-Flèche droite
Home
Fin (End)
Page haute
Page basse
Ctrl-Page haute
Ctrl-Page basse
Affiche un écran d’aide
Télécharge le programme et lance l’exécution
Charge le programme depuis le disque
Affiche l’affectation mémoire
Sauvegarde le programme sur disque
Indique la version de l’interpréteur Basic
Quitte l’éditeur et retourne au DOS
Entre l’information et descend d’une ligne
Même fonction qu’entrée
Déplace d’un caractère vers la gauche
Déplace d’un caractère vers la droite
Déplace d’une ligne vers le haut
Déplace d’une ligne vers le bas
Déplace d’un mot vers la gauche
Déplace d’un mot vers la droite
Déplace au début de la ligne
Déplace à la fin de la ligne
Déplace d’un écran vers le haut
Déplace d’un écran vers le bas
Déplace au début du fichier
Déplace à la fin du fichier
Shift-Flèche gauche
Shift-Flèche droite
Shift-Flèche haute
Shift-Flèche basse
Shift-Ctrl-Flèche gauch
Shift-Ctrl-Flèche droite
Shift-Home
Shift-Fin
Shift-Page haute
Shift-Page basse
Mise en surbrillance d’un caractère à gauche
Mise en surbrillance d’un caractère à droite
Mise en surbrillance d’une ligne vers le haut
Mise en surbrillance d’une ligne vers le bas
Mise en surbrillance d’un mot à gauche
Mise en surbrillance d’un mot à droite
Mise en surbrillance jusqu’au début de la ligne
Mise en surbrillance jusqu’à la fin de la ligne
Mise en surbrillance d’un écran vers le haut
Mise en surbrillance d’un écran vers le bas
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
Shift-Ctrl-Page haute
Shift-Ctrl-Page basse
Shift-Insertion
Mise en surbrillance jusqu’au début de la ligne
Mise en surbrillance jusqu’à la fin de la ligne
Mise en surbrillance du mot où est le curseur
ESC
Annule la surbrillance en cours
Retour arrière
Suppression
Shift-Retour arrière
Shift-Suppression
Ctrl-Retour arrière
Efface un caractère à gauche
Efface le caractère sous le curseur
Efface du caractère de gauche au début de la ligne
Efface jusqu’à la fin de la ligne
Efface la ligne
Alt-X
Alt-C
Alt-V
Alt-F
Alt N
Coupe le texte mis en surbrillance
Copie le texte mis en surbrillance
Colle le texte coupé ou copié à l’endroit du curseur
Recherche une chaîne de caractères
Passe à l’apparition suivante de la chaîne
recherche sans remplacement, frappez “Entrée” à la place de la chaîne de
remplacement.
• L’éditeur efface alors la boîte de dialogue et met en surbrillance la première
apparition de la chaîne. Pour la remplacer frappez Alt-V (coller de la fonction
couper- coller). Pour passer à l’apparition suivante frappez Alt-N.
Vous trouverez ci-dessous une liste des instructions du Basic du Stamp II. Celles
repérées par une étoile (*) sont nouvelles ou très nettement améliorées par
rapport au Basic du Stamp I.
6 - Résumé du jeu d’instructions
BRANCHEMENTS
CHARGEMENT DES PROGRAMMES
Pour charger un programme depuis un fichier disque, frappez Alt-L. Un boîte de
dialogue apparaît et vous demande le nom du fichier désiré. Si vous frappez le
nom d’un programme qui existe effectivement il est chargé, dans le cas contraire
un message d’erreur est affiché. Si vous changez d’avis, frappez ESC à la place
du nom demandé.
IF ... THEN
BRANCH
GOTO
GOSUB
RETURN
Comparaison et branchement conditionnel.
Branchement à une adresse spécifiée par un décalage.
Branchement à une adresse.
Appel de sous programme (imbrication maximum 4).
Retour de sous programme.
BOUCLES
FOR .. NEXT Boucle FOR ... NEXT.
SAUVEGARDE DES PROGRAMMES
Pour sauvegarder un programme sur disque, frappez Alt-S. Un boîte de dialogue
s’affiche demandant le nom que vous voulez donner au fichier. Après avoir
donné ce nom l’éditeur sauvegarde votre programme.
INSTRUCTIONS NUMÉRIQUES
LOOKUP
LOOKDOWN
UTILISATION DU COUPER-COLLER
Comme pour la majorité des logiciels actuels, l’éditeur du Stamp supporte les
fonctions de couper-coller. Ceci permet de faire facilement d’importantes
modifications à votre programme ou bien encore de répéter facilement des sous
programmes identiques.
Cette fonction s’applique au texte préalablement mis en surbrillance et utilise un
presse-papier intermédiaire qui est une zone mémoire spéciale de l’éditeur
prévue pour cela. Lors d’un ordre couper ou copier, le texte est copié dans le
presse-papier. Lors d’un ordre coller, il est copié du presse-papier vers
l’emplacement où se trouve le curseur.
Notez bien que couper du texte n’est pas équivalent à l’effacer car si, dans les
deux cas, le texte est bien enlevé d’où il se trouve, l’effacement le détruit
définitivement alors que la fonction couper le met dans le presse-papier.
Voici un exemple simple d’utilisation de ces commandes :
•
Commencez par mettre un texte en surbrillance, disons du curseur à la fin de
la ligne par exemple. Pour cela frappez Shift-Fin. Tout ce qui se trouve du
curseur à la fin de la ligne doit passer en surbrillance.
• Ensuite frappez Alt-X. Le texte doit disparaître.
• Amenez alors le curseur à l’endroit désiré puis frappez Alt-V. Le texte doit
réapparaître, poussant si nécessaire ce qui lui fait suite.
RANDOM
Cherche une donnée spécifiée par un index dans une liste
et la place dans une variable.
Cherche la présence d’une donnée dans une liste et indique
sa position.
Génère un nombre pseudo aléatoire.
ENTRÉES/SORTIES NUMÉRIQUES
INPUT
OUTPUT
REVERSE
LOW
HIGH
TOGGLE
PULSIN
PULSOUT
BUTTON
*SHIFTIN
*SHIFTOUT
*COUNT
*XOUT
Met une patte en entrée.
Met une patte en sortie.
Inverse la fonction d’une patte (sortie - entrée et vice versa).
Met une patte au niveau bas.
Met une patte au niveau haut.
Met une patte en sortie et inverse son niveau.
Mesure la durée d’une impulsion en entrée (résolution 2 µs).
Génère une impulsion en inversant temporairement le
niveau d’une patte (résolution 2 µs).
Anti-rebondissement d’un poussoir, répétition automatique,
branchement à une adresse s’il est en état stable.
Décale des bits en entrée depuis un registre à décalage
parallèle - série.
Décale des bits en sortie vers un registre à décalage
série - parallèle.
Compte le nombre de périodes sur une patte pendant un
temps déterminé (0 à 125 kHz si rapport cyclique de 50 %).
Génère des codes pour le système de télécommande par le
secteur américain X 10.
ENTRÉES/SORTIES SÉRIES
La première étape aurait pu être remplacée par Alt-C au lieu de Alt-X si nous
avions voulu copier le texte sans l’enlever de son emplacement initial.
UTILISATION DE LA RECHERCHE ET REMPLACEMENT
L’éditeur dispose d’une fonction vous permettant de rechercher du texte et de le
remplacer si vous le souhaitez. Cette fonction s’avère très utile si vous décidez,
par exemple, de changer le nom d’une variable. Avec cette commande cela ne
prend que quelques secondes pour agir sur tout votre programme alors que ce
serait très fastidieux dans le cas contraire.
Pour utiliser cette fonction frappez Alt-F. Une boîte de dialogue apparaît et vous
demande la chaîne de caractères à recherche ainsi qu’une chaîne de
remplacement optionnelle. Voici comment procéder :
*SERIN
Reçoit des caractères sur une liaison série avec de très
nombreuses possibilités de paramétrage (voir description
détaillée de cette instruction).
*SEROUT
Emet des caractères sous forme série (idem SERIN).
ENTRÉES/SORTIES ANALOGIQUES
PWM
*RCTIME
•
Frappez la chaîne à rechercher. Si elle contient “Entrée” ou “Tab” vous pouvez
les inclure en frappant “Ctrl-Entrée” ou “Ctrl-Tab”.
• Frappez la chaîne de remplacement si nécessaire. Elle sera placée dans le
presse-papier. Lors de chaque apparition de la chaîne recherchée, il vous sera
alors demandé si vous voulez la remplacer ou pas. Si vous voulez juste faire une
Selectronic
Génère un signal impulsionnel modulé en largeur puis remet
la patte correspondante en entrée. Cette instruction peut être
utilisée pour générer une tension comprise entre 0 et 5 volts
en utilisant un filtre R-C.
Mesure le temps de charge ou décharge d’une cellule R-C.
Peut être utilisée pour mesurer la valeur d’un potentiomètre.
SONS
*FREQOUT
*DTMFOUT
Génère une ou deux sinusoïdes à la fréquence spécifiée,
chacune de 0 à 32 767 Hz.
Génère les signaux de numérotation téléphonique DTMF.
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
3
ACCÈS À L’EEPROM
*DATA
Stocke des données dans l’EEPROM avant d’y télécharger
le programme BASIC.
Lit un octet de l’EEPROM et le met dans une variable.
Ecrit un octet dans l’EEPROM.
READ
WRITE
INSTRUCTIONS TEMPORELLES
PAUSE
Suspend l’exécution du programme de 0 à 65536 ms.
CONTRÔLE DU PROGRAMME
NAP
Mise en mode sommeil pendant un court instant.
La consommation est réduite.
Mise en mode sommeil de 1 à 65535 secondes.
La consommation est réduite à 50 µA environ.
Mise en mode sommeil jusqu’à détection d’une connexion
avec le PC. La consommation est réduite à 50 µA.
SLEEP
END
MISE AU POINT DES PROGRAMMES
DEBUG
Le mot $0 est accessible au moyen des noms symboliques suivants :
INS
INL
INH
INA
INB
INC
IND
IN0
à
IN15
Le BS2 dispose de 2 K de mémoire EEPROM utilisée pour stocker le programme
Basic et les données. La mémoire non utilisée directement par le programme
peut être utilisée en phase d’exécution du programme. Cette mémoire est
uniquement affectée par les opérations de téléchargement du programme ou par
l’exécution de ce dernier.
OCTET $000
DÉBUT DES DONNÉES
DÉBUT DES DONNÉES
Le BS 2 contient aussi 32 octets de
RAM qui servent d’emplacements
pour les variables et pour les
entrées/sorties. Cette mémoire est
accessible sous forme de mots,
octets, quartets ou bits. Chaque
fois qu’une nouvelle exécution du
programme Basic est lancée, cette
mémoire est remise à zéro.
En résumé, la mémoire EEPROM
de 2 K ne sert qu’au programme et
aux données et n’est affectée que
DÉBUT DES DONNÉES
par un téléchargement de
programme ou son exécution. Elle
supporte
les
coupures
d’alimentation
(c’est
de
DÉBUT DES DONNÉES
l’EEPROM). La mémoire vive ou
RAM de 32 octets est utilisée par
OCTET $000
les variables d’exécution et les
entrées/sorties. Elle est remise à
zéro à chaque mise sous tension, lors d’un Reset ou suite à un téléchargement.
La mémoire EEPROM de 2 K est organisée comme indiqué fig. 1
La mémoire RAM de 32 octets est organisée de la façon suivante :
Mot
Bits
Description
L/E
_________________________________________________________________
$0
0000 0000 0000 0000
Etat des pattes en entrées
Lecture seule
$1
0000 0000 0000 0000
Latch des données en sortie
L/E
$2
0000 0000 0000 0000
Sens des entrées/sorties
L/E
$3
0000 0000 0000 0000
Variable à usage général
L/E
$4
0000 0000 0000 0000
Variable à usage général
L/E
$5
0000 0000 0000 0000
Variable à usage général
L/E
$6
0000 0000 0000 0000
Variable à usage général
L/E
$7
0000 0000 0000 0000
Variable à usage général
L/E
$8
0000 0000 0000 0000
Variable à usage général
L/E
$9
0000 0000 0000 0000
Variable à usage général
L/E
$A
0000 0000 0000 0000
Variable à usage général
L/E
$B
0000 0000 0000 0000
Variable à usage général
L/E
$C
0000 0000 0000 0000
Variable à usage général
L/E
$D
0000 0000 0000 0000
Variable à usage général
L/E
$E
0000 0000 0000 0000
Variable à usage général
L/E
$F
0000 0000 0000 0000
Variable à usage général
L/E
Selectronic
Le mot entier
L’octet bas de INS
L’octet haut de INS
Le quartet bas de INL
Le quartet haut de INL
Le quartet bas de INH
Le quartet haut de INH
Le bit 0 de INS - correspond à la patte P0
Le bit 15 de INS - correspond à la patte P15
Le mot $1 correspond aux latchs de données des sorties. Si une patte est en
entrée la données écrite dans le latch correspondant est sans effet. Ce mot peut
être lu et écrit à tout instant quel que soit le sens programmé pour les différentes
lignes d’entrées/sorties.
Envoie les valeurs des variables au PC en phase de
mise au point de programme.
7 - Organisation de la mémoire
4
Le mot $0 indique toujours l’état de toutes les lignes d’entrées/sorties, qu’elles
soient programmées en entrées ou en sorties. Sa lecture pour les pattes
programmées en sortie indique l’état qui sort sur les pattes correspondantes.
Le mot $1 est accessible au moyen des noms symboliques suivants :
OUTS
OUTL
OUTH
OUTA
OUTB
OUTC
OUTD
OUT0
à
OUT15
Le mot entier
L’octet bas de OUTS
L’octet haut de OUTS
Le quartet bas de OUTL
Le quartet haut de OUTL
Le quartet bas de OUTH
Le quartet haut de OUTH
Le bit 0 de OUTS - correspond à la patte P0
Le bit 15 de OUTS - correspond à la patte P15
Le mot $2 contient les bits de programmation du sens de fonctionnement des
lignes d’entrées/sorties. Pour mettre une ligne en entrée, le bit correspondant à sa
position doit être mis à zéro et pour mettre une ligne en sortie il doit être mis à un.
Le mot $2 est accessible au moyen des noms symboliques suivants :
DIRS
DIRL
DIRH
DIRA
DIRB
DIRC
DIRD
DIR0
à
DIR15
Le mot entier
L’octet bas de DIRS
L’octet haut de DIRS
Le quartet bas de DIRL
Le quartet haut de DIRL
Le quartet bas de DIRH
Le quartet haut de DIRH
Le bit 0 de DIRS - correspond à la patte P0
Le bit 15 de DIRS - correspond à la patte P15
Les mots $3 à $F sont utilisables pour des variables à usage général et n’ont pas
de noms prédéfinis. La directive VAR, présentée ci-après, peut être utilisée pour
leur en affecter.
Comme tous les interpréteurs, celui du Basic Stamp II supporte deux types
d’instructions ou directives : celles utilisées lors de la compilation et celles
utilisées lors de l’exécution.
Les directives de compilation sont traitées lors de la compilation du programme
(commandes Alt-R ou Alt-M) et ne génèrent aucun code exécutable. Les
directives d’exécution sont traitées lors de la compilation mais génèrent du code
exécutable qui est ensuite traité pendant l’exécution. Il n’existe que trois
directives de compilation : VAR, CON et DATA.
LA DIRECTIVE VAR - DÉFINITION DE VARIABLES
Votre programme doit impérativement commencer par les déclarations de toutes
les variables qu’il utilise. La directive VAR assigne des noms symboliques aux
variables en RAM non utilisées par les entrées/sorties c’est à dire les mots $3 à $F.
La directive VAR s’utilise de la façon suivante :
sym1
sym2
sym3
sym4
VAR
VAR
VAR
VAR
bit
nib
byte
word
définit une variable de type bit
définit une variable de type quartet
définit une variable de type octet
définit une variable de type mot
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
Après la définition du type de variable on peut placer un nombre entre
parenthèses pour définir la taille d’un tableau, par exemple :
La syntaxe à utiliser est la suivante : symbole CON expression
• symbole est un nom unique pour cette constante ;
sym5
VAR
nib(10)
définit un tableau de 10 quartets.
• expression est une expression pouvant être calculée
en phase de compilation.
Il est également possible de définir des variables dans des variables appelées
aussi variables alias.
Par exemple :
sym6
VAR
sym4.highbit
sym7
VAR
sym4.lowbit
sym8
VAR
sym2
Les expressions utilisées peuvent contenir un ou plusieurs des opérateurs
suivants :
+
*
/
<<
>>
&
|
^
crée une variable bit avec le bit
de poids fort de sym4
crée une variable bit avec le bit
de poids faible de sym
crée un autre nom pour
la variable sym2.
Cette façon de procéder fait appel à des modificateurs, placés après le nom de
la variable initiale et dont ils sont séparés par un point, afin de définir le type de
la variable alias.
Ces modificateurs sont les suivants :
LOWBYTE
HIGHBYTE
BYE0
BYTE1
LOWNIB
HIGHNIB
NIB0
NIB1
NIB2
NIB3
LOWBIT
HIGHBIT
BIT0
à
BIT3
BIT4
à
BIT7
BIT8
à
BIT15
Octet bas d’un mot
Octet haut d’un mot
Octet 0 ou bas d’un mot
Octet 1 ou haut d’un mot
Quartet bas d’un mot ou octet
Quartet haut d’un mot ou octet
Quartet 0 d’un mot ou octet
Quartet 1 d’un mot ou octet
Quartet 2 d’un mot
Quartet 3 d’un mot
Bit de poids faible d’un mot, octet ou quartet
Bit de poids fort d’un mot, octet ou quartet
Bit 0 d’un mot, octet ou quartet
Bit 3 d’un mot, octet ou quartet
Bit 4 d’un mot ou octet
Bit 7 d’un mot ou octet
Bit 8 d’un mot
Bit 15 d’un mot.
En résumé, la directive VAR est utilisée pour déclarer des variables seules ou
des variables au sein de variables avec la syntaxe suivante :
Pour des variables seules :
symbole VAR taille(tableau)
symbole est un nom unique pour une variable ;
taille peut être WORD, BYTE, NIB ou BIT ;
tableau est optionnel et indique la taille d’un tableau.
Pour des variables dans des variables :
symbole VAR variable.modificateur
symbole est un nom unique pour une variable ;
variable est le nom d’une variable déjà définie ;
modificateur correspond à un des codes cités ci-avant.
Le compilateur groupe les variables par taille et leur assigne la RAM inutilisée. La
commande Alt-M permet de voir le résultat de cette opération.
N’oubliez pas que vous pouvez créer des variables alias pour les pattes
d’entrées/sorties ; ainsi : poussoir VAR in5 permet de lire l’état de P5 au travers
du nom de variable poussoir.
Note à l’attention des utilisateurs de Stamp I : W0 à W12 ainsi que B0 à B25
sont reconnus par le compilateur afin de permettre l’utilisation de programmes
initialement écrits pour le Stamp I. Il est donc inutile de les définir en début de
programme.
LA DIRECTIVE “CON” - DÉFINITION DE CONSTANTES
La directive CON permet de définir des constantes et de leur affecter un nom
selon un principe similaire à celui de la directive VAR.
Selectronic
addition
soustraction
multiplication
division entière
décalage à gauche
décalage à droite
ET logique
OU logique
OU EXCLUSIF logique
LA DIRECTIVE DATA - DÉFINITION DE DONNÉES
La directive DATA est utilisée pour définir des données dans l’espace EEPROM
non utilisé directement par votre programme. Initialement le pointeur des
données ainsi définies est mis à zéro ; il avance ensuite unité par unité pour
chaque octet de donnée déclaré.
Habituellement la directive DATA est précédée par un symbole. Ce symbole est
affecté par le compilateur au pointeur de données.
Ce pointeur de données peut être modifié à tout instant en utilisant le symbole
@suivi par la nouvelle valeur à lui affecter.
La directive DATA peut être utilisée de deux façons différentes selon qu’elle
s’applique à des données définies ou indéfinies. Voici quelques exemples :
DONNÉES DÉFINIES :
ex1 DATA 0,1,2,3,4,5,6,7,8,9
ex2 DATA word1000
ex3 DATA 0(256)
dix octets sont définis
définit deux octets $E8 et $03
initialise 256 octets à 0
DONNÉES INDÉFINIES :
ex4 DATA
ex5 DATA
(1024)
word (16)
réserve 1 K octets indéfinis
réserve 16 mots indéfinis.
Il importe de noter que les données définies et les programmes sont toujours
téléchargés en mémoire EEPROM du BS2 alors que les données indéfinies ne le
sont pas. Ceci permet éventuellement de changer de programme tout en
conservant les mêmes données sous réserve d’avoir fait attention à leur
emplacement exact.
La commande Alt-M permet de voir l’affectation mémoire de l’EEPROM et donc
peut vous aider pour ce genre d’opération.
EN RÉSUMÉ :
• La directive DATA peut être précédée par un symbole qui est affecté à la valeur
du pointeur de données.
• Les données sont par défaut en octets mais le mot WORD peut être utilisé pour
définir des données sur deux octets.
• Le symbole @ peut être utilisé pour modifier la valeur du pointeur de données.
• Des données définies peuvent être répétées en utilisant un nombre compris
entre parenthèses placé immédiatement après.
• De l’espace peut être réservé pour des données indéfinies en utilisant un
nombre compris entre parenthèses, non précédé par une valeur de donnée.
• Une directive DATA peut faire référence aux symboles d’autres directives DATA
préalablement définies.
EXPRESSION UTILISÉES PENDANT L’EXÉCUTION
Les expressions utilisées pendant l’exécution du programme peuvent contenir
des variables, des constantes, des opérateurs et des parenthèses. Elles sont
calculées en utilisant de l’arithmétique entière sur 16 bits.
CONSTANTES
Les constantes peuvent être déclarées de quatre manières différentes : décimal,
binaire, hexadécimal ou ASCII.
Les nombres hexadécimaux sont précédés du symbole dollar ($). Les nombres
binaires du symbole pour cent (%) et les constantes ASCII sont comprises entre
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
5
des doubles guillemets (“ “). Si aucun de ces symboles n’est utilisé, les
constantes sont présumées être en décimal. Voici quelques exemples
Les opérateurs à deux éléments de plus faible priorité suivants peuvent aussi
être utilisés :
100
$64
%0110110
“A”
“Hello”
<
<=
=
=>
>
<>
Décimal
Hexadécimal
Binaire
A en ASCII (65 ou $41)
“H”, “e”, “l”, “l”, “o” en ASCII
VARIABLES
Les variables peuvent être utilisées de multiples façons :
variable
variable.highbit
variable(index)
inférieur à
inférieur ou égal à
égal à
supérieur ou égal à
supérieur à
différent de
Nota : ces opérateurs de comparaison fournissent 0 comme résultat si la
comparaison est fausse ou $FFFF si elle est vraie. Ces résultats peuvent ainsi
être combinés avec NOT, AND, OR et XOR pour réaliser des tests complexes.
variable utilisée normalement
utilisation d’un modificateur
une variable suivie par une expression est indexée
comme un tableau dont le premier élément
est repéré par l’index 0.
6 - Résumé du jeu d’instructions
BRANCH
Si une variable a été définie sous la forme : chaîne VAR byte(10), elle peut être
utilisées sous une des formes suivantes :
Branche à l’adresse spécifiée par un index.
BRANCH index (adresse 0, adresse 1, ...., adresse N)
chaîne
chaîne(0)
chaîne(1)
chaîne(9)
chaîne.lownib(index)
chaîne.lowbit(index)
le premier octet
le premier octet
le deuxième octet
le dixième et dernier octet
index peut varier de 0 à 19
index peut varier de 0 à 79.
OPÉRATEURS ARITHMÉTIQUES
Index est une constante ou une variable qui précise quelle adresse va être
utilisée (0 à N).
Adresse X est une étiquette définissant une adresse.
Exemple :
branch b2, (abc, def, ghi)
‘va à l’adresse abc si b2 vaut 0
‘va à l’adresse def si b2 vaut 1
‘va à l’adresse ghi si b2 vaut 2
‘continue en séquence si b2 est une autre valeur
Il existe deux types d’opérateurs différents, les opérateurs à un élément et les
opérateurs à deux éléments.
Les opérateurs à un élément précèdent toujours une variable ou une constante
et ont la priorité la plus élevée. Voici leur liste :
SQR
racine carrée d’un nombre non signé sur 16 bits
valeur absolue d’un nombre signé sur 16 bits
complément à 1 d’une donnée sur 16 bits
complément à 2 d’une donnée sur 16 bits (négation)
décodage d’une valeur sur 4 bits (ex. 0 ->1, 3 ->8, etc ... )
encodage d’une valeur sur 16 bits (ex. 32768 -> 15, 8192 -> 13 )
cosinus d’une valeur sur 8 bits. Résultat dans la plage +/-127 ;
le cercle trigonométrique varie de 0 à 255.
sinus d’une valeur sur 8 bits. Résultat dans la plage +/- 127.
ABS
~
DCD
NCD
COS
SIN
Les opérateurs à deux éléments suivants peuvent être utilisés :
+
*
**
*/
/
//
MIN
MAX
&
|
^
DIG
<<
>>
REV
addition
soustraction
multiplication
multiplication (fournit le mot de poids fort du résultat)
multiplication (fournit le mot de poids faible du résultat)
division (fournit le quotient)
division (fournit le reste)
maintient une variable supérieure ou égale à une valeur
maintient une variable inférieure ou égale à une valeur
ET logique
OU logique
OU exclusif logique
extrait un chiffre (ex. 12345 dig 3 donne 2)
décalage à gauche
décalage à droite
inverse l’ordre des bits
Les opérateurs à un élément ont priorité sur les opérateurs à deux éléments ; de
plus les expressions sont évaluées de la gauche vers la droite. Des parenthèses
peuvent être utilisées pour modifier ces priorités. Le nombre maximum de
parenthèses utilisables est de huit.
Des opérateurs binaires sont disponibles pour les expressions conditionnelles
faisant intervenir IF ; ce sont :
NOT
AND, OR, XOR
6
priorité la plus élevée
priorité la plus élevée des opérateurs binaires
à deux éléments.
Selectronic
BUTTON
Lit l’état d’un poussoir et effectue un anti-rebondissement,
l’auto-répétition, le branchement si le poussoir est dans un état stable.
BUTTON patte, étatbas, délai, vitesse, variable, étatcible, adresse
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser.
Etatbas est une constante ou variable logique (0 ou 1) qui précise l’état
logique du poussoir lorsqu’il est appuyé.
Délai est une constante ou variable de 0 à 255 qui indique pendant combien
de temps le poussoir doit être actionné pour générer un fonction de
répétition automatique. Si délai vaut 0 les fonctions d’anti-rebondissement
et de répétition automatique sont inhibées. Si délai vaut 255 l’antirebondissement a lieu mais pas la répétition automatique.
Vitesse est une constante ou variable de 0 à 255 qui précise la vitesse de la
répétition automatique. Cette vitesse est exprimé en nombre de cycle de
l’instruction BUTTON.
Variable est la variable de travail de BUTTON. Elle doit être mise à zéro
avant la première utilisation de cette instruction.
Etatcible est une constante ou variable logique qui précise dans quel état
doit être le poussoir pour que le branchement ait lieu ( 0 = non appuyé, 1 =
appuyé).
A d r e s s e est une étiquette qui précise l’adresse où va brancher le
programme lorsque le poussoir sera dans l’état définit par étatcible.
COUNT
Compte le nombre de périodes sur une patte
pendant un certain temps.
COUNT patte,période,variable mot
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser ; patte qui est placée en entrée.
Période indique le nombre de millisecondes pendant lequel le comptage va
avoir lieu.
Variable mot est une variable de type mot (16 bits) dans laquelle est placé le
résultat. Si une plage de variation de cette variable de 0 à 255 suffit, une
variable de type octet peut être utilisée.
Le signal appliqué à la patte utilisée doit avoir des états hauts et bas d’une
durée au moins égale à 4 µs ce qui limite la fréquence maximum utilisable à
125 kHz (en supposant un rapport cyclique de 50 %).
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
DEBUG
DTMFOUT
Affiche des variables et des messages sur l’écran du PC
aux fins de mise au point.
Génère les tonalités de numérotation téléphonique DTMF.
DTMFOUT patte,{on,off,}[touche, touche, ...]
DEBUG données
Les données qui suivent l’instruction DEBUG sont affichées sur l’écran du
PC lors de l’exécution de cette dernière. De multiples directives de
formatage et de multiples types de variables sont utilisables.
DEBUG peut être suivi de plusieurs variables et chaînes de caractères
séparées par des virgules. Les chaînes de caractères sont affichées telles
quelles, les variables sont formatées conformément à un certain nombre de
préfixes
ASC?
STR
variable octet
STR
variable octet\n
REP
DEC
DEC1-DEC5
donnée\n
donnée
donnée
SDEC
SDEC1-SDEC5
donnée
donnée
HEX
HEX1-HEX4
donnée
donnée
SHEX
SHEX1-SHEX4
donnée
donnée
IHEX
IHEX1-IHEX4
donnée
donnée
ISHEX
donnée
ISHEX1-ISHEX4
donnée
BIN
BIN1-BIN16
donnée
donnée
SBIN
SBIN1-SBIN16
donnée
donnée
IBIN
IBIN1-IBIN16
donnée
donnée
ISBIN
donnée
ISBIN1-ISBIN16
donnée
affiche la valeur ASCII avec la relation =
affiche la valeur d’un tableau d’octets
jusqu’à 0
affiche la valeur de n éléments
d’un tableau d’octets
affiche la donnée n fois
affiche la donnée en décimal
affiche la donnée en décimal
1 à 5 chiffres
affiche la donnée en décimal signé
affiche la donnée en décimal signé
1 à 5 chiffres
affiche la donnée en hexadécimal
affiche la donnée en hexadécimal
1 à 4 chiffres
affiche la donnée en hexadécimal signé
affiche la donnée en hexadécimal signé
1 à 4 chiffres
affiche la donnée en hexadécimal avec $
affiche la donnée
en hexadécimal avec $
1 à 4 chiffres
affiche la donnée en hexadécimal signé
avec $
affiche la donnée en hexadécimal signé
avec $1 à 4 chiffres
affiche la donnée en binaire
affiche la donnée
en binaire 1 à 4 chiffres
affiche la donnée en binaire signé
affiche la donnée en binaire signé
1 à 4 chiffres
affiche la donnée en binaire avec %
affiche la donnée en binaire avec %
1 à 4 chiffres
affiche la donnée en binaire
signé avec %
affiche la donnée en binaire
signé avec % 1 à 4 chiffres
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. Elle est placée en sortie pour la durée de l’instruction. Les état on
(marche) et off (arrêt) sont par défaut de 200 ms et 50 ms.
On et off sont optionnels et permettent de modifier les deux valeurs par
défaut. Ils sont exprimés en ms.
Touche indique quelles tonalités on souhaite générer conformément à
l’affectation normalisé DTMF des touches des claviers de téléphone. 0 à 9
correspondent aux chiffres 0 à 9, 10 correspond à *, 11 correspond à # et
12 à 15 correspondent aux lettres A à D disponibles sur certains claviers.
La patte choisie peut être filtrée par une cellule R-C pour disposer d’une
sinusoïde “propre”. Il est également possible de piloter directement un hautparleur haute impédance selon le schéma ci-dessous.
Le condensateur série est nécessaire sauf si vous utilisez un haut-parleur
piézo électrique.
Le condensateur en parallèle sur le haut-parleur est optionnel mais utile
pour réduire les bruits à haute fréquence.
END
Termine un programme
END
Fait passer le Stamp en mode sommeil pour une durée indéfinie. Toutes les
2,3 secondes environ, les entrées/sorties passent en haute impédance
pendant 18 ms.
La consommation du circuit dans ce mode est de l’ordre de 50 µA.
END n’utilise aucun paramètre et ne peut être terminée que par un Reset
matériel.
FOR ... NEXT
Réalise une boucle de type FOR ... NEXT
DEBUG peut également être suivi par un certain nombre de
directives de formatage interprétées par le PC ; ce sont :
CLS
HOME
BELL
BKSP
TAB
CR
efface l’écran et positionne le curseur en haut à gauche
positionne le curseur en haut à gauche
génère un “bip” sur le haut-parleur du PC
déplace le curseur d’une position vers la gauche
déplace le curseur de huit colonnes vers la droite
retour chariot et saut ligne.
Exemple de programme utilisant DEBUG :
abc
loop1:
loop2:
VARbyte
DEBUG cls,bell
DEBUG sdec? sin abc
abc = abc+1
if abc<>0 then loop2
pause 1000
goto loop1
Selectronic
‘définit une variable octet appelée abc
‘efface l’écran et génère un “bip”
‘affiche le sinus signé décimal de abc
‘incrémente abc
‘boucle jusqu’au débordement de abc
‘pause pendant une seconde
‘répète le programme
FOR variable = début TO fin {STEP pas}
NEXT
Pas est une donnée optionnelle et précise de combien doit être incrémentée
ou décrémentée la variable de boucle. En son absence, le pas est fixé à +1.
Aucun signe ne doit être précisé pour la variable Pas car celui-ci est
déterminé automatiquement par le compilateur en fonction des valeurs
début et fin.
La variable est rendue égale à la valeur début puis le code compris entre
FOR et NEXT est exécuté. La variable est alors incrémentée de 1 (ou du pas
spécifié par la directive optionnelle STEP) et, si elle n’est pas égale ou
supérieure à fin, les instructions comprises entre FOR et NEXT sont
exécutées à nouveau et ainsi de suite. Lorsque la variable devient égale ou
supérieure à fin, le programme continue en séquence après NEXT.
Quelles que soient les valeurs de début et de fin la boucle est toujours
exécutée au moins une fois. Un programme peut comporter autant de
boucles FOR - NEXT que vous le souhaitez mais il ne faut pas imbriquer les
unes dans les autres plus de 16 boucles.
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
7
FREQOUT
INPUT
Génère un signal périodique pendant un certain temps.
Place une patte en entrée.
FREQOUT patte, milliseconde, fréq1 {,freq2}
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. Elle est placée en sortie pour la durée de l’instruction.
Milliseconde indique la durée de génération du signal en millisecondes.
Freq1 indique la première fréquence à générer en Hz (de 0 à 32 767).
Freq2 est optionnel est indique la deuxième fréquence à générer.
INPUT patte
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. Place la patte correspondante en entrée ce qui permet ensuite au
programme de lire le niveau logique auquel elle se trouve.
Cette instruction est sans effet sur le latch de sortie de la patte sélectionnée.
La patte choisie peut être filtrée par une cellule R-C pour disposer d’une
sinusoïde “propre”. Il est également possible de piloter directement un hautparleur haute impédance selon le schéma ci-dessous.
LOOKDOWN
Cherche une valeur et fournit un index de sa position.
LOOKDOWN référence, ??[valeur0, valeur1, ... valeurN], variable
Le condensateur série est nécessaire sauf si vous utilisez un haut-parleur
piézo électrique. Le condensateur en parallèle sur le haut-parleur est
optionnel mais utile pour réduire les bruits à haute fréquence.
GOSUB
Exécute un saut à un sous-programme avec retour ultérieur.
Référence est la constante ou la variable dont vous recherchez la présence
dans une liste de valeurs.
?? est un des opérateurs de comparaison autorisés (voir ci-avant dans ce
manuel). La valeur par défaut est =.
Valeur0 à ValeurN est la liste des valeurs auxquelles va être comparée la
référence.
Variable contient le résultat de la recherche ou n’est pas affectée si la
recherche est négative.
L’instruction compare une liste de valeurs avec une référence. Si une égalité
est trouvée, elle place le numéro de rang de cette valeur (de 0 à N) dans la
variable. Si aucune valeur ne concorde, la variable n’est pas affectée. Si par
exemple la liste de valeurs est : 4, 13, 15, 28, 8 et que la référence est 15, la
variable contiendra 2 puisque 15 est la troisième valeur de la liste et que le
décompte commence à partir de 0.
GOSUB adresse
A d r e s s e est une étiquette qui indique l’adresse de début du sousprogramme.
LOOKUP
Recherche une variable en fonction de la valeur d’un index.
Exécute un saut au sous-programme dont l’adresse est spécifiée. Lorsque
le sous-programme est terminé, l’instruction RETURN (voir ce mot) fait
poursuivre l’exécution à l’instruction qui suit GOSUB.
On peut utiliser jusqu’à 255 GOSUB dans un seul et même programme mais
il ne faut pas en imbriquer plus de 4.
GOTO
Exécute un saut à un autre point du programme.
GOTO adresse
LOOKUP index,[valeur0, valeur1, ..., valeurN],variable
Index spécifie la position de la valeur de la liste qui doit être placée dans la
variable.
Valeur0 à ValeurN est la liste des valeurs disponibles.
Variable contient le résultat de l’instruction.
Recherche la valeur spécifiée par l’index dans la liste de valeurs et place
celle-ci dans la variable. Si par exemple la liste de valeurs est 2, 13, 15, 28 et
8 et que l’index vaille 1, la valeur placée dans la variable sera 13 puisque le
décompte commence à partir de 0. Si l’index est plus grand que le nombre
de valeurs disponibles, la variable n’est pas affectée.
Adresse est une étiquette qui indique l’adresse à laquelle se poursuit
l’exécution du programme.
LOW
Fait passer une patte en sortie et au niveau logique bas.
HIGH
Fait passer une patte en sortie et au niveau logique haut.
LOW patte
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. La patte spécifiée est mise en sortie et au niveau logique bas.
HIGH patte
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. La patte spécifiée est mise en sortie et au niveau logique haut.
NAP
Place le circuit en sommeil un court instant.
IF ... THEN
Branchement conditionnel.
IF expression conditionnelle THEN adresse
Adresse est une étiquette qui indique l’adresse à laquelle se continue
l’exécution du programme si la comparaison est vraie c’est à dire si le
résultat de l’expression conditionnelle est différente de zéro.
NAP x
x est une constante ou variable qui spécifie la durée de ce mode selon le
tableau ci-dessous.
Cette instruction place le Stamp en mode sommeil pour une courte durée.
Lorsque ce délai est expiré, les entrées/sorties passent en haute impédance
pendant 18 ms et l’exécution du programme reprend à l’instruction suivante.
Dans le cas contraire, le programme continue son exécution en séquence.
8
Selectronic
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
Valeur de x
Nombre de secondes
_____________________________________
0
0,018
1
0,036
2
0,072
3
0,140
4
0,290
5
0,580
6
1,200
7
2,300
OUTPUT
Place une patte en sortie.
OUTPUT patte
Patte est une constante ou variable (0 à 15) qui indique le numéro de patte
à utiliser. Place la patte choisie en sortie. Le latch de sortie correspondant
n’est pas affecté.
L’instruction génère un signal impulsionnel modulé en durée sur la patte
spécifiée et place ensuite celle-ci en entrée. Cette instruction peut être
utilisée pour produire très facilement une tension analogique grâce à une
résistance et un condensateur comme indiqué sur le schéma ci-après.
Compte tenu de la décharge inévitable du condensateur au fil du temps,
l’instruction doit être répétée régulièrement pour mettre à jour ou rafraîchir
cette charge.
RANDOM
Génère un nombre pseudo aléatoire.
PAUSE
Effectue une pause de durée variable.
PAUSE millisecondes
Millisecondes est une constante ou variable de 0 à 65535 qui spécifie la
durée de la pause. Suspend l’exécution du programme pendant un certain
nombre de millisecondes.
RANDOM variable mot
Variable est utilisée à la fois comme variable de travail et pour récupérer le
nombre pseudo aléatoire généré par l’instruction. Attention cette variable
est nécessairement de type mot de 16 bits.
Cette variable est traitée 16 fois de suite afin de changer tous ses bits.
PULSIN
RCTIME
Mesure la durée d’une impulsion en entrée.
PULSIN patte, état, variable
Mesure le temps de charge/décharge d’une cellule R-C.
RCTIME patte, état, variable
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Etat est une constante ou variable égale à 0 ou 1 qui indique sur quel état
de la patte doit avoir lieu la mesure.
Variable est utilisée pour stocker le résultat de la mesure compris entre 1 et
65535.
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Etat indique l’état dans lequel doit être la patte pendant la mesure.
Variable contient le résultat de la mesure sur 16 bits. La résolution est de 2
µs et si un débordement se produit (temps supérieur à 131 ms environ), la
variable est mise à zéro.
La patte correspondante est mise en entrée et la durée de l’impulsion qui y
est appliquée est mesurée avec une résolution de 2 µs. Si un débordement
de la variable se produit c’est à dire si l’impulsion dure plus que 65535 * 2
µs, soit environ 131 ms, la variable est mise à zéro.
Cette instruction est utile pour
mesurer le temps de charge ou
décharge d’un condensateur.
Comme le niveau logique bas des
entrées du Stamp est d’environ 1,4
volt il est préférable de faire
décroître la tension du
condensateur de 5 volts vers le
niveau bas ce qui donne une plage
utile de 3,6 volts.
PULSOUT
Génère une impulsion calibrée en sortie.
PULSOUT patte, temps
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Temps est une constante ou variable de 0 à 65535 qui spécifie la durée de
l’impulsion par pas de 2 µs.
L’instruction génère une impulsion en inversant le niveau de la patte
pendant le laps de temps spécifié. Si “temps” est nul, aucune impulsion
n’est générée.
PWM
Ainsi par exemple pour mesurer
la valeur d’un potentiomètre il
suffit de réaliser le schéma ci
contre. Le programme n’a plus alors qu’à mettre la patte choisie au niveau
haut pour décharger le condensateur puis exécuter une instruction RCTIME
pour mesurer son temps de charge. Le résultat de cette instruction
correspond alors à la valeur du potentiomètre à un coefficient multiplicateur
près.
Nota : la résistance de 10 ohms est nécessaire pour éviter un court-circuit
éventuel entre un état haut de la patte utilisée et la masse.
Génère un signal impulsionnel modulé en largeur pendant un certain temps.
PWM patte, rapport cyclique, cycles
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Rapport cyclique est une constante ou variable de 0 à 255 qui précise le
rapport cyclique.
Cycles est une constante ou variable de 0 à 255 qui spécifie le nombre de
périodes du signal à générer. Chaque cycle prend environ 1 ms.
Selectronic
Exemple de programme :
pot VAR word
loop:
HIGH 1
PAUSE 1
RCTIME 0,1,pot
DEBUG ?pot
GOTO loop
‘place la sortie au niveau haut
‘attend que le condensateur soit déchargé
‘réalise la mesure
‘affiche le résultat de la mesure sur le PC
‘répète le processus.
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
9
Voici quelques exemples de valeurs pour “mode” :
READ
Lit un octet dans l’EEPROM.
READ adresse, variable
Adresse est une constante ou variable de 0 à 2047 qui spécifie l’adresse à lire.
Variable reçoit la valeur lue dans la mémoire EEPROM.
RETURN
Retour de sous-programme.
3313
3313+$2000
3313+$4000
3313+$6000
813
396
188
84+$6000
32
6
300 bauds, 8 bits, pas de parité, données vraies
300 bauds, 7 bits, parité, données vraies
300 bauds, 8 bits, pas de parité, données inversées
300 bauds, 7 bits, parité, données inversées
1200 bauds, 8 bits, pas de parité, données vraies
2400 bauds, 8 bits, pas de parité, données vraies
4800 bauds, 8 bits, pas de parité, données vraies
9600 bauds, 7 bits, parité, données inversées
19200 bauds, 8 bits, pas de parité, données vraies
38400 bauds, 8 bits, pas de parité, données vraies.
Errp est une étiquette optionnelle qui indique où doit se brancher le
programme en cas d’erreur de parité.
RETURN
Fait poursuivre l’exécution du programme à l’instruction qui suit
immédiatement le GOSUB ayant appelé le sous-programme se terminant
par cette instruction. RETURN n’utilise aucun paramètre.
Si RETURN est exécuté sans GOSUB préalable l’exécution du programme
en cours reprend au début.
REVERSE
Timeout est une valeur optionnelle qui indique combien de temps attendre
avant de brancher à l’étiquette Etiqt. Le temps est mesuré en ms et
“timeout” peut varier de 1 à 65535.
Donnée est la ou les données reçues et respecte les conventions ci-après :
variable
STR tableau\L{\E}
Inverse le sens de fonctionnement d’une patte.
REVERSE patte
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Inverse le sens de fonctionnement de la patte spécifiée. Si elle était entrée
elle devient sortie et vice versa. L’état du latch de sortie correspondant n’est
pas affecté.
SERIN
Réception de données sous forme série asynchrone.
SERIN patte r {\patte f},mode, {errp,}{timeout,etiqt,}[donnée]
SKIP L
WAITSTR tableau
WAITSTR tableau\L
WAIT (valeur, valeur, ...)
DEC variable
DEC1-DEC5 variable
SDEC variable
SDEC1-SDEC5 variable
HEX variable
HEX1-HEX4 variable
SHEX variable
SHEX1-SHEX4 variable
Initialise une liaison série sur l’une des pattes du Stamp, configure cette
liaison et attend un ou plusieurs qualifieurs optionnels avant de prendre en
compte les données reçues.
IHEX variable
Patte r est une constante ou variable de 0 à 16 spécifiant le numéro de patte
utilisée pour la réception des données. Elle peut prendre la valeur de 0 à 15
pour une patte normale et reçoit alors des niveaux TTL ou prendre la valeur
16 et recevoir des niveaux pseudo RS 232 via l’entrée RX (patte 2) du BS-II.
* Si une patte TTL est utilisée, le fonctionnement est assuré avec des
circuits travaillant au même niveau. Une réception RS 232 sur une patte TTL
est possible sous réserve de placer en série une résistance de 22 kohms
faute de quoi l’entrée TTL risque d’être détruite.
* La patte 2 est prévue pour recevoir directement des niveaux RS 232
de + ou - 10 volts d’amplitude. Aucune résistance série n’est donc
nécessaire.
* Dans tous les cas le seuil haut/bas est de 1,4 volts ce qui signifie que
tout signal de niveau inférieur est vu comme étant un zéro et tout signal de
niveau supérieur comme étant un un.
ISHEX variable
IHEX1-IHEX4 variable
ISHEX1-ISHEX4 variable
BIN variable
BIN1-BIN16 variable
SBIN variable
SBIN1-SBIN16 variable
IBIN variable
IBIN1-IBIN16 variable
ISBIN variable
ISBIN1-ISBIN16 variable
place la donnée reçue dans la variable
reçoit une suite de données placées dans le
tableau d’octets de longueur L avec le
caractère de fin optionnel E (des zéros
remplissent les octets manquants éventuels).
reçoit mais ignore L octets
attend un tableau d’octets terminé par un zéro
attend un tableau d’octets de longueur L
attend jusqu’à une séquence de six octets
reçoit une donnée en décimal
reçoit une donnée en décimal de 1 à 5 chiffres
reçoit une donnée en décimal signé
reçoit une donnée en décimal signé
de 1 à 5 chiffres
reçoit une donnée en hexadécimal
reçoit une donnée en hexadécimal
de 1 à 4 chiffres
reçoit une donnée en hexadécimal signé
reçoit une donnée en hexadécimal signé
de 1 à 4 chiffres
reçoit une donnée en hexadécimal
précédée de $
reçoit une donnée en hexadécimal
précédée de $ de 1 à 4 chiffres
reçoit une donnée en hexadécimal
signé précédée de $
reçoit une donnée en hexadécimal
signé précédée de $ de 1 à 4 chiffres
reçoit une donnée en binaire
reçoit une donnée en binaire de 1 à 4 chiffres
reçoit une donnée en binaire signé
reçoit une donnée en binaire signé
de 1 à 4 chiffres
reçoit une donnée en binaire précédée de %
reçoit une donnée en binaire précédée de %
de 1 à 4 chiffres
reçoit une donnée en binaire signé précédée de %
reçoit une donnée en binaire signé précédée de %
de 1 à 4 chiffres
Patte f est une constante ou variable optionnelle de 0 à 15 spécifiant le
numéro de patte utilisée pour les protocoles de dialogue.
Mode est une valeur composite spécifiant le mode de fonctionnement de la
liaison série conformément aux indications ci-dessous.
* Les bits 0 à 12 de “mode” correspondent à la période de l’horloge bit
exprimée en microsecondes et diminuée de 20.
* Le bit 13 est à zéro pour une transmission sur 8 bits sans parité et à
un pour une transmission sur 7 bits avec parité paire.
* Le bit 14 est à zéro pour une émission de données “vraies” et à un
pour une émission de données “inversées”.
* Le bit 15 n’est pas utilisé par SERIN.
Une formule simple permet de calculer la période bit de la transmission
codée sur les bits 1 à 12 :
int ( 1 000 000 / vitesse en bauds) - 20.
10
Selectronic
SEROUT
Emission de données sous forme série asynchrone.
SEROUT patte t, mode, {tempo,}[donnée] ou
SEROUT patte t {\patte f},mode, {timeout,etiqt,}[donnée]
Initialise une liaison série sur l’une des pattes du Stamp, configure cette
liaison et émet un ou plusieurs caractères sous forme série asynchrone.
Patte t est une constante ou variable de 0 à 16 spécifiant le numéro de patte
utilisée pour l’émission des données. Elle peut prendre la valeur de 0 à 15
pour une patte normale et émet alors des niveaux TTL ou prendre la valeur
16 et émettre des niveaux pseudo RS 232 via la sortie TX (patte 1) du BS-II.
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
* Si une patte TTL est utilisée, le fonctionnement est assuré avec
des circuits travaillant au même niveau. Une émission vers des
équipements RS 232 depuis une patte TTL est possible mais si ces
équipements nécessitent de vrais niveaux RS 232, ils risquent alors de ne
pas fonctionner correctement.
* La patte 1 est prévue pour émettre directement des pseudos
niveaux RS 232 variant entre + 5 volts et le niveau présent sur RX. Si RX est
raccordée à un équipement RS 232 véritable, une tension de - 10 à - 12
volts y est présente et le système fonctionne alors correctement.
Patte f est une constante ou variable optionnelle de 0 à 15 spécifiant le
numéro de patte utilisée pour les protocoles de dialogue.
Mode est une valeur composite spécifiant le mode de fonctionnement de la
liaison série conformément aux indications ci-dessous.
* Les bits 0 à 12 de “mode” correspondent à la période de l’horloge bit
exprimée en microsecondes et diminuée de 20.
* Le bit 13 est à zéro pour une transmission sur 8 bits sans parité et à
un pour une transmission sur 7 bits avec parité paire.
* Le bit 14 est à zéro pour une émission de données “vraies” et à un
pour une émission de données “inversées”.
* Le bit 15 est à zéro pour une sortie normale et à un pour une sortie
de type drain ouvert/source ouverte.
Si la patte RS 232 (patte 1) est spécifiée pour patte t les bits 14 et 15 de
“mode” sont ignorés sauf pour patte f.
Une formule simple permet de calculer la période bit de la transmission
codée sur les bits 1 à 12 :
Variable contient la donnée reçue.
Bits est un nombre de bits optionnel qui peut varier de 1 à 16 avec 8
comme valeur par défaut.
Les symboles suivants sont définis pour être utilisés avec SHIFTIN :
MSBPRE
LSBPRE
MSBPOST
LSBPOST
égal à 0
égal à 1
égal à 2
égal à 3.
SHIFTOUT
Décale des bits en sortie de manière synchrone.
SHIFTOUT patte d, patte c, mode, [donnée {\bits}, ...]
Patte d est une constante ou variable de 0 à 15 spécifiant le numéro de
patte utilisée pour les données.
Patte c est une constante ou variable de 0 à 15 spécifiant le numéro de
patte utilisée pour l’horloge.
Mode dépend du mode de travail selon le tableau ci-dessous :
Mode
Données
______________________
0
LSB en premier
1
MSB en premier
int ( 1 000 000 / vitesse en bauds) - 20.
Donnée contient la donnée à émettre.
Voici quelques exemples de valeurs pour “mode” :
3313
3313+$2000
3313+$4000
3313+$6000
813
396
188
84+$6000
32
6
300 bauds, 8 bits, pas de parité, données vraies
300 bauds, 7 bits, parité, données vraies
300 bauds, 8 bits, pas de parité, données inversées
300 bauds, 7 bits, parité, données inversées
1200 bauds, 8 bits, pas de parité, données vraies
2400 bauds, 8 bits, pas de parité, données vraies
4800 bauds, 8 bits, pas de parité, données vraies
9600 bauds, 7 bits, parité, données inversées
19200 bauds, 8 bits, pas de parité, données vraies
38400 bauds, 8 bits, pas de parité, données vraies.
Timeout est une valeur optionnelle qui indique combien de temps attendre
avant de brancher à l’étiquette Etiqt. Le temps est mesuré en ms et
“timeout” peut varier de 1 à 65535. L’utilisation de “timeout” et de son
étiquette associée est seulement significative dans le cas de l’emploi d’un
protocole de dialogue (patte f).
Tempo est une valeur optionnelle qui indique combien de temps attendre
entre chaque octet transmis. Le temps est indiqué en ms et peut varier de 1
à 65 535 ms. Tempo ne doit être employée que si le protocole de dialogue
n’est pas utilisé.
Donnée est la ou les données à émettre et respecte les conventions de
formatage vues pour l’instruction DEBUG. Vous êtes priés de vous reporter
à la description de cette instruction pour plus de précisions à ce sujet.
SHIFTIN
Bits est un nombre de bits optionnel qui peut varier de 1 à 16 avec 8
comme valeur par défaut.
Les symboles suivants sont définis pour être utilisés avec SHIFTOUT :
LSBFIRST
MSBFISRT
égal à 0
égal à 1
Les données sont fournies en sortie à environ 16 kbits par seconde.
SLEEP
Passe en mode sommeil pendant X secondes.
SLEEP x
x est une constante ou variable de 0 à 65535 qui spécifie la durée du mode
sommeil.
Cette instruction met le Stamp en mode sommeil pendant un certain
nombre de secondes. Toutes les 2,3 secondes environ, les entrées/sorties
passent en haute impédance pendant 18 ms.
La résolution de cette instruction est de 2,3 secondes et sa précision est
donc supérieure à 1 % pour des périodes relativement longues vis à vis de
cette dernière.
Lorsque le délai spécifié est écoulé, l’exécution reprend avec l’instruction
suivante.
Décale des bits en entrée de manière synchrone.
SHIFTIN patte d, patte c, mode, [variable {\bits}, ...]
Patte d est une constante ou variable de 0 à 15 spécifiant le numéro de
patte utilisée pour les données.
Patte c est une constante ou variable de 0 à 15 spécifiant le numéro de
patte utilisée pour l’horloge.
Mode dépend du mode de travail selon le tableau ci-dessous :
Mode
Données
Horloge
_____________________________________________________________
_
0
MSB en premier
Données valides sur front montant
1
LSB en premier
Données valides sur front montant
2
MSB en premier
Données valides sur front descendant
3
LSB en premier
Données valides sur front descendant
Selectronic
STOP
Arrête l’exécution.
STOP
L’exécution du programme est arrêtée mais le mode basse consommation
n’est pas activé. Cette instruction est donc identique à END mais maintient
les entrées/sorties à leurs niveau sans jamais les faire passer en haute
impédance.
Seul un Reset matériel permet de quitter le mode STOP.
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr
11
TOGGLE
Place une patte en sortie et change son niveau.
NOTES
TOGGLE patte
Patte est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée.
Cette instruction met la patte spécifiée en sortie si elle ne l’était pas déjà et
change son état (haut vers bas ou vice versa).
WRITE
Ecrit un octet dans l’EEPROM.
WRITE adresse, donnée
Adresse est une constante ou variable de 0 à 2047 qui spécifie l’adresse où
écrire.
Donnée est une constante ou variable de 0 à 255 à écrire dans la mémoire
EEPROM.
Cette instruction écrit la donnée à l’adresse spécifiée dans la mémoire
EEPROM.
XOUT
Génère des codes compatibles du système X10.
XOUT patte m,patte z, [maison\touche {\cycles, ...}]
Patte m est une constante ou variable de 0 à 15 spécifiant le numéro de
patte utilisée pour la commande de modulation. Elle est mise en sortie au
niveau bas.
Patte z est une constante ou variable de 0 à 15 spécifiant le numéro de patte
utilisée pour l’information de détection de passage par zéro des modules X10.
Maison est le code “maison” du système X10 où les lettres A à P sont
remplacées respectivement par les chiffres 0 à 15.
Touche est le numéro des touches des claviers X10 avec la correspondance
touches 1 à 16 -> nombres 0 à 15 ou un des codes de commande indiqué
ci-dessous.
Cycles est une valeur optionnelle qui remplace celle de deux prise par
défaut. Elle ne doit être utilisée que pour les commandes “dim” et “bright”.
Symboles
des commandes X10
Valeurs
_____________________________________
UNITON
%10010
UNITOFF
%11010
UNITSOFF
%11100
LIGHTSON
%10100
DIM
%11110
BRIGHT
%10110
Le tableau ci_après indique comment connecter un Stamp II
aux modules d’interface X10 standards PL513 ou TW523.
N°
des pattes des modules
Pattes du Stamp II
__________________________________________
1
patte z
2
GND
3
GND
4
patte m
Nota : les modules X10 ne sont pas distribués en France au moment où ces
lignes sont écrites.
Le contenu du présent manuel est la propriété de SELECTRONIC
et protégé par copyright. Toute reproduction complète ou même
partielle est strictement illicite. Pour obtenir un autre exemplaire
de ce manuel, veuillez contacter SELECTRONIC.
12
Selectronic
BP 513 - 59022 LILLE CEDEX - Tél. : 03 28 55 03 28 - Télécopie : 03 28 55 03 29 . www.selectronic.fr