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
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Bonsoir a tous
pour lire un tableau j'utilise
tableau T_G_calibri_10pt ; macro : qui permets de se positionner à l'adresse demandé
tblrd* ; effectue la lecture,
movff TABLAT,Taille_Espace
tblrd*+ ;
movff TABLAT,Nbre_Colonne_Max
Cela me permet de lire mes valeurs d'init de ma police
Est il possible avec un 18f d'avoir un "système/commande" pour lire un autre tableau en même temps sans passer par des sauvegardes des adresses de TBLPTRH et TBLPTRL
J'attaque les polices et je doit jongler avec mes connaissances du 16f et intégrer tout cela
Pas facile de devenir grand
A +
Francois
pour lire un tableau j'utilise
tableau T_G_calibri_10pt ; macro : qui permets de se positionner à l'adresse demandé
tblrd* ; effectue la lecture,
movff TABLAT,Taille_Espace
tblrd*+ ;
movff TABLAT,Nbre_Colonne_Max
Cela me permet de lire mes valeurs d'init de ma police
Est il possible avec un 18f d'avoir un "système/commande" pour lire un autre tableau en même temps sans passer par des sauvegardes des adresses de TBLPTRH et TBLPTRL
J'attaque les polices et je doit jongler avec mes connaissances du 16f et intégrer tout cela
Pas facile de devenir grand
A +
Francois
Ecran LCD ILI9341 pour les nuls en assembleur
Bonsoir francois77, satinas, et tout le forum,
satinas pour ton implication et tes explications, je vais faire des tests dans Mplab 8.92, histoire de bien comprendre, ça ouvre pas mal de possibilité cette technique, il faut que j'arrive à assimilé cette méthode et surtout de bien la comprendre.
Bonne question, et voici la réponse : c'est vrai que la bank0, commence à 0x000, mais...je me suis aperçu quand mettant mes variables à 0x000 j'avais des problèmes lors de la relecture, ou stockage, je ne sais pas pourquoi....
Non, on ne peut lire qu'un seule tableau à la fois, par contre tu peux utiliser ce que tu connais sur les Pic16F
Dans cette exemple tu peux ouvrir 2 tableaux, le premier et limité à 255 caractères, quand à l'autre il y a aucune limite
Attention, toutefois sur la première méthode, il faut écrire sur un 18F comme ceci
Fait une comparaison avec un 16F tu pourras t'apercevoir qu'il y a une petite différence.
A+
satinas pour ton implication et tes explications, je vais faire des tests dans Mplab 8.92, histoire de bien comprendre, ça ouvre pas mal de possibilité cette technique, il faut que j'arrive à assimilé cette méthode et surtout de bien la comprendre. francois77 a écrit :Source du message Temps-x : dans tes programmes tu initialise les variables de la bank0 en 0X20 pourquoi ?
Bonne question, et voici la réponse : c'est vrai que la bank0, commence à 0x000, mais...je me suis aperçu quand mettant mes variables à 0x000 j'avais des problèmes lors de la relecture, ou stockage, je ne sais pas pourquoi....francois77 a écrit :Source du message Est il possible avec un 18f d'avoir un "système/commande" pour lire un autre tableau en même temps sans passer par des sauvegardes des adresses de TBLPTRH et TBLPTRL
Non, on ne peut lire qu'un seule tableau à la fois, par contre tu peux utiliser ce que tu connais sur les Pic16F
Code : Tout sélectionner
affiche_ascii
movlw HIGH(message) ; adresse du message
movwf PCLATH ;
lire_oled
call message ;
movwf lettre
;******************************************************************************************************
suite
tblrd*+ ; effectue la lecture, et ensuite incrémente TBLPTR
movf TABLAT,W ;
movwf fonts ;
Dans cette exemple tu peux ouvrir 2 tableaux, le premier et limité à 255 caractères, quand à l'autre il y a aucune limite
Attention, toutefois sur la première méthode, il faut écrire sur un 18F comme ceci
Code : Tout sélectionner
ORG H'6000' ; message
message
rlncf WREG,F
addwf PCL,F
dt " Valeur Osctune " ; ‚ 0
dt " Ecriture eeprom ok" ; ‚ 22
dt " " ; ‚ 44
dt " " ; ‚ 66
dt " " ; ‚ 88
dt " " ; ‚ 110
dt " " ; ‚ 132
dt " " ; ‚ 154
dt " " ; ‚ 176
Fait une comparaison avec un 16F tu pourras t'apercevoir qu'il y a une petite différence.
Modifié en dernier par Temps-x le ven. 17 févr. 2023 02:08, modifié 1 fois.
Ecran LCD ILI9341 pour les nuls en assembleur
Bonjour,
Maintenant que j'ai compris ce qui bloquait :)
Dans le programme de l'horloge, il y a des choses similaires.
Sans les defines, on aurait pu et dû écrire :
Maintenant que j'ai compris ce qui bloquait :)
Dans le programme de l'horloge, il y a des choses similaires.
Code : Tout sélectionner
#define FIX 1000100 ; nombre de us par seconde avec correction
#define SEC_U (FIX>>16) ; ou upper FIX
#define SEC_H ((FIX>>8)&0xff) ; ou high FIX
#define SEC_L (FIX&0xff) ; ou low FIX
...
movlw SEC_U+1 ; cpt = 1000100 + 65536
movwf cpt_u
movlw SEC_H
movwf cpt_h
movlw SEC_L
movwf cpt_l
...
Sans les defines, on aurait pu et dû écrire :
Code : Tout sélectionner
movlw (1000100>>16)+1 ; cpt = 1000100 + 65536
movwf cpt_u
movlw (1000100>>8) & 0xff
movwf cpt_h
movlw 1000100 & 0xff
movwf cpt_l
movlw (upper 1000100)+1 ; cpt = 1000100 + 65536
movwf cpt_u
movlw high 1000100
movwf cpt_h
movlw low 1000100
movwf cpt_l
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Bonjour A tous,
Panique a bas bord
j'ai un tableau de X données qui a l'origine était de la forme
DB 0x0A, 0x0B, 0x0C
DB 0x01, 0x02, 0x03
DB 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00
DB, 0x00, 0x00, 0x00
Et j'ai eu une grosse surprise car il me rajoute un 0X00 a chaque DB
Conclusion il faut que mes tableaux de données soit pair pour que cela fonctionne correctement
DB 0x0A, 0x0B, 0x0C , 0x01, 0x02, 0x03
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
Avez vous une idée ?
Satinas : je viens de voir ton sujet, je regarderais, tes macros c'est tip top pour les 16bits
A+
Francois
Panique a bas bord
j'ai un tableau de X données qui a l'origine était de la forme
DB 0x0A, 0x0B, 0x0C
DB 0x01, 0x02, 0x03
DB 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00
DB, 0x00, 0x00, 0x00
Et j'ai eu une grosse surprise car il me rajoute un 0X00 a chaque DB
Conclusion il faut que mes tableaux de données soit pair pour que cela fonctionne correctement
DB 0x0A, 0x0B, 0x0C , 0x01, 0x02, 0x03
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
Avez vous une idée ?
Satinas : je viens de voir ton sujet, je regarderais, tes macros c'est tip top pour les 16bits
A+
Francois
Ecran LCD ILI9341 pour les nuls en assembleur
Bonsoir francois77, satinas, et tout le forum,
Exact, toujours écrire par paire, les Pic18Fxxxx son plus facile quand tu connais leurs faiblesse, je voulais t'en parler, mais vu l'heure qu'il était, j'ai
préféré aller me coucher.
A+
francois77 a écrit :Source du message Conclusion il faut que mes tableaux de données soit pair pour que cela fonctionne correctement
Exact, toujours écrire par paire, les Pic18Fxxxx son plus facile quand tu connais leurs faiblesse, je voulais t'en parler, mais vu l'heure qu'il était, j'ai
préféré aller me coucher.
Modifié en dernier par Temps-x le jeu. 16 févr. 2023 19:48, modifié 1 fois.
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran LCD ILI9341 pour les nuls en assembleur
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Bonsoir a tous
Trop fort Temps-x …
Arrêt du projet ASM pour l’instant cependant je vais tenter d’expliquer mon idée sur les polices
Je définie une zone d’écriture exemple = 15pixels sur 200
15 pixel = hauteur de ma police
200 pixel = c’est la longueur de ma chaine composé de caractère +espace
Pour chaque caractère de mon texte je vais écrire de bas en haut (15pixel) * X fois la largeur de mon caractère + un espace de x pixel et ainsi de suite
Pour faire cela j’utiliserais une macro Excel qui me permet de générer mes polices
- Un fichier sur les généralités de la police
- Un fichier qui donne les adresses de chaque caractère dans un fichier des données
- Un fichier données qui contient les valeurs des caractères
Les avantages par rapport à un écran SDD1306
La couleur
La taille 360 * 240
La possibilité d’écrire du texte a une position de 1 pixel près en XY
Les inconvénients
La vitesse d’écriture et l’abandon d’un pic 16F876
Mon Ecran est toujours sur la route mais devrait arriver la semaine prochaine
Le choix du Pic
18f26k22 que j’ai en ma possession (merci Jérémy)
Possibilité de fonctionner 3.3V
Facilité de gestion sur les accès mémoire (merci Temps-x)
Facilité sur la gestion de valeurs 16Bits (Merci Satinas)
Retour sur le sujet dans quelques jours ou semaines, le temps de mettre à jours mon fichier Excel
L’inconvénient majeur du 18f , c'est le format des fichiers de données obligatoirement en pseudo 16bits
A+
Francois
Trop fort Temps-x …
Arrêt du projet ASM pour l’instant cependant je vais tenter d’expliquer mon idée sur les polices
Je définie une zone d’écriture exemple = 15pixels sur 200
15 pixel = hauteur de ma police
200 pixel = c’est la longueur de ma chaine composé de caractère +espace
Pour chaque caractère de mon texte je vais écrire de bas en haut (15pixel) * X fois la largeur de mon caractère + un espace de x pixel et ainsi de suite
Pour faire cela j’utiliserais une macro Excel qui me permet de générer mes polices
- Un fichier sur les généralités de la police
- Un fichier qui donne les adresses de chaque caractère dans un fichier des données
- Un fichier données qui contient les valeurs des caractères
Les avantages par rapport à un écran SDD1306
La couleur
La taille 360 * 240
La possibilité d’écrire du texte a une position de 1 pixel près en XY
Les inconvénients
La vitesse d’écriture et l’abandon d’un pic 16F876
Mon Ecran est toujours sur la route mais devrait arriver la semaine prochaine
Le choix du Pic
18f26k22 que j’ai en ma possession (merci Jérémy)
Possibilité de fonctionner 3.3V
Facilité de gestion sur les accès mémoire (merci Temps-x)
Facilité sur la gestion de valeurs 16Bits (Merci Satinas)
Retour sur le sujet dans quelques jours ou semaines, le temps de mettre à jours mon fichier Excel
L’inconvénient majeur du 18f , c'est le format des fichiers de données obligatoirement en pseudo 16bits
A+
Francois
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77

Passionné- Messages : 307
- Enregistré en : avril 2022
Bonjour,
Apres avoir galéré avec le format de tableaux pairs pendant quelques heures ...... pour mes fichiers de données
Passer un peut temps sur l'Asm
Je me contenterais pour ce soir, l'affichage d'un modeste "0"
Bon Week-end
Francois
Apres avoir galéré avec le format de tableaux pairs pendant quelques heures ...... pour mes fichiers de données
Passer un peut temps sur l'Asm
Je me contenterais pour ce soir, l'affichage d'un modeste "0"
Bon Week-end
Francois
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 3 invités


ici c'est ASM