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 ---
- 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 ---
Modérateur : mazertoc
appel aux specialistes ASM decalage 96 bits
Bonsoir paulfjujo, satinas, et tout le forum,
et Ben figure toi que j'en suis arrivé à la même conclusion que toi, décalage par 8, ben quand on réfléchit c’est logique.
Je mets sur le forum à disposition ICI le fichier de simulation pour Proteus pour 12 matrices.
Note,.. il y a encore de la place pour y rajouter des matrices ....
A+
et Ben figure toi que j'en suis arrivé à la même conclusion que toi, décalage par 8, ben quand on réfléchit c’est logique.
paulfjujo a écrit :Source du message C'est dommage , je n'ai pas de 3em board de 4 matrice idem aux 2 presentes ,
Je mets sur le forum à disposition ICI le fichier de simulation pour Proteus pour 12 matrices.
Note,.. il y a encore de la place pour y rajouter des matrices ....
A+
appel aux specialistes ASM decalage 96 bits
- paulfjujo
Expert- Messages : 2598
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous ,
1er test defilement ... sur 2 blocs soit 8 cars avec un message de 64 cars maxi
defilement OK de tout le message ,mais bug sur le caractere entrant à droite ....
en fait il faut casser le rebouclage 64 bits, qui est sur 8 cars !
car les bits sortant ( à gauche de l'affichage =1er caractere) doivent maintenant se retrouver sur le dernier caractere à afficher ,soit sur le 64em caractere
pour corriger ce bug:
au final, je laisse perdre les bits de sortie et recadre simplement l(affichage modulo 8 cars sur la zone de 64 bytes servant au decalage
l'effet n'est pas aussi pertinent que je le voudrais ,car le 1er car (àdroite) rentre d'un seul coup au lieu de pixel par pixel
tres visible si le programme tourne tres lentement ! par contre ensuite le defilement est Ok.
sinon je vais en rester là (pour l'instant), vu qu'il me manque mon 3em bloc de 4 ..pour 12 cars..
1er test defilement ... sur 2 blocs soit 8 cars avec un message de 64 cars maxi
defilement OK de tout le message ,mais bug sur le caractere entrant à droite ....
en fait il faut casser le rebouclage 64 bits, qui est sur 8 cars !
car les bits sortant ( à gauche de l'affichage =1er caractere) doivent maintenant se retrouver sur le dernier caractere à afficher ,soit sur le 64em caractere
pour corriger ce bug:
au final, je laisse perdre les bits de sortie et recadre simplement l(affichage modulo 8 cars sur la zone de 64 bytes servant au decalage
l'effet n'est pas aussi pertinent que je le voudrais ,car le 1er car (àdroite) rentre d'un seul coup au lieu de pixel par pixel
tres visible si le programme tourne tres lentement ! par contre ensuite le defilement est Ok.
sinon je vais en rester là (pour l'instant), vu qu'il me manque mon 3em bloc de 4 ..pour 12 cars..
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
appel aux specialistes ASM decalage 96 bits
- paulfjujo
Expert- Messages : 2598
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
J'ai pu récuperer 3 autres blocs de 4 matrices 8x8 H MAX7219 que m'a remis un ami..
et les 3 sont en mode inverse .. entree DIN connecteur à droite des 3 modules ..
pour un defilement de droite à gauche , colonne par colonne ..
J'ai eu à nouveau des surprises ..
sur les 12 digits , que 8 qui défilent correctement à gauche et 9,10 ,11,12 bigornés !
en relisant tous les posts et avec la datasheet RAM BANK du 18F26K22 sous la main
adresse depart pour la zone de travail RAM 0x0016 + 96 = 0x0076
il y a telescopage au dela de 0x5F
Ce qui est étonnant, c'est que je ne l'ai pas vu avec la version precedente
2 modules 4 xmatrice dans un sens (connecteur à gauche) et le 3em bmoc de 4xMatice sens inverse (connecteur à droite)
La zone 96bits etant déclarée au meme endroit 0x0016
en fait, pourquoi avoir choisi 0x0016, car est située APRES les Regsistre dédiées au Compilateur MikroC R00 à R20
qu'il ne faut absolument pas toucher .. à moins d'etre un supercrak en ASM
et rester en Bank0 accessible de toute part.
pour une appli avec 8 matrices .. ça rentre 0x016 + 64 => 0x56 ( < 0x5F donc OK)
le Probleme est bien visible en activant le mode affichage sur terminal (au lieu des matrices )
les 8 premiers caracteres défilent bien à chaque scan, le '9' est bigorné et les autres '10','A','B' sont figés
post#73 de Satinas...donne la solution
utiliser bsr pour pointer sur un autre bloc RAM (Bank)
voir decalage 96 bits , ci dessous ,pour ne décaler qu'une seule colonne à la fois (pixel)
le programme affiche d'abord une trame fixe de 12 caracteres
puis circule en boucle de droite à gauche ..
J'ai pu récuperer 3 autres blocs de 4 matrices 8x8 H MAX7219 que m'a remis un ami..
et les 3 sont en mode inverse .. entree DIN connecteur à droite des 3 modules ..
pour un defilement de droite à gauche , colonne par colonne ..
J'ai eu à nouveau des surprises ..
sur les 12 digits , que 8 qui défilent correctement à gauche et 9,10 ,11,12 bigornés !
en relisant tous les posts et avec la datasheet RAM BANK du 18F26K22 sous la main
adresse depart pour la zone de travail RAM 0x0016 + 96 = 0x0076
il y a telescopage au dela de 0x5F
Ce qui est étonnant, c'est que je ne l'ai pas vu avec la version precedente
2 modules 4 xmatrice dans un sens (connecteur à gauche) et le 3em bmoc de 4xMatice sens inverse (connecteur à droite)
La zone 96bits etant déclarée au meme endroit 0x0016
en fait, pourquoi avoir choisi 0x0016, car est située APRES les Regsistre dédiées au Compilateur MikroC R00 à R20
qu'il ne faut absolument pas toucher .. à moins d'etre un supercrak en ASM
et rester en Bank0 accessible de toute part.
pour une appli avec 8 matrices .. ça rentre 0x016 + 64 => 0x56 ( < 0x5F donc OK)
le Probleme est bien visible en activant le mode affichage sur terminal (au lieu des matrices )
les 8 premiers caracteres défilent bien à chaque scan, le '9' est bigorné et les autres '10','A','B' sont figés
post#73 de Satinas...donne la solution
utiliser bsr pour pointer sur un autre bloc RAM (Bank)
Code : Tout sélectionner
// modif : declage ASM en Bank 0x0100
// decalage 12 digits OK
unsigned char save_bsr ; // BSR
unsigned char save_w ; //WREG
#define OFFSET 0x0100
unsigned long temps[24] absolute OFFSET; // 8 lignes de 3 x (4x8) bits = 8 lignes de 96 bits
char Bouclage absolute OFFSET+96; // uniquement pour marquage de fin
voir decalage 96 bits , ci dessous ,pour ne décaler qu'une seule colonne à la fois (pixel)
le programme affiche d'abord une trame fixe de 12 caracteres
puis circule en boucle de droite à gauche ..
Code : Tout sélectionner
UART1_Write_CText(" Clear 12 Matrices MAX7219 \r\n" ) ;
Clear_12_Matrice() ;
CRLF1();
SPI_CS=1;
CRLF1();
k=0;
do
{
UART1_Write_CText(" Test Affichage STATIQUE de 12 cars :<0123456789AB>\r\n");
strConstRamCpy(CRam1,"0123456789AB");
remplis_buffer_with_string(CRam1);
_Affiche_96bits_12_Matrices_H();
Delay_ms(2000);
UART1_Write_CText(" Affichage Buffer depuis <OFFSET=0x100h> 24 longs! \r\n");
pB=OFFSET;
// Entree= connecteur à droite
for(j=0;j<8;j++)
{ SPI_Write_To_12x7219(j+1,
*(pB+88+j),*(pB+80+j),*(pB+72+j) ,*(pB+64+j),
*(pB+56+j) ,*(pB+48+j),*(pB+40+j),*(pB+32+j),
*(pB+24+j) ,*(pB+16+j),*(pB+8+j),*(pB+j));
Delay_ms(1);
}
CRLF1();
for (j=0;j<96;j++)
{
_Affiche_96bits_12_Matrices_H();
//Affiche_12_Matrices_en_Texte_sur_Terminal();
_asm{
movffl WREG,_save_w ; sauvegarder W
movffl BSR,_save_bsr ; sauvegarder BSR
movlb 1 ; sélectionner bank1, BSR = 1
bcf STATUS,C
rlcf _temps+88,F
rlcf _temps+80,F
rlcf _temps+72,F
rlcf _temps+64,F
rlcf _temps+56,F
rlcf _temps+48,F
rlcf _temps+40,F
rlcf _temps+32,F
rlcf _temps+24,F
rlcf _temps+16,F
rlcf _temps+8,F
rlcf _temps+0,F
bcf STATUS,C
rlcf _temps+89,F
rlcf _temps+81,F
rlcf _temps+73,F
rlcf _temps+65,F
rlcf _temps+57,F
rlcf _temps+49,F
rlcf _temps+41,F
rlcf _temps+33,F
rlcf _temps+25,F
rlcf _temps+17,F
rlcf _temps+9,F
rlcf _temps+1,F
bcf STATUS,C
rlcf _temps+90,F
rlcf _temps+82,F
rlcf _temps+74,F
rlcf _temps+66,F
rlcf _temps+58,F
rlcf _temps+50,F
rlcf _temps+42,F
rlcf _temps+34,F
rlcf _temps+26,F
rlcf _temps+18,F
rlcf _temps+10,F
rlcf _temps+2,F
bcf STATUS,C
rlcf _temps+91,F
rlcf _temps+83,F
rlcf _temps+75,F
rlcf _temps+67,F
rlcf _temps+59,F
rlcf _temps+51,F
rlcf _temps+43,F
rlcf _temps+35,F
rlcf _temps+27,F
rlcf _temps+19,F
rlcf _temps+11,F
rlcf _temps+3,F
bcf STATUS,C
rlcf _temps+92,F
rlcf _temps+84,F
rlcf _temps+76,F
rlcf _temps+68,F
rlcf _temps+60,F
rlcf _temps+52,F
rlcf _temps+44,F
rlcf _temps+36,F
rlcf _temps+28,F
rlcf _temps+20,F
rlcf _temps+12,F
rlcf _temps+4,F
bcf STATUS,C
rlcf _temps+93,F
rlcf _temps+85,F
rlcf _temps+77,F
rlcf _temps+69,F
rlcf _temps+61,F
rlcf _temps+53,F
rlcf _temps+45,F
rlcf _temps+37,F
rlcf _temps+29,F
rlcf _temps+21,F
rlcf _temps+13,F
rlcf _temps+5,F
bcf STATUS,C
rlcf _temps+94,F
rlcf _temps+86,F
rlcf _temps+78,F
rlcf _temps+70,F
rlcf _temps+62,F
rlcf _temps+54,F
rlcf _temps+46,F
rlcf _temps+38,F
rlcf _temps+30,F
rlcf _temps+22,F
rlcf _temps+14,F
rlcf _temps+6,F
bcf STATUS,C
rlcf _temps+95,F
rlcf _temps+87,F
rlcf _temps+79,F
rlcf _temps+71,F
rlcf _temps+63,F
rlcf _temps+55,F
rlcf _temps+47,F
rlcf _temps+39,F
rlcf _temps+31,F
rlcf _temps+23,F
rlcf _temps+15,F
rlcf _temps+7,F
movffl _save_bsr,BSR ; recharger BSR
movffl _save_w,WREG ; recharger W
}
Delay_ms(50);
}while(1);
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 126 invités