Autres articles / Other articles

Gérer la communication avec le module d'affichage MAX7219

publication: 20 février 2023 / mis à jour 20 février 2023

Read this page in english

 

Appel à collaboration

Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.

Partagez-les ici sur ce site.

ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.

Vos montages peuvent aider d'autres développeurs.

Les montages des autres développeurs peuvent vous aider.

Pour proposer un article ou un montage, cliquez ici


Transmission de signaux vers le module MAX7219

La sélection du périphérique MAX7219 s'effectue à l'aide du mot MAX7219.select.

La dé-sélection du périphérique MAX7219 s'effectue à l'aide du mot MAX7219.deselect.

\ CS select for MAX7219 
: MAX7219.select ( -- ) 
    VSPI_CS LOW digitalWrite 
  ; 
 
\ CS deselect for MAX7219 
: MAX7219.deselect ( -- ) 
    VSPI_CS HIGH digitalWrite 
  ; 

Rappel: la sélection d'un périphérique s'effectue en mettant le pin pointé par VSPI_CS au niveau bas.

Une transmission de données ne peut avoir lieu qu'après avoir sélectionné le module MAX7219, ce que fait le mot MAX7219.send:

\ send two bytes to MAX7219 thru SPI port 
: MAX7219.send ( c1 c2 -- ) 
    MAX7219.select 
    SPI.write SPI.write 
    MAX7219.deselect 
  ; 

Ce mot MAX7219.send transmet deux octets: un octet de commande, un octet de donnée.

Les commandes de contrôle du module MAX7219

\ definition of MAX7219 parameters 
4 value #NB_MAX7219     \ for 32 x 8 display size 
 
\ send a command an data to MAX7219 
: MAX7219.send.command  { data command -- }   
    #NB_MAX7219 for 
        aft  data command MAX7219.send  then 
    next 
  ; 
 
\ definition of MAX7219 commands 
$00 constant _NO-OP         \ $00 
$09 constant _DECODE-MODE   \ val: $00 for led matrix  
$0a constant _INTENSITY     \ range $00..$0f 
$0b constant _SCAN-LIMIT    \ range 0..7 
$0c constant _SHUTDOWN      \ range 0|1 
$0f constant _DISPLAY-TEST  \ range 0|1 
 
: MAX7219.normal   ( -- )  
    $01 _SHUTDOWN MAX7219.send.command 
  ; 
 
: MAX7219.shutdown ( -- )  
    $00 _SHUTDOWN MAX7219.send.command 
  ; 
 
: MAX7219.intensity  { intens -- }  ( 0|1 -- ) 
    intens _INTENSITY MAX7219.send.command 
  ; 
 
: MAX7219.decode { decod -- }    ( 0 -- )   
    decod _DECODE-MODE MAX7219.send.command 
  ; 
 
: MAX7219.scan.limit { scan -- }  ( 0..7 -- )   
    scan _SCAN-LIMIT MAX7219.send.command 
  ; 

Legal: site web personnel sans commerce / personal site without seling