serin, serout, inapropriés ?

BESQUEUT

Senior Member
Pour faire un tri des commandes reçues du Minitel, peut on imbriquer des ' select case ' ?
De mémoire : oui, mais limité à 4 ou 5 niveaux. Je n'arrive pas à retrouver où j'ai lu ça.
Attention, si vous faites un SELECT CASE qui distribue sur une série de GOSUB, lesquels font des SELECT CASE, il y a effectivement imbrication même si ce n'est pas visible dans le listing...
 

BESQUEUT

Senior Member
C'est un peu galère car il faut modifier le code au niveau du nom des pins ( C.4 ---> C.7 , C.2 ---> B.1, etc
D'où l'intérêt de définir des symboles pour toutes ces petites papattes...
Je rapelle que cet usage n'alourdi pas le programme, ni en taille, ni en vitesse d'éxécution : bas de la page 108 du manuel.
 

PapyJP

Senior Member
Suivant les remarques judicieuses de Besqueut ( #203 ) j' ai défini :

symbol YLED=C.0 ;Yellow Led
symbol RLED=C.1 ;Red Led
symbol GLED=C.2 ;Green Led

Le code modifié fonctionne parfaitement ( par exemple : low YLED )
Mais dans la colonne de droite de PE je trouve

Constants
YLED=8
RLED=9
GLED=10

Ce qui semble correspondre ( pour un 20M2 ) aux n° physique des legs et non plus aux noms des pins.
Me trompe-je ?
 
Last edited:

BESQUEUT

Senior Member
:DVotre remarque me semble pleine de bon sens.
En fait, le PE ne transfère pas directement le code au Picaxe. Il le pré-digère dans un langage qui n'est ni le Basic que vous écrivez, ni l'assembleur.
C'est quelque chose de proche du P-code. Pour plus de précisions (en anglais) voir :
http://elecurls.tripod.com/filz/PICAXE-ProgramSizeOptimisationAndSpeed-Rev_D-1.pdf

L'objectif est d'avoir quelque-chose qui tienne dans la mémoire du PIC et qui ne soit pas trop difficile à interpréter (1000 instructions assembleur pour une instruction Basic en moyenne quand même !) Parmis les techniques permettant à la fois de réduire la taille du code et de simplifier son interprétation, la tranformation du code d'une pin vers le numéro effectif et dépendant du modèle de PIC visé est une nécessité.
Comme le processus complet est breveté et tenu secret, il est impossible d'avoir des certitudes, mais il y a quand même de très fortes présomptions.
Je suis content que votre code fonctionne et qui plus est il me semble à la fois lisible et plus facile à porter en cas de changement de modèle de Picaxe.
Cordialement
 

PapyJP

Senior Member
Besqueut
merci de vos encouragements.
Je commence à être plus à l' aise dans mon nouvel environnement Picaxe + Basic.
J' ai encore beaucoup à apprendre de vous et des manuels et ne suis pas encore comme un ><((((°> dans l' eau.
Je ne comprenais pas comment un listing de quarante lignes en Basic
( très gourmand en lignes assembleur ) n' engendrais que l' occupation de 140 octets dans la mémoire du picaxe ( Compte rendu dans PE après téléchargement réussi ).
L' excellent article dont vous m' avez donné l' URL m' a donné la solution ( astuce géniale de Microchip ).
 
Last edited:

PapyJP

Senior Member
Besqueut
Toujours dans le cadre du ' modélisme ferroviaire ' j' envisage de disperser plusieurs picaxes comme dans votre projet en #36.
Comme le dit très justement Barbudor en #37, celà sort du sujet abordé ici.
J' ai quelques idées fort simples, peu coûteuses et, si vous voulez que nous en parlions, je vous suggère de prendre contact avec moi par la messagerie privée, seule façon, à ma connaissance, de dialoguer ensemble sur un ' hors sujet '.
 
Last edited:

PapyJP

Senior Member
Je ne trouve aucune explication sur les sfr ( spécial function registers ) dans les manuels 1 et 2.
Il existe pourtant deux instructions qui y font référence ( peeksfr / pokesfr ).
Quels sont-ils ? Que contiennent-ils ?
Existe-t-il une registre ' STATUS ' dont le bit Z indique qu' une variable vaut zéro et le bit C qui donne la valeur du ' Carry ' ?
 
Last edited:

PieM

Senior Member
Bonjour,


Le manuel est clair sur ce point:
Function:
Read data from the microcontroller special function registers. This allows
experienced users to read the on-board peripheral microcontroller settings. This
command is for M2 and X2 parts only, for other parts see the peek command.
Information:
The peeksfr command is for experienced users to study the internal
microcontroller SFR (special function registers)
.


Je trouve la question surprenante venant de quelqu'un qui programme des Pic en assembleur ...
Par définition les SFR dépendent du type du Pic constituant la base du Picaxe. Donc il faut se référer au datasheet du Pic. Comme ceux de la nouvelle série M2 ne sont pas connus, ça va être dur !
à titre d'exemple pour un 18M2 allez voir ici le remarquable travail fait par Westaust : SFR 18M2
Sinon pour un 28X2 voir ww1.microchip.com/downloads/en/DeviceDoc/41412D.pdf

Mais on s'éloigne de plus en plus du sujet ...
 

PapyJP

Senior Member
Mais on s'éloigne de plus en plus du sujet ...
Tout a fait d' accord
mais c' est une question qui me turlupine : a-t-on des ressources internes exploitables ?
Si elles existent, pourquoi s' en priver ?
... à qui poser la question ?
Je trouve la question surprenante venant de quelqu'un qui programme des Pic en assembleur ...
Pas surprenante du tout !
Ces registres ( Status, Intcon, PCL, ....) sont accessibles facilement en assembleur et sont d' une grande richesse quand on les exploite.
Voyez mon code en #52 où je teste plusieurs fois le registre STATUS sur les bits Z et C.
Merci,
C' est dommage mais n' en parlons plus.
 
Last edited:

PieM

Senior Member
Tout a fait d' accord
mais c' est une question qui me turlupine : a-t-on des ressources internes exploitables ? Oui ! voir mon post précédent : Read data from the microcontroller special function registers.
Si elles existent, pourquoi s' en priver ? Rien ne vous empêche de les utiliser
... à qui poser la question ?

Ces registres ( Status, Intcon, PCL, ....) sont accessibles facilement en assembleur et sont d' une grande richesse quand on les exploite.
La programmation en Basic du Picaxe est justement faite faite pour simplifier au maximum, l'utilisation de certains pics. Il est difficile de lui reprocher de ne pas avoir accès aux registres internes du µC, sachant qu'il faudrait en plus des dizaines de pages de documentation. Déjà qu'avec le Basic, ça n'est pas toujours très clair pour beaucoup .
Sinon pour un pro de l'assembleur, sur un Picaxe 28X2 par exemple, en se référant à la doc que je vous ai indiquée, vous trouvez la table d'adresse des SFR.

sachant que selon le manuel 2: Only SFRs associated with peripherals (e.g. ADC or timers) may be accessed. et que l'adressage est limité à 255, vous pouvez aisément en tirer les conclusions, et voir ce que vous pouvez utiliser.
 

PapyJP

Senior Member
Je sais que vous allez faire les gros yeux car ma question est absolument hors sujet !
Depuis PE je n' arrive plus à transferrer un code vers un picaxe 20M2 qui est sous tension et qui fonctionne encore avec le programme précédemment chargé. Donc, à priori, pas de pb coté picaxe. J' en ai mis un 'neuf' > même pb.

Dans PE > program > message : " matériel non trouvé sur le port COM 5.
Pourtant
dans PE > Options je trouve " COM5 ready for use AXE027 picaxe USB
et sur le PC
Informations système > composants > stockage > USB > AXE027 picaxe ( COM5 )
Le câble AXE027 est-il HS ?
Je précise que j' utilise toujours la même prise USB.

Faut-il, pour ces questions " hors sujet ", ouvrir une nouvelle discussion ?
..........PapyJP, le doyen débutant !
 
Last edited:

PieM

Senior Member
Faut-il, pour ces questions " hors sujet ", ouvrir une nouvelle discussion ?
Bonjour,
dans la mesure ou le sujet change, ce serait plus logique non ?
Sinon, choisissez comme titre du fil : PapyJP au lieu de "serin, serout, inapropriés ?"

Avoir un titre qui correspond au sujet permet par exemple de faire une recherche avec "test cable Axe027" et de trouver plein de renseignements ... sur Google et sur le forum.
 
Top