Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Tout ce qui n'a pas de catégorie !
MAX7219 et texte défilant
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#11 Message par patou149 » sam. 1 oct. 2016 16:28

Bonjour,

J'ai écrit un petit tuto en C (MPLABX et XC8) sur un programme pour afficher un texte défilant (max7219 et matrice 8*8), il facilement transposable dans un autre langage.
C'est ici : tuto

A+

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#12 Message par Gérard » sam. 1 oct. 2016 21:52

patou149 a écrit :Bonjour,

J'ai écrit un petit tuto en C (MPLABX et XC8) sur un programme pour afficher un texte défilant (max7219 et matrice 8*8), il facilement transposable dans un autre langage.
C'est ici : tuto

A+


Je vais étudier tout ça de près, déjà merci pour ton lien. Faut que je fasse marcher les neurones, j'ai une allergie au C.
J'ai rapidement lu que tu parles d'un basculement automatique heure d'été / heure d'hiver. J'ai écris une routine, si ça te dit mais c'est du Basic Mikroelektronika.

Bon WE.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#13 Message par Gérard » sam. 1 oct. 2016 21:56

Je vois que tu utilises ces modules, est ce que ton soft est compatible avec les CMS?

Merci pour ton aide.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

MAX7219 et texte défilant
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#14 Message par patou149 » dim. 2 oct. 2016 12:33

Bonjour,

Normalement oui ils sont à base de Max7219, j'ai utilisé les deux derniers modules en ma possession pour mon tuto et ma prochaine commande se portera sur des modèles CMS.


A+

MAX7219 et texte défilant
patou149
Débutant
Débutant
Messages : 35
Enregistré en : octobre 2015

#15 Message par patou149 » lun. 3 oct. 2016 20:25

Bonsoir,

Pour le plaisir j'ai adapté la routine pour faire défiler un texte sur des matrices 8*8 :

Code : Tout sélectionner


 sub procedure aff_byte
(dim data1, vitesse as byte)
     dim m, i, n, cpt as word
     for m 
= 0 to 7
         for i 
= 15 to 1 step -1
             aff_buffer
[i]= aff_buffer[i-1]
         next i
         aff_buffer
[0] = table[+ (data1 * 8)]
         n = 0
         for i 
= 8 to 1 step -1
             ecr_7219_def
(i,aff_buffer[n+8],aff_buffer[n])
             n = n+1
         next i
         for cpt 
= 0 to vitesse
             delay_ms
(1)
         next cpt
     next m
 end sub




Un petit programme de démo (version démo du compilateur, donc limitée ce qui explique la table de caractères réduite) :

Code : Tout sélectionner

' programme de test mikrobasic pour faire défiler un texte sur
'
 2 matrices 8*8 commandées par 2 Max7219
' le pic utilisé est un 18F4525 avec horloge de 16MHz externe
'
 le port SPI utilise les pins RC0 pour le ChipSelect, RC1 pour le CLK
' RC4 pour SDI et RC5 pour SDO ( le SDI n'est pas utilisé sur ce montage)
' affichage de : 0 1 2 A B C puis 1 2 A B C 0 puis 2 A B C 0 1


program max7219

'
 Declarations section 
dim ChipSelect as sbit at RC0_bit
    SoftSpi_CLK as sbit at RC1_bit
    SoftSpi_SDI as sbit at RC4_bit
    SoftSpi_SDO as sbit at RC5_bit

dim ChipSelect_Direction as sbit at TRISC0_bit
    SoftSpi_CLK_Direction as sbit at TRISC1_bit
    SoftSpi_SDI_Direction as sbit at TRISC4_bit
    SoftSpi_SDO_Direction as sbit at TRISC5_bit

dim cmpt as byte

dim aff_buffer as byte
[16]
const mes1 as byte[6] = (0,1,2,3,4,5)
const mes2 as byte[6] = (1,2,3,4,5,0)
const mes3 as byte[6] = (2,3,4,5,0,1)


const table as byte[48]=(
$
00, $7E, $A1, $91, $89, $85, $7E, $00,        ' 0
$00, $84, $82, $81, $FF, $80, $80, $00,       '
 1
$00, $82, $C1, $A1, $91, $89, $86, $00,        ' 2
$00, $FE, $21, $21, $21, $21, $FE, $00,        '
 A
$00, $FF, $89, $89, $89, $89, $76, $00,        ' B
$00, $7E, $81, $81, $81, $81, $42, $00)        '
 C


 sub procedure ecr_7219_byte
( dim donnee as byte)
    Soft_SPI_Write(donnee)

 end sub

  
'----------------------------------------------------------------
 sub procedure ecr_7219_def(dim adresse, data1, data2 as byte)
     ChipSelect = 0
     ecr_7219_byte(adresse)
     ecr_7219_byte(data1)
     ecr_7219_byte(adresse)
     ecr_7219_byte(data2)
     ChipSelect = 1
 end sub
 '
--------------------------------------------

 sub procedure efface_aff()
     dim p as byte
     for  p 
= 1 to 8
          ecr_7219_def
(p,0,0)
     next p
 end sub

'-----------------------------------------------------------------
 sub procedure aff_byte(dim data1, vitesse as byte)
     dim m, i, n, cpt as word
     for m = 0 to 7
         for i = 15 to 1 step -1
             aff_buffer[i]= aff_buffer[i-1]
         next i
         aff_buffer[0] = table[m + (data1 * 8)]
         n = 0
         for i = 8 to 1 step -1
             ecr_7219_def(i,aff_buffer[n+8],aff_buffer[n])
             n = n+1
         next i
         for cpt = 0 to vitesse
             delay_ms(1)
         next cpt
     next m
 end sub

 '
-----------------------------------------------------------------
main:

     ADCON1 = 15
     ChipSelect 
= 1                        ' Deselect DAC
     ChipSelect_Direction = 0
     Soft_SPI_Init
     ecr_7219_def($09,$00,$00)
     ecr_7219_def($0a,$00,$00)
     ecr_7219_def($0b,$07,$07)
     ecr_7219_def($0c,$01,$01)
     ecr_7219_def($0f,$00,$00)
     delay_ms(100)

     while true

           for cmpt = 0 to 5
               aff_byte(mes1[cmpt],10)
           next cmpt
           delay_ms(1000)

           for cmpt = 0 to 5
               aff_byte(mes2[cmpt],100)
           next cmpt
           delay_ms(1000)

           for cmpt = 0 to 5
               aff_byte(mes3[cmpt],250)
           next cmpt
           delay_ms(1000)

     wend


end.


Il faut bien sûr compléter le programme, ceci n'est qu'une version pour tester la procédure "aff_byte".

A+

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#16 Message par Gérard » mar. 4 oct. 2016 11:05

Hello Patou,

Je teste ça dans la semaine.
Grand merci à toi. Merci !
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#17 Message par Gérard » mer. 5 oct. 2016 21:35

Bonjour,
Je suis en train de modifier le programme, je n'ai pas de 18F4525 mais des 18F26K22.
De plus, je suis en train de décrypter ton code, j'en suis à la moitié et je comprends tout.
Conclusion : je comprends donc c'est bien écrit.
A bientôt pour les essais.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#18 Message par Gérard » mer. 19 oct. 2016 21:14

Bonjour à tous,
Je suis en train de tester le programme de Patou, je n'ai pas encore tout compris mais ça marche.
J'ai branché une matrice avec le MAX en traversant. je ferai aussi des essais avec des MAX en CMS.

Déjà un grand merci Merci ! à Patou.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

MAX7219 et texte défilant
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#19 Message par Jérémy » mer. 19 oct. 2016 21:35

Merci pour ce retour d’expérience ! Merci !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

MAX7219 et texte défilant
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#20 Message par Gérard » mer. 19 oct. 2016 21:48

Pas trop vite Jérémy, j'ai encore beaucoup de boulot. :-D
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Coin Fourre-tout »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 53 invités