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
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à tous,
Je suis vraiment touché par votre participation, bien que je vous avoue être un peu à la tire sur l'ampleur du pb, je tenais surtout à vous féliciter et vous remercier de tout ce que vous faites pour moi.
Jeudi, je pars me faire opérer, je ne pourrai donc durant qq jours vous suivre dans ces passionnantes investigations.
J'espère que milieu de semaine je serais de retour
Amicalement à tous
Jean Pierre
Je suis vraiment touché par votre participation, bien que je vous avoue être un peu à la tire sur l'ampleur du pb, je tenais surtout à vous féliciter et vous remercier de tout ce que vous faites pour moi.
Jeudi, je pars me faire opérer, je ne pourrai donc durant qq jours vous suivre dans ces passionnantes investigations.
J'espère que milieu de semaine je serais de retour
Amicalement à tous
Jean Pierre
Bonjour à toute l'équipe du forum
Bonjour à tous
Je te souhaite une bonne opération, ça me laisse un peu de temps pour étudier ma stratégie pour le programme, cela sera un super exercice.
Je pense arriver à faire le programme mais cela se complique pour connaître quelles données à envoyer. Ça sera la seconde phase du programme ou nous allons avoir besoin de beaucoup de participants
Dans le dernier programme, ra0 ne clignotait pas ?
Je te souhaite une bonne opération, ça me laisse un peu de temps pour étudier ma stratégie pour le programme, cela sera un super exercice.
Je pense arriver à faire le programme mais cela se complique pour connaître quelles données à envoyer. Ça sera la seconde phase du programme ou nous allons avoir besoin de beaucoup de participants
Dans le dernier programme, ra0 ne clignotait pas ?
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à toute l'équipe du forum
c'est pas grave, nous partons sur de nouvelles base comme le préconise satinas
la commande
la macro qui va avec
et les sous routines
et c'est la que l'on sait si je vais me faire gronder
la commande
Code : Tout sélectionner
envoi_aff_16 0x1700,0x24
la macro qui va avec
Code : Tout sélectionner
envoi_aff_16 macro x1,x2
movlw (x1) / 0x100
movwf DATA_H
movlw (x1) % 0x100
movwf DATA_L
movlw x2
movwf CMD
call Envoi_data_16
endm
et les sous routines
Code : Tout sélectionner
Envoi_cmd
movf CMD,w
movwf PORTD
bcf PORTB,5 ; RB5 | 38 | S | C/D
bsf PORTB,2 ; RB2 | 35 | S | Data Write afficheur
tempo ; a determiner
return
Envoi_data_8
movf DATA_L
movwf PORTD
bsf PORTB,5 ; RB5 | 38 | S | C/D
bsf PORTB,2 ; RB2 | 35 | S | Data Write afficheur
tempo ; a determiner
bcf PORTB,2
movf CMD,W
movwf PORTD
tempo ; a determiner
return
Envoi_data_16
movf DATA_L,w
movwf PORTD
bsf PORTB,5 ; RB5 | 38 | S | C/D
bsf PORTB,2
tempo ; a determiner
bcf PORTB,2
movf DATA_H,w
movwf PORTD
bsf PORTB,2
tempo ; a determiner
bcf PORTB,2
movf CMD,w
movwf PORTD
tempo ; a determiner
return
et c'est la que l'on sait si je vais me faire gronder
Bonjour à toute l'équipe du forum
C'est tout bon, mais :)
J'aurais plutôt mis dans la macro 0x24 avant 0x1700n, la commande en premier
Les signaux write et read sont actifs à l'état bas, comme les autres afficheurs
Ne pas oublier de baisser la broche Enable avant la pulse write ou read, puis la remonter après.
je voyais plutôt des sous-programmes simples comme pour les autres afficheurs
Un premier qui envoie une commande 8 bit, un second qui envoie une data 8 bits
envoi_aff_16 fait 2 envois de datas puis envoie la commande
Les macros :
le positionnement curseur texte est directement obtenu à partir de envoi_aff_16 :
J'aurais plutôt mis dans la macro 0x24 avant 0x1700n, la commande en premier
Les signaux write et read sont actifs à l'état bas, comme les autres afficheurs
Ne pas oublier de baisser la broche Enable avant la pulse write ou read, puis la remonter après.
je voyais plutôt des sous-programmes simples comme pour les autres afficheurs
Un premier qui envoie une commande 8 bit, un second qui envoie une data 8 bits
envoi_aff_16 fait 2 envois de datas puis envoie la commande
Les macros :
Code : Tout sélectionner
envoi_aff_16 cmd,d16 (set début/largeur ram texte ou graphique,set curseur texte ou graphique)
envoi_cmd cmd (config aff)
set_cur_txt lig,col (set curseur texte)
aff_car c (affichage caractère, commande 0xc0)
le positionnement curseur texte est directement obtenu à partir de envoi_aff_16 :
Code : Tout sélectionner
set_cur_txt macro lig, col
envoi_aff_16 0x24, 0x1700+((lig)*40)+(col)
endm
Bonjour à toute l'équipe du forum
Bonjour à toute l'équipe du forum
Bonsoir nondediode, et tout le forum,
On attend avec impatience ton retour, surtout JMarc qui à hâte de voir ton LCD fonctionné.
j'espère que ton opération c'est bien déroulé.
A+
nondediode a écrit :Source du message Jeudi, je pars me faire opérer
On attend avec impatience ton retour, surtout JMarc qui à hâte de voir ton LCD fonctionné.
j'espère que ton opération c'est bien déroulé.
A+
Bonjour à toute l'équipe du forum
Bonsoir à tous,
pour donner un début de suite à JMarc (à son post du 17/11), quelques idées, c'est peut-être un peu dépassé
Je garderais les #define
peut se traduire en
ou encore
c'est un peu plus délicat pour
void Glcd_DisplayChar(char *ptr_array)
mais pas beaucoup plus et, comme le programme principal se contente d'appeler ces quelques fonctions C, ce ne devrait pas être trop difficile de faire une version ASM de cet exemple.
Cordialement
pour donner un début de suite à JMarc (à son post du 17/11), quelques idées, c'est peut-être un peu dépassé
Je garderais les #define
Code : Tout sélectionner
void Glcd_SelectPage0() // CS1=1, CS2=0
{
GlcdControlBus |= (1<<CS1);
GlcdControlBus &= ~(1<<CS2);
}
peut se traduire en
Code : Tout sélectionner
Glcd_SelectPage0 ; CS1=1, CS2=0
{
;GlcdControlBus |= (1<<CS1);
bsf GlcdControlBus , CS1
;GlcdControlBus &= ~(1<<CS2);
bcf GlcdControlBus, CS2
}
ou encore
Code : Tout sélectionner
Glcd_CmdWrite ; cmd est une variable du programme
;GlcdDataBus = cmd; //Send the Command nibble
movf cmd, w
movwf GlcdDataBus
;GlcdControlBus &= ~(1<<RS); // Send LOW pulse on RS pin for selecting Command register
bcf GlcdControlBus, RS ; met la pin RS à l'état bas (ce n'est pas un pulse
;GlcdControlBus &= ~(1<<RW); // Send LOW pulse on RW pin for Write operation
bcf GlcdControlBus, RW
;GlcdControlBus |= (1<<EN); // Generate a High-to-low pulse on EN pin
bsf GlcdControlBus , EN
; delay(100) ; à traduire par un call delay100 par exemple
;GlcdControlBus &= ~(1<<EN);
bcf GlcdControlBus , EN ; là on a bien généré un pulse
delay(1000);
delay100
movlw .100
movwf compteur
delay100_1
decfsz compteur
goto delay_1
return
c'est un peu plus délicat pour
void Glcd_DisplayChar(char *ptr_array)
mais pas beaucoup plus et, comme le programme principal se contente d'appeler ces quelques fonctions C, ce ne devrait pas être trop difficile de faire une version ASM de cet exemple.
Cordialement
Bonjour à toute l'équipe du forum
Bonjour,
Au fait il est où, JMarc, il aurait pas viré au jaune :)
Il faudrait savoir ce que nondediode veut faire exactement avec cet afficheur.
- Afficher du texte stocké en rom, ou en ram, ou les deux ?
- Si on affiche des valeurs numériques, de quelle type ?
- On se limite à la police en rom (8 lignes de 40 caractères) ou on ajoute d'autres polices bitmap ?
- Faire du graphique ou pas, et si oui de quel type, tracé ou image bitmap ?
Une bibliothèque qui fait tout, c'est du boulot, surtout pour le graphique. Par contre, écrire quelques textes avec la police en rom, ça se fait vite.
La séquence d'initialisation de l'afficheur figure dans le datasheet :
Au fait il est où, JMarc, il aurait pas viré au jaune :)
Il faudrait savoir ce que nondediode veut faire exactement avec cet afficheur.
- Afficher du texte stocké en rom, ou en ram, ou les deux ?
- Si on affiche des valeurs numériques, de quelle type ?
- On se limite à la police en rom (8 lignes de 40 caractères) ou on ajoute d'autres polices bitmap ?
- Faire du graphique ou pas, et si oui de quel type, tracé ou image bitmap ?
Une bibliothèque qui fait tout, c'est du boulot, surtout pour le graphique. Par contre, écrire quelques textes avec la police en rom, ça se fait vite.
La séquence d'initialisation de l'afficheur figure dans le datasheet :
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 68 invités