Concours ROBOTEK
Webmaster - Infos
Lettre d'information
Visites
356648 visiteurs 1 visiteur en ligne
Free Box
| Langage BASIC - Instructions BASIC
Vous trouverez ci-dessous la liste non exhaustive des instructions du BASIC. DEBUG cls, "texte", cr, var, $var, %var, #var, #$var, #%var Cette instruction affiche des informations dans une fenêtre de test à chaque fois que le programme la rencontre durant son exécution. Exemple : | SYMBOL compteur = W0 SYMBOL x = W1 FOR x = 0 TO 100 compteur = compteur+1 DEBUG compteur NEXT x | définit la variable "compteur" définit la variable "x" pour x allant de 0 à 100 ajoute 1 à la variable "compteur" affiche le nom et le contenu de la variable "compteur" passe au x suivant | EEPROM {position},(donnée,donnée...) Cette commande permet de stocker des données dans l'EEPROM (la mémoire) du microcontrôleur avant d'y télécharger le programme. Ce n'est pas une instruction mais plutôt un mode de téléchargement qui permet de stocker des données dans des espaces mémoire libres. - Position est une constante (optionnelle) comprise entre 0 et 255 qui spécifie où stocker les données dans l'EEPROM. Si aucune position n'est spécifiée, le stockage continue là où il a été arrêté. Si aucune position n'a été spécifiée à l'initialisation, le stockage commence à 0. Le stockage des données s'effectue dans l'ordre croissant à partir de 0 alors que le stockage du programme s'effectue dans l'ordre décroissant à partir de 255.
- Donnée(s) sont des constantes (0 à 255) qui seront stockées dans l'EEPROM.
Exemple : | EEPROM 0,("a","g","a","d","r","f") SYMBOL dep = W0 SYMBOL pos = W1 lecture: READ pos,dep IF dep = "a" THEN avance IF dep = "r" THEN recule IF dep = "d" THEN droite IF dep = "g" THEN gauche IF dep = "f" THEN END pos = pos+1 GOTO lecture avance: ... recule: ... etc... | stocke les valeurs dans l'EEPROM à la position 0 définit la variable "dep" définit la variable "pos" sous-programme "lecture" lit l'EEPROM à la position "pos" et range la valeur dans "dep" si "dep" est égale à "a" alors va à "avance" si "dep" est égale à "r" alors va à "recule" si "dep" est égale à "d" alors va à "droite" si "dep" est égale à "g" alors va à "gauche" si "dep" est égale à "f" alors fin du programme ajoute 1 à la variable "pos" va à "lecture" sous-programme "avance" sous-programme "recule" etc... |
END Cette commande permet d'arrêter le programme et de mettre le microcontrôleur en veille. Sa consommation est réduite au minimum (20 µA). Exemple : | EEPROM 0,("a","g","a","d","r","f") SYMBOL dep = W0 SYMBOL pos = W1 lecture: READ pos,dep IF dep = "a" THEN avance IF dep = "r" THEN recule IF dep = "d" THEN droite IF dep = "g" THEN gauche IF dep = "f" THEN END pos = pos+1 GOTO lecture avance: ... recule: ... etc... | stocke les valeurs dans l'EEPROM à la position 0 définit la variable "dep" définit la variable "pos" sous-programme "lecture" lit l'EEPROM à la position "pos" et range la valeur dans "dep" si "dep" est égale à "a" alors va à "avance" si "dep" est égale à "r" alors va à "recule" si "dep" est égale à "d" alors va à "droite" si "dep" est égale à "g" alors va à "gauche" si "dep" est égale à "f" alors fin du programme ajoute 1 à la variable "pos" va à "lecture" sous-programme "avance" sous-programme "recule" etc... |
FOR variable=début TO fin {STEP {-}incrément} NEXT {variable} Cette instruction permet de créer une boucle d'exécution de laquelle le programme ne sortira que si le comptage est terminé. - variable est une variable utilisée en tant que compteur
- début est la valeur initiale de la variable
- fin est la valeur finale de la variable
- incrément est une valeur optionnelle qui permet de changer le pas de la boucle qui est par défaut de +1. Si incrément est précédé par le signe "-" et si début est plus grand que fin
GOSUB adresse ... RETURN Cette instruction redirige l'exécution du programme vers un sous-programme et lorsqu'il est effectué, retourne au programme d'origine. Jusqu'à 16 GOSUB sont autorisés dans un programme et ils peuvent être imbriqués jusqu'à 4 niveaux. - adresse est le nom du sous-programme
Exemple : | OUTPUT 0 OUTPUT 1 test: GOSUB allume GOSUB sonne GOTO test allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1en sortie sous-programme "test" va au sous-programme "allume" va au sous-programme "sonne" va au sous-programme "test" sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
GOTO adresse Cette instruction redirige l'exécution du programme vers un sous-programme mais n'attend aucun retour. - adresse est le nom du sous-programme
Exemple : | OUTPUT 0 OUTPUT 1 test: GOSUB allume GOSUB sonne GOTO test allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1 en sortie sous-programme "test" va au sous-programme "allume" va au sous-programme "sonne" va au sous-programme "test" sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
HIGH port Cette instruction permet de mettre un port, configuré en sortie, à l'état haut (+5V). - port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser
Exemple : | OUTPUT 0 OUTPUT 1 test: GOSUB allume GOSUB sonne GOTO test allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1en sortie sous-programme "test" va au sous-programme "allume" va au sous-programme "sonne" va au sous-programme "test" sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
IF variable ?? valeur {AND/OR variable ?? valeur...} THEN adresse Cette instruction permet d'effectuer une comparaison sur une variable et de rediriger l'exécution du programme en conséquence. ?? peut être remplacé par =, <, >, =>, =<, <>. - variable est une variable qui sera comparée à valeur
- valeur est une variable ou une constante
- adresse est le nom du sous-programme où aller si la condition est vraie.
Exemple : | EEPROM 0,("a","g","a","d","r","f") SYMBOL dep = W0 SYMBOL pos = W1 lecture: READ pos,dep IF dep = "a" THEN avance IF dep = "r" THEN recule IF dep = "d" THEN droite IF dep = "g" THEN gauche IF dep = "f" THEN END pos = pos+1 GOTO lecture avance: ... recule: ... etc... | stocke les valeurs dans l'EEPROM à la position 0 définit la variable "dep" définit la variable "pos" sous-programme "lecture" lit l'EEPROM à la position "pos" et range la valeur dans "dep" si "dep" est égale à "a" alors va à "avance" si "dep" est égale à "r" alors va à "recule" si "dep" est égale à "d" alors va à "droite" si "dep" est égale à "g" alors va à "gauche" si "dep" est égale à "f" alors fin du programme ajoute 1 à la variable "pos" va à "lecture" sous-programme "avance" sous-programme "recule" etc... |
INPUT port Cette instruction permet de configurer un port en entrée. - port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser
Exemple : | INPUT 0 OUTPUT 1 boucle : IF PIN0=1 THEN allume HIGH 1 GOTO boucle allume : LOW 1 GOTO boucle | configure le port 0 en entrée configure le port 1en sortie sous-programme "boucle" si l'entrée 0 est au niveau haut alors va à "allume" sinon met le port 1 à l'état haut va au sous-programme "boucle" sous-programme "allume" met le port 1 à l'état bas retourne au sous-programme "boucle" |
LOW port Cette instruction permet de mettre un port, configuré en sortie, à l'état bas (0V). - port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser
Exemple : | OUTPUT 0 OUTPUT 1 test: GOSUB allume GOSUB sonne GOTO test allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1en sortie sous-programme "test" va au sous-programme "allume" va au sous-programme "sonne" va au sous-programme "test" sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
OUTPUT port Cette instruction permet de configurer un port en sortie. - port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser
Exemple : | INPUT 0 OUTPUT 1 boucle : IF PIN0=1 THEN allume HIGH 1 GOTO boucle allume : LOW 1 GOTO boucle | configure le port 0 en entrée configure le port 1en sortie sous-programme "boucle" si l'entrée 0 est au niveau haut alors va à "allume" sinon met le port 1 à l'état haut va au sous-programme "boucle" sous-programme "allume" met le port 1 à l'état bas retourne au sous-programme "boucle" |
PAUSE temps Cette instruction suspend l'exécution du programme pendant un intervalle de temps défini. - temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spécifie l'intervalle de temps en millisecondes.
Exemple : | OUTPUT 0 OUTPUT 1 allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1en sortie sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
POT port,echelle,variable Cette instruction permet de mesurer une résistance variable comprise entre 5 et 50 kOhms comme un potentiomètre, une photorésistance ou une thermistance. Le port doit être connecté d'un coté de la résistance qui est connectée de l'autre à un condensateur polyester de 100nF lui-même connecté à la masse. Le Basic Stamp lit la valeur de la résistance en mesurant le temps mis par le condensateur pour se décharger au travers de celle-ci. - Port est une variable ou une constante comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser.
- Echelle est une variable ou une constante comprise entre 0 et 255 qui met à l'echelle le résultat de la mesure. Le résultat est multiplié par (echelle/256) donc une échelle de 128 réduira la zone de mesure de 50%. Pour étalonner le Basic Stamp avec une résistance particulière et trouver la meilleure échelle, utiliser l'option ALT+P décrite ci-dessous.
- Variable est une variable d'un octet qui contient le résultat de la mesure.
Etalonnage du Basic Stamp : - Pour trouver la meilleure valeur d'échelle, connectez la résistance au Basic Stamp et reliez le Basic Stamp au PC.
- Appuyez sur ALT+P lorsque vous avez lancé l'éditeur BASIC. Une fenêtre apparaît.
- La fenêtre vous demande d'indiquer quel port est relié à la résistance. Sélectionnez le port.
- l'éditeur télécharge un petit programme dans le Basic Stamp (celui-ci effacera tout programme en mémoire dans le Basic Stamp).
- Une autre fenêtre apparaît affichant deux chiffres : Scale (échelle) et Value (valeur). Ajustez votre résistance pour obtenir le chiffre le plus bas possible (Scale) si cela est possible sur votre montage, sinon gardez ce chiffre en mémoire pour l'indiquer dans votre programme.
Vous pouvez vérifier le fonctionnement de votre montage avec cette valeur en appuyant sur la barre espace. Le Basic Stamp bloque alors la valeur d'échelle affichée et passe en lecture. Si l'échelle est bonne, vous devez pouvoir ajuster votre résistance et lire des valeurs de 0 à 255, sinon recommencez l'opération en appuyant sur la barre espace. Exemple : | SYMBOL ech=255 SYMBOL val=b0 lecture: POT 0,ech,val IF val<40 THEN sonne GOTO lecture sonne: SOUND 1,(10,100) GOTO lecture | définit la constante "ech" définit la variable "val" programme principal "lecture" lit la valeur de la résistance sur le port 0 et range le résultat dans la variable si la valeur est inférieure à 40 alors va à "sonne" sinon va au programme "lecture" sous-programme "sonne" emet un son d'une durée de 100 ms sur le port 1 va au programme "lecture" |
PULSOUT port, temps Cette instruction permet d'emettre une impulsion en inversant l'état d'un port pendant un temps défini. - port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser
- temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spécifie la période de temps par unité de 10 microsecondes.
Exemple : | INPUT 0 SYMBOL roue_droite=1 SYMBOL roue_gauche=2 SYMBOL x=W0 debut: IF PIN0=1 THEN recule GOSUB avance GOTO debut avance: FOR x=0 TO 100 PULSOUT roue_droite,100 PULSOUT roue_gauche,200 PAUSE 20 NEXT x RETURN recule: FOR x=0 TO 100 PULSOUT roue_droite,200 PULSOUT roue_gauche,100 PAUSE 20 NEXT x RETURN | configure le port 0 en entrée affecte la valeur 1 à la constante roue_droite affecte la valeur 2 à la constante roue_gauche déclare la variable x sous-programme "debut" si le port 0 est à l'état 1 alors va à "recule" sinon va au sous-programme "avance" va au sous-programme début sous-programme "avance" pour x allant de 0 à 100 envoie une implusion de 1000 µs sur le port 1 envoie une implusion de 2000 µs sur le port 2 fait une pause de 20 ms x suivant retourne au sous-programme "debut" sous-programme "recule" pour x allant de 0 à 100 envoie une implusion de 2000 µs sur le port 1 envoie une implusion de 1000 µs sur le port 2 fait une pause de 20 ms x suivant retourne au sous-programme "debut" |
READ position,variable Cette commande permet de lire des données stockées dans l'EEPROM (la mémoire) du microcontrôleur et les range dans des variables. - Position est une variable ou une constante comprise entre 0 et 255 qui spécifie la position de la donnée dans l'EEPROM. Le stockage des données s'effectue dans l'ordre croissant à partir de 0 alors que le stockage du programme s'effectue dans l'ordre décroissant à partir de 255.
- Variable est une variable qui reçoit la donnée.
Exemple : | EEPROM 0,("a","g","a","d","r","f") SYMBOL dep = W0 SYMBOL pos = W1 lecture: READ pos,dep IF dep = "a" THEN avance IF dep = "r" THEN recule IF dep = "d" THEN droite IF dep = "g" THEN gauche IF dep = "f" THEN END pos = pos+1 GOTO lecture avance: ... recule: ... etc... | stocke les valeurs dans l'EEPROM à la position 0 définit la variable "dep" définit la variable "pos" sous-programme "lecture" lit l'EEPROM à la position "pos" et range la valeur dans "dep" si "dep" est égale à "a" alors va à "avance" si "dep" est égale à "r" alors va à "recule" si "dep" est égale à "d" alors va à "droite" si "dep" est égale à "g" alors va à "gauche" si "dep" est égale à "f" alors fin du programme ajoute 1 à la variable "pos" va à "lecture" sous-programme "avance" sous-programme "recule" etc... |
SOUND port,(note,durée,note,durée,...) Cette commande joue des notes de musique pendant des durées déterminées. Le port utilisé doit être connecté au plus d'un condensateur de 10µF dont le moins est relié à un buzzer piezzo dont l'autre borne est reliée à la masse. - Port est une variable ou une constante comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie utiliser.
- Note(s) sont des variables ou des constantes comprises entre 0 et 255 qui spécifient le type et la fréquence du son. La note 0 correspond au silence. Les notes 1 à 127 sont des tons ascendants. Les notes 128 à 255 sont des tons ascendants avec un grésillement.
- Durée(s) sont des variables ou des constantes comprises entre 0 et 255 qui spécifient la durée des notes.
Exemple : | OUTPUT 0 OUTPUT 1 test: GOSUB allume GOSUB sonne GOTO test allume: HIGH 1 PAUSE 1000 LOW 1 RETURN sonne: SOUND 0,(20,100,80,100) RETURN | configure le port 0 en sortie configure le port 1en sortie sous-programme "test" va au sous-programme "allume" va au sous-programme "sonne" va au sous-programme "test" sous-programme "allume" met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde) met le port 1 à l'état bas retourne au sous-programme "test" sous-programme "sonne" emet un son sur le port 0 composé de 2 notes retourne au sous-programme "test" |
SYMBOL nom_symbole=valeur Cette instruction assigne une valeur à un nouveau nom de symbole. - nom_symbole est une chaine de caractères qui doit commencer par une lettre alphabétique mais qui peut aussi contenir ensuite des chiffres.
- valeur est une variable ou une constante dont nom_symbole sera une alternative dans le programme.
Exemple : | SYMBOL compteur = W0 SYMBOL x = W1 FOR x = 0 TO 100 compteur = compteur+1 DEBUG compteur NEXT x | définit la variable "compteur" définit la variable "x" pour x allant de 0 à 100 ajoute 1 à la variable "compteur" affiche le nom et le contenu de la variable "compteur" passe au x suivant |
Date de création : 21/11/2007 @ 17:11
Dernière modification : 22/11/2007 @ 11:50
Catégorie : Langage BASIC
Page lue 7915 fois
Prévisualiser
Imprimer l'article
| Préférences
 389 membres
Connectés :
( personne )
Calendrier
Recherche
Visites
356648 visiteurs 1 visiteur en ligne
|