Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 

Les picaxes et leur basic 4

La mémoire RAM

On a vu dans le tableau de la page 1, la mémoire RAM d'un 20M2 comporte 512 octets.

Les 28 premiers octets (bytes) sont désignés par b0 à b27, utilisables directement par le programme pour les calculs, formules, etc...

Et les autres?

Plusieurs méthodes:
  • L'adressage direct par peek et poke
La commande poke permet d'enregistrer un octet.
poke 1,12       emregistre la valeur 12 dans le byte n°1, ce qui est équivalent à b1=12

L'intérêt est de stocker temporairement des valeurs contenues dans les mémoires b0 à b27 pour les libérer et les rendre utilisables dans des calculs:
poke 30, b5  enregistre le contenu de b5 dans la mémoire 30
poke 30, b5, b6 enregistre b5 dans la mémoire 30 et b6 dans 31
Pour enregistrer des variables word, il faut écrire poke 30, word w13. w13 sera enregistré dans les mémoire 30 et 31

La commande peek opère l'opération inverse, et lit le contenu des variables RAM pour les réutiliser dans les variables b0 à b27
peek 30,b5 replace le contenu de la mémoire 30 dans la mémoire b5
 
  • L'adressage indrect par "bptr" (byte pointer)
bptr est une fonction spéciale permettant de pointer une mémoire RAM nommée @bptr
bptr est un numéro de mémoire RAM et @bptr le contenu de cette mémoire.

Voici une application de l'adressage indirecte: la moyenne glissante.
A expérimenter sur le simulateur de PE6

Principe:
On défini un tableau de 10 valeurs dans la RAM
A chaque lecture, on incremente un compteur tournant sur 10 valeurs
Chaque nouvelle valeur lue remplace la valeur la plus ancienne
On fait la moyenne des 10 valeurs du tableau

#picaxe 20M2
symbol cpt=b1
symbol cpt2=b3
symbol lect=b2
symbol somme=w12
symbol moyenne=w13

serout C.0,N2400,(254,1)    ;RAZ LCD
do
    for cpt=30 to 39         ;boucle
        readadc C.3,lect     ;lecture valeur (ADC7)
        bptr=cpt             ;indexe tableau circulaire de 0 a 9)
        @bptr=lect           ;copie valeur lue dans tableau
        somme=0              ;RAZ somme    
        for cpt2=30 to 39    ;compteur circulaire de 0 a 9
            bptr=cpt2        ;indexe tableau
            somme=somme+@bptr    ;somme des valeurs tableau
        next    
        moyenne=somme/10         ;moyenne
        serout C.0,N2400,(254,128,#moyenne,"  ")
    next
loop   


 



Créer un site
Créer un site