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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#51 Message par nondediode » mar. 27 nov. 2018 09:23

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

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 601
Enregistré en : août 2016
Localisation : Dans le Sud...

#52 Message par JMarc » mar. 27 nov. 2018 19:00

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 :roll:

Dans le dernier programme, ra0 ne clignotait pas ?

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#53 Message par nondediode » mar. 27 nov. 2018 19:04

Bonsoir Jean Marc,

Non RA0 ne clignotait pas.

Bonne soirée

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 601
Enregistré en : août 2016
Localisation : Dans le Sud...

#54 Message par JMarc » mar. 27 nov. 2018 20:13

c'est pas grave, nous partons sur de nouvelles base comme le préconise satinas


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 humour!! dehors!!

Bonjour à toute l'équipe du forum
satinas
Confirmé
Confirmé
Messages : 681
Enregistré en : novembre 2015

#55 Message par satinas » mar. 27 nov. 2018 21:20

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 :

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
JMarc
Confirmé
Confirmé
Messages : 601
Enregistré en : août 2016
Localisation : Dans le Sud...

#56 Message par JMarc » mar. 27 nov. 2018 22:46

Un grand merci satinas pour ces corrections, demain soir je change l’ordre commande/data, le sens d’activation des lignes de commande, rajout de la commande enable. Pour le reste nous sommes arrivés aux limites de mes connaissances mais je vais l’étudier de près

Je me régale Merci !

Bonjour à toute l'équipe du forum
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1780
Enregistré en : juillet 2016
Localisation : Terre

#57 Message par Temps-x » dim. 2 déc. 2018 18:04

Bonsoir nondediode, et tout le forum,

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é. :wink:

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Bonjour à toute l'équipe du forum
JJE
Passioné
Passioné
Messages : 399
Âge : 80
Enregistré en : novembre 2017
Localisation : Picardie

#58 Message par JJE » lun. 3 déc. 2018 18:07

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

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
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Bonjour à toute l'équipe du forum
satinas
Confirmé
Confirmé
Messages : 681
Enregistré en : novembre 2015

#59 Message par satinas » lun. 3 déc. 2018 18:36

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 :
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 601
Enregistré en : août 2016
Localisation : Dans le Sud...

#60 Message par JMarc » mar. 4 déc. 2018 05:44

Bonjour tout le monde

La vie est étrange, plus une seconde de libre, même pas mis en route l’ordi Depuis une semaine mais j’ai imprimé le datasheet :-D

Bon rétablissement à nondediode


Retourner vers « Langage ASM »

Qui est en ligne

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