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

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#151 Message par Temps-x » mar. 26 juil. 2022 19:28

Bonsoir francois77, paulfjujo, et tout le forum,

francois77 a écrit :Source du message L’essai sur Proteus c’est soldé sur un échec.
L’essai en réel est conforma à l’attendu


Entre la réalité, et la vrai vie, il y a une marge à franchir, un simulateur est incapable de dire si ta résistance va grillé ....

il va juste appliqué la formule qu'on lui à mi, les concepteurs de t'elle logiciel doivent vraiment souffrir quand il conçoit de t'elle programme, ça demande une connaisance très, très, poussé.

Sinon pour inversion des couleurs, tu mets un xorlw b'11111111'

Exemple

Code : Tout sélectionner


      call i2c_donner                     
; ouverture i2c pour mode donnée

      movlw   D
'4'                        ; page 4, tableaux "dico" de 255 octets.
      movwf PCLATH                        ;  
   
      call dico                           
; aller chercher la valeur

                                          
; au retour la valeur est dans W
      btfsc couleur
,
      xorlw b
'11111111'                   ; inversion des couleurs si couleur = 1 

      call i2c_ecrit                      
; écrire les données sur i2c

      call i2c_stop                       
; stopper i2c




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

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#152 Message par francois77 » mer. 27 juil. 2022 06:22

Bonjour a tous

Mon message précèdent avait pour but d’informer un éventuel lecteur de ce sujet

Les commandes d’inversion fonctionnant correctement en réel, je ne vais pas développer un code supplémentaire

En complément 3 codes qui fonctionnent partiellement sur simu mais correctement en réel

A+

Francois


SDD1306_Arret_Defil_I2C: ;
;
call SDD1306_commande_I2C;
movlw 0x2E ; code d'arrêt du défilement
movwf Val_Tab ;
call i2c_write ;
call i2c_stop ; fin du transfert
call Tempo_10ms ;
return ;
;*******************************************************************************
SDD1306_Defil_H_I2c:

call SDD1306_commande_I2C

movlw 0x27 ; défilement a droite =0x26
movwf Val_Tab ; défilement a gauche =0x27
call i2c_write ;
;
movlw 0x00 ; Bit mort
movwf Val_Tab ;
call i2c_write ;
;
movlw d'2' ; ligne de depart du defilement de 0 à 7
movwf Val_Tab ;
call i2c_write ;
;
movlw d'5' ; 0 a 7 vitesse de defilement
movwf Val_Tab ;
call i2c_write ;
;
movlw 0x05 ; ligne de fin de defilment 0 - 7
movwf Val_Tab ;
call i2c_write ;
; Important : ne fonctionne pas sous proteus mais ok en reel
movlw d'0' ; colonne de debut de defilement
movwf Val_Tab ;
call i2c_write ;
;
movlw D'127' ; colonne de fin de defilement
movwf Val_Tab ;
call i2c_write ; genere un defaut sur proteus non bloqiuant
; [SSD1306 CWR] Dummy byte F[7:0] should be set as FFh. [LCD2_U1_U1]
;
movlw 0x00 ; bit mort
movwf Val_Tab ;
call i2c_write ;
;
movlw 0x2f ; validation defilement
movwf Val_Tab ;
call i2c_write ;
;
call i2c_stop ; fin du transfert
call Tempo_10ms ;
return ;
;*******************************************************************************

SDD1306_Defil_V_I2C:

call SDD1306_commande_I2C;

movlw 0x29 ; defilement a droite =0x26
movwf Val_Tab ; defilement a gauche =0x27
call i2c_write ;
;
movlw 0x00 ; Bit mort
movwf Val_Tab ;
call i2c_write ;
;
movlw d'0' ; ligne de depart du defilement de 0 à 7
movwf Val_Tab ;
call i2c_write ;
;
movlw d'5' ; 0 a 7 vitesse de defilement
movwf Val_Tab ;
call i2c_write ;
;
movlw 0x07 ; ligne de fin de defilment 0 - 7
movwf Val_Tab ;
call i2c_write ;

movlw 0x01 ;
movwf Val_Tab ;
call i2c_write ;

; Important : ne fonctionne pas sous proteus mais ok en reel
movlw d'0' ; colonne de debut de defilement
movwf Val_Tab ;
call i2c_write ;
;
movlw D'127' ; colonne de fin de defilement 0 127
movwf Val_Tab ;
call i2c_write ; genere un defaut sur proteus non bloqiuant
; [SSD1306 CWR] Dummy byte F[7:0] should be set as FFh. [LCD2_U1_U1]
;
movlw 0x00 ; bit mort
movwf Val_Tab ;
call i2c_write ;
;
movlw 0x2f ; validation defilement
movwf Val_Tab ;
call i2c_write ;
;
call i2c_stop ; fin du transfert
call Tempo_10ms ;
return

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#153 Message par francois77 » jeu. 28 juil. 2022 18:30

Bonjour a tous

Contrairement a ce que j'avais dit, il est possible de piloter un sdd1306 en mode SDI et I2C sous Proteus

Détection du même problème pour l'inversion d'écran qui ne fonctionne pas sur le simulateur mais fonctionne correctement en réel


Il me reste a gratter les fonctions graphiques

A+
francois

image.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#154 Message par francois77 » sam. 8 oct. 2022 08:56

Bonjour à tous,

Dans nos échanges sur les écrans oled , je recherche si quelqu'un avait traité les fonction cercle ?
Au cas ou ?

Cordialement

Francois

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#155 Message par Temps-x » sam. 8 oct. 2022 13:42

Bonjour francois77, et tout le forum,

C'est un très gros sujet que tu attaques, en langage de haut niveau, pas de problème, tout est inclus pour faire un cercle, carré, triangle, ligne droite, etc....

Mais en ASM, il faut relevé les manches, et apprendre les technique de ceux qui vende des fonctions toute faite dans les langages de haut niveau. :wink:

La première chose qu'il faut savoir faire, c'est une ligne droite, car pas de ligne droite pas de cercle (la relativité... :sifflotte: )

Après on utilise le procéder de Pythagore, on gardant une distance égal à chaque décente, et monté, il y a pas mal de mathématique pour arrivé à un résultat,

je vais voir pour 'une fonction cercle après les essais Dtmf de paulfjujo

A tout hasard, si tu veux vraiment t'accrocher, voici une routine que j'ai écrit en ASM pour pic 16F et 18F, pour une ligne droite,
attention c'est du hard sans X :sifflotte:

Je viens de m'apercevoir que j'avais déjà ouvert un post sur l'algorithme de Bresenham, voici le lien pour téléchargement du code + le fichier compiler ICI

Voici un lien qui explique le procéder ICI

Quand tu sais le faire en ASM , ça reste similaire pour tout les écrans à pixel, mais tu n'as pas à sortir le porte monnaie à chaque instant.

==> A+
Modifié en dernier par Temps-x le dim. 9 oct. 2022 11:46, modifié 4 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#156 Message par francois77 » sam. 8 oct. 2022 14:58

Bonjour Temps-X

Merci pour ton retour

Dans ma tête, je pensais avoir lu un exemple en ASM sur le forum !!!

Je voulais m’amuser avec un 18f sur le sujet, mais c’est très difficile d’obtenir un pic type 18f26k22 ou un de cousin en ce moment
J’ai fait une commande sur EBay et je suis en attente depuis 15 jours pour un achat en France
J’ai fait une autre commande sur Ali et j’ai reçu un paquet vide !! , réclamation et remboursement, mais toujours pas de pic

A+

Francois
Modifié en dernier par francois77 le sam. 8 oct. 2022 17:04, modifié 1 fois.

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#157 Message par Temps-x » sam. 8 oct. 2022 16:11

Re

francois77 a écrit :Source du message Dans ma tête, je pensais avoir lu un exemple en ASM sur le forum !!!


Ben non, car je suis malheureusement un des seules à diffuser mes sources avec exemple, il y avait bien JJE, et F6FCO, mes on n'a plus de nouvelle d'eux. :sad:

Le seule post sur les tracé de ligne droite, c'est moi qui les est mis en ligne ICI

Tu peux le Faire avec un Pic16f876(A), car pas besoin de grosse mémoire ram pour ce genre d'algorithme, je viens de voir qu'il existe un algorithme de Bresenham pour cercle, intéressant tout ça.

==> A+
Modifié en dernier par Temps-x le sam. 8 oct. 2022 19:47, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#158 Message par francois77 » sam. 8 oct. 2022 17:19

Re Bonjour Temps-X

Pour faire un cercle, c’est peut être possible si tu le pense, mais je ne suis pas sûr que cela sera possible pour plusieurs cercles avec un 16f876 (j’ai pas avec le A, c’était ma commande en chine pour tester la fonction oscillateur)

Je suis entrain de faire un petit programme sous Excel pour faire une image

La partie centrale sera géré par mon petit programme de vu mètre basique
Tracé manuel ….
Et extraction des données sous DA 0X00 0x44 … pour la partie cercle

Capture8.JPG


Je continuer de chercher un pic 18F compatible Mplab et Proteus, mais ce n’est pas gagné…

A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#159 Message par Temps-x » sam. 8 oct. 2022 20:04

Re

francois77 a écrit :Source du message cela sera possible pour plusieurs cercles avec un 16f876 (j’ai pas avec le A


Les Pic16F876 et Pic16F876A son tous les deux compatible pour effectuer des cercles, ou plusieurs cercle.

La seule chose que tu ne pourras pas faire, pour les deux Pic, c'est stocker le dessin que tu as dessiné, ce qui engendre une non manipulation du dessins.

Car il faut au moins 1024 octets de sram pour stocker l'écran, Oled 128x64.

francois77 a écrit :Source du message Je continuer de chercher un pic 18F compatible Mplab et Proteus, mais ce n’est pas gagné…


Le Pic18F26K22 et compatible pour Mplab 8.92 c'est la dernière version de Microchip à faire de l'assembleur.

Et de plus, il est parfait pour ce que tu veux faire, 3896 de sram, 1024 octets d'éeprom, 65536 octets de mémoire flash...bref de quoi s'amuser un bon moment :-D

:eek: Pas mal pour un début tes cercles, bon il faudra arrondir les cotés.... mais bon c'est que le début.

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

Écran OLED 128x64(Ssd1306) et Écran OLED 132x64(Ssd1106)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#160 Message par francois77 » dim. 9 oct. 2022 07:25

Bonjour a tous

Pour le pic Pic18F26K22, je n'arrive pas a trouver sur le net un seul fournisseur , tous en rupture de stock
idem pour le 18f26k22

Si quelqu'un a un exemplaire a me vendre je suis preneur

A+

Francois


Retourner vers « Langage ASM »

Qui est en ligne

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