​ ​ ​ ​ Caractères Perso créés par le programme Maître ?
Results 1 to 5 of 5

Thread: Caractères Perso créés par le programme Maître ?

  1. #1
    Member
    Join Date
    Apr 2014
    Location
    Liège (French Belgium)
    Posts
    83

    Default Caractères Perso créés par le programme Maître ?

    Bien le Bonjour à la Communauté,

    Est-il possible, au besoin, de créer de nouveaux caractères graphiques personnalisés (dans la CGRAM) par le code se trouvant dans le programme principal, et sans faire appel aux données se trouvant dans l'EEPROM qui, elle, a été programmée (et ne serait pas modifiable par le Master programme ?) dans le Picaxe de l'interface Serie AXE 133-4 ?

    J'essaye ce code, mais il ne fonctionne pas:

    Code:
    'Custom Graphic Character in CG6
    
    Serout Display,Baud,(254,70) 'Addressing CGRAM CG 6 (CG Address + 64)
    Serout Display,Baud,($10,$1B,$11,$11,$11,$11,$11,$1F)  'Data for Battery Level 0 in CGRAM6
    Serout Display,Baud,(254,128)  'Reinit Address DDRAM
    
    ' Call CG6
    Serout Display,Baud,(254,136)  'Line1 Col9
    Serout Display,Baud,("CG6= ",6)  'CG6 ---- > NOTHING !!!
    Merci.

    (Aussi posté sur le forum GB)

  2. #2
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,460

    Default

    Quote Originally Posted by zorgloub View Post
    Bien le Bonjour à la Communauté,

    Est-il possible, au besoin, de créer de nouveaux caractères graphiques personnalisés (dans la CGRAM) par le code se trouvant dans le programme principal, et sans faire appel aux données se trouvant dans l'EEPROM qui, elle, a été programmée (et ne serait pas modifiable par le Master programme ?) dans le Picaxe de l'interface Serie AXE 133-4 ?

    J'essaye ce code, mais il ne fonctionne pas:

    Code:
    'Custom Graphic Character in CG6
    
    Serout Display,Baud,(254,70) 'Addressing CGRAM CG 6 (CG Address + 64)
    Serout Display,Baud,($10,$1B,$11,$11,$11,$11,$11,$1F)  'Data for Battery Level 0 in CGRAM6
    Serout Display,Baud,(254,128)  'Reinit Address DDRAM
    
    ' Call CG6
    Serout Display,Baud,(254,136)  'Line1 Col9
    Serout Display,Baud,("CG6= ",6)  'CG6 ---- > NOTHING !!!
    Merci.

    (Aussi posté sur le forum GB)
    Bonjour,

    Les 8 premières mémoires de la CGRAM sont programmables.
    Voici une page où j'ai ajouté des accentués français dans un LCD chinois, avec interface I2C, mais avec interface série, c'est pareil.
    http://electromag1.wifeo.com/lcd-i2c...ur-pcf8574.php

    Avant, j'avais fait aussi pour un LCD série.
    http://electromag1.wifeo.com/fabriqu...un-picaxe-.php

    MM
    Last edited by MGU; 09-09-2017 at 08:46.

  3. #3
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,460

    Default

    Bonjour,

    L'erreur vient du fait que les caractères sont enregistrés par bloc de 8 octets.

    Le premier caractère "0" est bien en 64, mais le "1" est 8 octets plus loin, en 72, etc

    Voici un bout de code pour programmer ces 8 caractères spéciaux (j'ai repris des accentués français) à partir d'un programme quelconque, sur un LCD quelconque.
    Ici, le résultat affiché sur les deux lignes d'un LCD1602

    Code:
    ;caractères spéciaux
    #picaxe 08M2
    #no_data
    symbol baud= N2400_4
    
    pause 500 'Petite pause pour le temps d'initialisation LCD. mini=200ms
    
    serout C.4,baud,(254,64)	'cgram 0
    serout C.4,baud,(10,0,14,17,31,16,15,0)     ;ë
    serout C.4,baud,(254,72)  	'cgram 1
    serout C.4,baud,(10,0,17,17,17,19,13,0)     ;ü
    serout C.4,baud,(254,80) 	'cgram 2	ù
    serout C.4,baud,(8,4,17,17,17,19,13,0)
    serout C.4,baud,(254,88) 'cgram 3	ç
    serout C.4,baud,(0,14,16,16,17,14,4,12)
    serout C.4,baud,(254,96) 	'cgram 4	à
    serout C.4,baud,(8,4,14,1,15,17,15,0)
    serout C.4,baud,(254,104) 	'cgram 5	ê
    serout C.4,baud,(4,10,14,17,31,16,14,0)
    serout C.4,baud,(254,112) 	'cgram 6	è
    serout C.4,baud,(8,4,14,17,31,16,14,0)
    serout C.4,baud,(254,120) 	'cgram 7 	ü
    serout C.4,baud,(10,0,17,17,17,19,13,0)
    
    
    pause 100		'petite pause pour digérer mini=70ms
    serout C.4,baud,(254,1)
    serout C.4,baud,(254,128,0," ",2," ",4," ",3," ",254,192,7," ",8," ",1," ",5," ",6)
    		;en fait, le caractère 0, ou 8, c'est le même
    do loop
    Si besoin, je fais une photo du résultat..

    MM
    Last edited by MGU; 09-09-2017 at 12:09.

  4. #4
    Member
    Join Date
    Apr 2014
    Location
    Liège (French Belgium)
    Posts
    83

    Default

    Bien le bonsoir MGU,

    Merci de suivre ce Post.
    J’avais déjà lu et relu vos exposés intéressants sur le web concernant les interfaces LCD Série.
    Et je viens de terminer un interface LCD (ou OLED) Série du style de l’Axe134 de chez Picaxe mais je l’ai réalisé avec un 20X2 sur CI double faces. Cela me permet de disposer de plus de sorties auxiliaires, dont le backlight (LCD) que je peux donc contrôler par le Master programme. (Photo en annexe)

    Je suis arrivé à programmer mes caractères graphiques aux adresses 0 à 7 de la CGRAM (voir photo, attachée) mais il y a tout de même quelque chose qui m’échappe et comme je n’aime pas rester sur des incompréhensions, peut-être pourrez-vous m’éclairer :

    Dans tous les datas sheets et autres publications sur le Net, la commande "Set CGRAM Address" est formulée comme suit :

    DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0
    0 | 1 | ACG | ACG | ACG | ACG | ACG | ACG
    Avec ACG étant l’Adresse CGRAM.

    Donc, pour l’adresse de la CGRAM 2, on devrait envoyer la commande
    Serout Display, Baud, (254, %01000010) ‘$42 d66

    Mais en fait, il faut programmer :
    Serout Display, Baud, (254, %01010000) ‘$50 d80

    Il faut donc :
    DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0
    0 | 1 | ACG | ACG | ACG | 0 | 0 | 0

    Ca fonctionne mais ça ne correspond pas aux datas sheets des LCD !

    Une idée du Pourquoi ???
    Attached Images Attached Images

  5. #5
    Senior Member
    Join Date
    Jul 2010
    Location
    paris
    Posts
    1,460

    Default

    Quote Originally Posted by zorgloub View Post
    Bien le bonsoir MGU,

    Merci de suivre ce Post.
    J’avais déjà lu et relu vos exposés intéressants sur le web concernant les interfaces LCD Série.
    Et je viens de terminer un interface LCD (ou OLED) Série du style de l’Axe134 de chez Picaxe mais je l’ai réalisé avec un 20X2 sur CI double faces. Cela me permet de disposer de plus de sorties auxiliaires, dont le backlight (LCD) que je peux donc contrôler par le Master programme. (Photo en annexe)

    Je suis arrivé à programmer mes caractères graphiques aux adresses 0 à 7 de la CGRAM (voir photo, attachée) mais il y a tout de même quelque chose qui m’échappe et comme je n’aime pas rester sur des incompréhensions, peut-être pourrez-vous m’éclairer :

    Dans tous les datas sheets et autres publications sur le Net, la commande "Set CGRAM Address" est formulée comme suit :

    DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0
    0 | 1 | ACG | ACG | ACG | ACG | ACG | ACG
    Avec ACG étant l’Adresse CGRAM.

    Donc, pour l’adresse de la CGRAM 2, on devrait envoyer la commande
    Serout Display, Baud, (254, %01000010) ‘$42 d66

    Mais en fait, il faut programmer :
    Serout Display, Baud, (254, %01010000) ‘$50 d80

    Il faut donc :
    DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0
    0 | 1 | ACG | ACG | ACG | 0 | 0 | 0

    Ca fonctionne mais ça ne correspond pas aux datas sheets des LCD !

    Une idée du Pourquoi ???
    Bonjour,

    Ce que je pense comprendre, c'est que le bit DB6=1 annonce un enregistrement en CGRAM, DB0 à DB5 est la zone adresse.
    l'adresse dans cette zone est N x 8, avec N de 0 à 7

    1 en DB6, donne 64.
    la commande est égale à N x 8 , que l'on ajoute à 64

    j'avais trouvé quelque par le "formule" : N x 8 | $40 , avec N de 0 à 7, ce qui revient au même

    Au delà de 7, N x 8 écrase le 1 de $40, donc, N= 0 à 7 ou N= 8 à 15 donne le même octet

    MM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •