|
|
|
Exercice 2-1
Réponse 2.1 |
|
|
Dim
Variable
as String*21
- ici
20 caractères
maximums
sont réservés dans
la chaîne
nommé
Variable
- la
dernière
position
ici
21 ième
position est réservée en
Proton
pour
la valeur
0 qui détermine
la
fin
de la chaîne. |
Concaténation de
Variables |
Right$ , Left$
, Mid$
, Len |
Exercice
2-1 :
-Déclarez
une variable Prenom
de longueur
appropriée.
-Déclarez
une variable Nom
de longueur
appropriée.
-Déclarez
une variable Prenom_Nom
de longueur appropriée
- Chargez votre
Variable
Nom avec votre
nom.
Idem
avec votre
prénom
- Concaténation de
votre prénom
et
nom
dans la variable
Prenom_Nom
en utilisant
les variables
Prenom
et Nom
pour ce
faire.
- À partir
seulement
de la variable
Prenom_Nom
:
- Imprimer
sur
une
ligne
votre
Prénom
et Nom
- Imprimer
sur
une autre
ligne
votre Nom
et Prénom
- Imprimer
à la verticale sur
l'écran
en première
colonne votre prénom
et nom
et dans
la deuxième
colonne
la même
chose mais
en commençant
à la fin.
- Imprimez
votre
prénom
et nom , à la verticale
cette fois
à la
diagonale.
- Imprimez
votre
prénom
et nom à l'horizontale
avec 1 espace
entre chaque
lettre. |
|
|
|
Exercice 2-2
Réponse 2.2 |
|
ToUpper
( majescules)
,
ToLower
( minuscules
)
-
Peut-être
utilisé
avec des caractères
directement
à l'intérieur
de guillemets.
- Peut-être
utilisé
avec des variables
chaînes.
- Peut-être
utilisé
avec l'adresse
d'une variable
chaîne.
- Peut-être
utilisé
avec les données enregistrées
en mémoire
Flash
- Suite
à des tests récents,
il appert que
les variables
sources
soient
modifiées
suite à
l'exécution
de cette fonction.
Une
demande
de correction a été
logée
au concepteur. Prenez
vos précautions. |
Exercice
2-2 :
- À la
suite
de l'exercice
précédant et en
utilisant
les variables chaînes
Prénom
et Nom
, imprimez
sur
l'écran
votre prénom
et votre nom.
Le prénom
doit
être en caractères
minuscules
et le
nom
en majuscules. |
|
|
|
|
Partie
3 :
Diverses
instructions. |
|
|
Exercice 3-1
Réponse 3-1 |
|
Array
(un
Ensemble
ou un
Tampon
(
buffer)
: Dim
Var1[nombre
d'éléments]
as Byte
Dim
Var1[nombre
d'élements]
as
Word
ex. : Dim
Var1[2] as
byte
-
pour
limiter
un nombre
de d'éléments
: ex. :
5 elements
: Hrsout
Str
Var1\5
même
si l'ensemble
est prévu pour 10 éléments. |
Exercice
3-1
-Créez
un tampon
du nom de
Var1
de 4 éléments
de 1 octet
- la
première
cellule
contient
la valeur
200
- la
deuxième
cellule
contient
la valeur 50
- la
troisième
cellule
contient
la valeur
6
- la
quatrième
cellule
contient
la somme
des trois
autres.
- Sur votre
écran
imprimez
les valeurs des 4 cellules
en les
identifiant.
- sautez 2 lignes
- la
troisième
cellule
contient plutôt
5
- refaites
le
même
calcul à la suite
et réimprimez
comme
à la première
partie.
Quels
sont vos conclusions? |
|
|
|
Excercice 3-1a
Réponse 3-1a |
|
Exercice
3-1a
Même
programme
que 3-1 , mais on change
Var1
pour
être une
variable
mot
(
Word
) |
|
|
|
Exercice 3-2 Réponse
3-2 |
|
Str :
modificateur
de type
chaîne
pour
Array
( ensemble
)
Str$
:
convertir
une valeur numérique
décimal,
hex , binaire
ou flottant
en Chaîne
ex. :
Str
Ensemble_octet
=
Str$
(Modificateur
,
Variable)
ou
String
=
Str$
(Modificateur
Variable)
Strn :
charger
et convertir
un Array
( Ensemble
) à une pseudo
Chaîne
terminée
par 0. ex. : Strn Ensemble_octet
=
Item
Ensemble_octet
est un
array
Item
:
une
commande
Strn
ou
commande
Str
ou
commande
Str$
ou
"Chaîne" |
Exercice
3-2
- Créez
un ensemble
Var1
de 10 éléments
de 1 octet. ( Dim
Var1[10]
as byte )
- Créez
un ensemble
Var2
de 10 éléments
de 1 octet ( Dim
Var2[10]
as byte )
- Set
Var1
et
Var2
- Créez
un pseudo chaîne
avec
Var1
qui contiendrait
« Salut
» et
qui n'utiliserait
pas
Strn. |
|
|
Exercice 3-2a
Réponse 3-2a |
|
- Créez
un pseudo chaîne
avec
Var2
qui contiendrait
« Bonjour
» et qui
utiliserait
Strn.
- Imprimez
le contenu des
deux variables
- Imprimez
la valeur
numériques
de chacun des octets de
Var1
et
Var2
, en séparant
les
valeurs
par des virgules
ou une espace. |
Exercice
3-2a
- 2 ensembles
Var1
et
Var2
de 10 élements
chacun
- Set
Var1
et
Var2
- Charger
la
valeurs
de 125 dans dans
la
première
cellule
de
Var1
- Convertir
en pseudo
chaîne dans
Var2
-Imprimez
Var1
et
Var2
-Ensuite
imprimez
la
valeur
numérique
de chacune des cellules
Var1
et
Var2
, en séparant
les valeurs par
une virgule.
-Que
remarquez-vous,
vos conclusions? Note 1 :
les
valeurs
255 viennent
de Set
Note 2 : la valeur
125 requiert
1 octet , la chaîne 125
requiert
4 octets incluant
le 0. |
|
|
|
Exercice 3-3
Réponse 3-3 |
|
VarPtr
- Pour
lire
l'adresse
d'une variable en Sram
ou l'adresse d'une étiquette
pour le
Data en Flash C'est
souvent utilisé
pour faire
des copies par
indirection.
Ex
Origine
et Destination
: 2 variables chaînes
et Addr : variable
numérique
Word
Addr
=
VarPtr
(Origine)
Destination
=
Addr ;
Indirection
: Addr contient l'adresse de Origine |
Exercice
3-3
- Soit 1 variable
Addr
d'un octet qui
contiendra
l'adresse de
Var1
- Soit 2 variables
chaînes
Var1
et
Var2
de 10 éléments
chacun qui contiennent
respectivement
les données «
Salut » et « Bonjour ».
- Imprimez
le contenu de
Var1 et
Var2
- Copier
le
contenu de
Var1 vers
Var2
en utilisant
l'adressage indirect
pour
pointer vers
Var1 au
lieu
de son nom.
Imprimez
de nouveau
le contenu de
Var1
et
Var2
Note :
Voir
l'exemple
dans
l'exercice,
en utilisant
la
variable
chaîne accompagnée d'un
indice,
on peut
examiner
chacun des octets de
la chaîne
Var1
et
Var2 |
|
|
|
Exercice 3-3a
Réponse 3-3a |
|
Exercice
3-3a Démonstration
seulement
:
Avec
2 ensembles
déclarées
:
On
essait de copier
un pseudo
Chaîne à un autre par
adressage
indirect.
Copie d'un ensemble
pseudo chaîne à un autre à l'aide de l' addressage indirect..
; **********Ça
ne FONCTIONNE PAS****************** donc
; *******en
addressage indirect n'utilisez que des chaînes********
; *******
la copie direct en pseudo Chaîne fonctionne très bien
cependant
**********
|
|
|
|
Exercice 3-4
Réponse 3-4 |
|
HRSIN
- 2 formats
-
Var1
=
HRSIN
, { temps
de
dépassement
, Étiquettes
de
temps
de
dépassement}
-
HRSIN
{
temps
de
dépassement
, Étiquettes
de temps
de
dépassement}
, Modificateur
,
Variable
-
temps
de
dépassement
-
Modificateurs
: Dec(n)
,
Hex(n)
,
Bin(n)
,
Skip
(n)
,
Str
Array
,
Wait
("
recherché
")
-
Variables
: Byte
, Byte
en Array,
Word |
|
Exercice
3-4 :
- Créer
un tampon
de 10 éléments.
- À partir
du clavier, vous tapez
un certain nombre
de caractères qui
seront
imprimés
à l'écran . Cependant
aucun caractère ne
sera enregistré
tant que
le
mot
de passe
« coco » ne soit
tapez
au clavier.
Le
mot
de passe ne doit
pas s'afficher
à l'écran.
Mettre le
terminal
en mode
Half
Duplex
au début. Cliquez
dans
l'écran
noir
pour transmettre
les caractères. |
|
|
|
Exercice 3-5
Réponse 3-5 |
|
Val
: conversion
d'un digit alphanumérique
en numérique
Variable
=
Val
(Ensemble
variable
ou
chaîne,
modificateur)
variable
==> variable
ensemble
ou
chaîne
modificateur
==> Dec
ou
Hex
ou
Bin |
Exercice
3-5 :
Soit 2 variables
Chaînes
:
Var1
= "36" et
Var2
=
"64" et une variable
numérique
Var3
On
veut voir apparaître
à l'écran : 36 +
64 = 100
La valeur
100 doit
être calculée
et provient de
Var3 |
|
|
|
Exercice 3-6
Réponse 3-6 |
|
Break
et
Goto
:
Sortie
prématurée
d'une boucle
en exécution. |
Sound |
Select
Case
…. Endselect |
Exercice
3-6
Entrez
un chiffre
au clavier
et faites
un son au nombre
de fois
représenté par
le chiffre
entré au clavier.
Il faut
rejeter,
les entrées non
acceptables. Il
faut transformer
le
code ascii
dans
le but d'obtenir une valeur
numérique réelle
pour
utilisation
dans
le programme. |
|
|
|
Exercice 3-7
Réponse 3-7 |
|
Exercice
3-7
Biscuits de
fortune
Proton
En utilisant des chiffres
ou des lettres sélectionnés
sur
le clavier
que vous aurez
préparés et
annoncés sur
l'écran.
Demandez
à l'utilisateur
de faire
un choix
. Si un choix
est judicieux
selon ce que vous
avez annoncé
en préambule
alors
imprimez
sur
l'écran
la
phrase type
« Biscuit
de fortune
» .
Préparez
au moins
4 phrases en utilisant
obligatoirement
l'instruction
Select
Case
…. Endselect. |
|
|
|
|
Écriture
en mémoire
Flash et
EEPROM
Écriture
en
Flash
Ldata
(utilisant
le
mnémonique
Retlw
en assembler)
-
Bien positionner
Ldata
mettre
à la
fin du programme
ou sauter
par dessus.
Etiquette:
Ldata
"Bonjour"
Lread , Lread8
, Lread16 , Lread32
Cdata
- Bien positionner
Cdata : mettre
à la fin
du programme
ou sauter
par dessus.
Ex
:
Etiquette:
Cdata
"Bonjour"
Cwrite
, Cread , Cread8 , Cread16 ,
Cread32
Attention
à ne pas écrire un nombre
de fois
exagéré avec
Cwrite
, car pas bon pour la santé
de votre
micro.
|
|
|
Edata
Écriture
en EEPROM
( 256
octets
max pour
le
18F4550
)
- À placer au début
du programme
, n'est pas
affecté
par le
code en Flash
car le
code généré
est placé en
EEPROM.
- Etiquette
Edata
"Bonjour"
Ewrite
,
Eread
Attention
à ne pas écrire un nombre
de fois
exagéré avec
Ewrite
, car pas bon pour la
santé de
votre micro.
|
|
|
|
Exercice 3-D Réponse 3-D |
|
Swap |
Exercice
3-D
Vous
avez en
mémoire
Flash à
l'étiquette
« Chiffres
» les
données suivantes
( mettre
dans l'ordre
proposé) : 51 33 65
44 89 01 . Imprimez
sur écran dans l'ordre
croissant
ces mêmes
chiffres.
Proposition
: Array
, Swap , technique
Bubble Sort
|
|
|
|
Exercice 3D-a Réponse 3D-a |
|
Exercice
3-D-a
Objectif: Placez des nombres en EEPROM , les copier dans un
tampon ( array) en Sram , les trier par buble sort , et
imprimer les nombres avant et après le TRI.
|
|
|
|
Exercice 3-E révision 1 Réponse 3-E
révision 1 |
|
Exercice
3-E
révision 1
Faire un tri par nombre de caractères et ensuite un tri alphabétique.
Il est intéressant de comparer les deux tris au niveau des
résultats. Une sortie de quelques caractéristiques a été
prévue vers le LCD 4X20. Cependant le terminal donne tous
les résultats et caractéristiques. Fait intéressant l’ajout
du tri par nombre de caractère a nécessité que peu de code
supplémentaire mais plutôt un réajustement du code. Il y a
toujours le même nombre de sous routines que la version
précédente. Comme toujours après compilation et
programmation , il reste 10 secondes pour connecter le
terminal ( Serial Com) et de l’ouvrir plein la fenêtre. Le
programme attendra une action subséquente de l’utilisateur
pour passer au prochain tri. Si on manque notre coup ,
Connecter le terminal et pesez reset sur le Olimex et
attendre 10 secondes comme à l’habitude.
Note 1: On peut modifier à sa guise les mots ou en ajouter à
sa guise en autant que les critères décrites au programme
sont respectés.
Note 2: Il est tout à fait plausible que tout ce programme
avec peu de modifications devienne une sous routine à être
subordonnée à un autre programme principal.
|
|
|
|
|
Problème avec AVAST |
|
|