Home › Forum › Microcontrôleurs & microprocesseurs › PIC SIMULATOR IDE de OSHON SOFT

Forum

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Sujet: PIC SIMULATOR IDE de OSHON SOFT

Auteur Message

JOSEPH4

6 messages

De passage
De passage

Read post 23-01-2009 20:08

Bonjour,
Je viens de faire l'acquisition de ce soft depuis quelques semaines.
La première chose que j'ai fait, afin de me familiariser avec cet environnement, c'est de traduire le mode d'emploi à partir de l'aide (en anglais) et d'un tutorial (en espagnol) trouvé sur le net.
Mais ma méconnaissance de l'assembleur fait qu'il doit y avoir pas mal d'inexactitudes.
Pour l'instant je cherche quelqu'un maîtrisant ce soft, car je butte sur la concaténation de variables.
Merci.

YMasquel

2503 messages

Expert
Expert

Read post 23-01-2009 22:57

Bonjour André,

PIC SIMULATOR IDE est essentiellement un outil de simulation. Le BASIC qui l'accompagne est minimaliste et, même s'il permet de réaliser des développements intéressants, conserve une optique qui considère ces contrôleurs comme limités ce qui n'est plus le cas maintenant.
La concaténation est utilisable dans des instructions bien particulières comme l'affichage sur LCD par exemple.
Maintenant il faut se demander premièrement s'il est vraiment nécessaire de concaténer des variables en mémoire car je suppose que c'est le point qui te chagrine et, si c'est un impératif, s'il n'y a pas d'autre solution que la concaténation pour stocker des données qui se suivent en mémoire.
Définir une suite de variables destinées à recevoir les éléments composant un message peut être une solution mais pas élégante à utiliser (peu souple).

Amicalement, Yves.

JOSEPH4

6 messages

De passage
De passage

Read post 24-01-2009 11:04

Bonjour Yves,
Merci pour ta réponse rapide.
Tu confirmes un peu l'idée que j'avais de cet environnement. Sa conception est assez alléchante, car pouvoir développer à base d' "Eblocks virtuels" sans avoir à sortir la planche à pain ou le fer à souder c' est agréable non...?
J'expose quand même l'idée de mon projet:
Me basant sur la data sheet de l' EDE 1188 de JAMECO; Je souhaiterais développer un encodeur de clavier. Ce que je reproche à cet EDE c'est:
1- son bus de liaison.
-soit série (et si le micro récepteur n'en posséde qu'un ...?); plus moyen d'utiliser une puce GPS ou un modem téléphonique sauf multiplexage complexe, par exemple).
- Soit parallèle (8 broches confisquées !). Pourquoi pas du I2C ou du SPI entre autres.
2- Que cet encodeur n'envoie que des codes, fonction de la touche pressée, au micro de faire tout le boulot.
Si je veux créer une touche Bksp (pour les gros doigts ! ) ou une touche de fonction style IF xxx = F8 Then GOSUB vas faire le café. Cela risque de prendre quelques lignes de programme, d'où perte de place en mémoire et perte de "temps machine" pour le micropros récepteur.
Je pense que si ledit micropros pouvait recevoir,soit des caractères, soit des strings directement exploitables ( ou presque) grâce a une touche Enter, ça lui marcherais le travail.
Amicalement.
Salutations à toi et à tous les lecteurs, André.

Modifié par JOSEPH4 le 24-01-2009 11:07

Modifié par JOSEPH4 le 24-01-2009 11:09

YMasquel

2503 messages

Expert
Expert

Read post 24-01-2009 23:16

Bonjour André,

Voilà qui cadre un peu mieux ce que tu souhaites (si je comprends bien) :
- un contrôleur de clavier d'une part pouvant envoyer du texte créé par les appuis successifs sur le clavier au moment où tu enfonces la touche "enter", qui gère les back-space et d'autres fioritures du même genre;
- un autre contrôleur qui, lui, est le véritable centre d'un montage quelconque qui recevrait ces données texte et réaliserait des fonctions en conséquence;
- une liaison comportant le minimum de fils pour économiser les ports et, si possible, épargner les "modules" intégrés de communication série que tu souhaites réserver aux fonctions "nobles".

Le problème principal que je vois sur cette approche est que tu devras certainement utiliser des contrôleurs disposant de bonnes réserves de mémoire vive (pour traiter du texte il faut pouvoir le stocker et l'analyser) alors que les PIC de la gamme "MID RANGE" (PIC 12 à 18) sont plus équipés de mémoire programme que de mémoire vive et qu'il est donc plus facile de consommer du code que de la RAM. Ensuite si tu penses que le fait d'écrire une instruction de type if message ="il est huit heures le matin, il faut faire le café" then goto faire_le_cafe est économique en code généré et en place mémoire vive utilisée je crois que tu devrais regarder le résultat de compilations de n'importe quel BASIC pour PIC pour te convaincre du contraire.

Un STRING n'est pas plus exploitable qu'un code quelconque et il est plus important de créer un vocabulaire commun entre les contrôleurs utilisés avec des "MOTS" constitués d'un seul caractère (code). Avec une taille d'un seul caractère tu disposes de 256 mots différents utilisables entre 2 contrôleurs et il n'est pas nécessaire de parler un vocabulaire commun avec un possible troisième ou nième contrôleur puisque ses fonctionnalités seront probablement différentes donc les codes utilisés pourront signifier des "MOTS" différents.

Amicalement, Yves.

JOSEPH4

6 messages

De passage
De passage

Read post 25-01-2009 22:24

Bonjour Yves,
Je crois que je me suis mal expliqué.
Loin de moi l'idée de faire du traitement de texte sur microcontrôleur.
J’aimerais seulement un clavier minimal d’une cinquantaine de touches (26alphabet,10 chiffres, enter, space , bakspace, quelques caractères du genre point, +, et F0, F1 .....).
Ce clavier, branché sur une application, me permettrais de répondre à des questions posées par l’affichage de l’application.
Par exemple lors de l’initialisation dans une application thermostat.
A la question TEMP. MIN ? , par l’intermédiaire du clavier j’envoie « 15 », efface la mémoire du micropros clavier et attend la question suivante, TEMP MAX ? à laquelle je répond et terminé. Ceci pour éviter les habituels boutons flèche haut, flèche bas, flèche droite ... qui incrémentent, décrémentent et valident une valeur. D’autre part ça évite d’avoir à reprogrammer le micro de l’application si je désire maintenant 15.5 ° et que le pas d’incrémentation initial est de 1.
Autre exemple:
Toujours le même clavier branché sur une application GPS logger avec carte SD; peut renseigner le micro centre de l’application FICHIER ENREG. ? > TOTO.TXT; NOM DU POINT ? > PONT; INTERVALLE ENREG ? > S25 que le micro pourra interpréter comme « toutes les 25 secondes » ou M10 que le micro interprétera comme « toutes les 10 minutes » etc.
Sur une application modem téléphonique ce clavier permettrait d’entrer le numéro de téléphone auquel transmette le SMS d’alarme ou le SMS de position.
Quand aux touches de fonction, l’envoi de « F0 » ou « F(x) » pourrait déclencher le début d’un processus défini par l’utilisateur sur une application ou celui d’un autre complètement
différent sur une autre appli.
Pour le problème mémoire vive je pense faire des essais pour voir jusqu’à combien de caractères je puis monter.
Mais rappelons nous que la première question était peut-on concaténer des variables sous PIC SIMULATOR ? . Apparemment la réponse est NON. Donc je vais me retourner vers CUBLOC Studio ou PICbasic studio(???) (les modules sont plus chers) ou MIKROBASICA (Dommage, je n’ai pas ma platine avec moi, ça va m’obliger à faire un tour en province, par le temps qu’il fait !)
Encore Merci et a +
Amicalement André.

Modifié par JOSEPH4 le 25-01-2009 22:26

YMasquel

2503 messages

Expert
Expert

Read post 25-01-2009 23:00

Bonjour André,

La réponse est NON effectivement mais rien n'empêche de réserver une zone de mémoire sous la forme DIM TOTO(10) AS BYTE pour réserver une suite de 10 caractères, de programmer ton contrôleur de clavier pour réaliser les opérations en fonction des codes émis par le clavier, y compris back-space ou autre, puis de réaliser la routine pour envoyer la suite de caractères l'un à la suite de l'autre lorsque la touche est un retour chariot via les fonctions SPI ou I²C.

Attention toutefois aux claviers "intelligents" qui, comme le clavier d'un PC, envoient un nombre variable de caractères en fonction de la touche pressée, il faut en prévoir la gestion.

Amicalement, Yves.

UrsusDom

3 messages

De passage
De passage

Read post 25-12-2009 18:08

Bonjour à tous,

a tout hasard, la version de PocSimulator IDE (v6.80) dispose d'une fonction Pointer, qui permet de manupulmer aisément des chaines concaténées.

Any variable that is declared as a Byte or Word variable using Dim statement can be used as a pointer to user RAM memory when it is used as an argument of POINTER function. The value contained in the variable that is used as a pointer should be in the range 0-511. Here is one example:
Dim x As Word
Dim y As Byte
x = 0x3f
y = Pointer(x)
y = y + 0x55
x = x - 1
Pointer(x) = y
y = 0xaa
x = x - 1
Pointer(x) = y

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

Elektor 6/2012 en kiosque

Elektor-Hebdo gratuit !

Mon adresse électronique :

Unités de crédit Elektor

Nos blogs-ateliers