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

Algorithme de remplissage par diffusion
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#1 Message par Temps-x » sam. 19 nov. 2022 19:37

Bonjour tout le forum,

oops Encore un algorithme graphique, qu'il faut absolument avoir, c'est l'algorithme de remplissage par diffusion

Vous ne le connaissez peut être pas, mais vous l'utilisez sans le savoir quand vous prenez le pot de peinture de Paint (logiciel de dessin gratuit sous Windows)

Voici son symbole sous Paint

Pot de peinture -1.jpg


Voici comment ça fonction

Paint méthode.gif


Une explication plus en détail ICI ou j'ai pris l'image ci-dessus.


Préparation pour les premier essais

J'ai utilisé un écran Oled 128x64 en mode de communication SPI pour vous montrer le résultat obtenu, voici son datasheet

Le microcontrôleur utilisé est un Pic18F26K22, voici son datasheet

Pour le rendre compatible pour les Pic16Fxxxx et Pic18Fxxxx je n'ai pas utilisé les instructions des microcontrôleurs Pic18Fxxxx

j'ai opté pour le mode SPI bit bang, ce qui permets de choisir les pattes quand veut sur le microcontrôleur, de plus ça le rends compatible
pour les microcontrôleurs ne possèdent pas du SPI

Voici mon branchement pour mode SPI

Code : Tout sélectionner

#DEFINE dc      LATA,2                 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE cs      LATA,1                 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst     LATA,0                 ; RA0 ==> reset de l'écran

#DEFINE sck     LATC,3                 ; RC3 ==> horloge de synchronisation 
#DEFINE mosi    LATC,5                 ; RC5 ==> envoyer les données sur écran oled 128x64
 


Le code ASM a été écrit avec jens file Editor 3.95

Fichier code + fichier à mettre dans le Pic : Paint.zip

J'ai ralenti la vitesse de remplissage, pour que vous voyez comment l'algorithme fonctionne,, voila ce que ça donne en vidéo

https://youtu.be/VKgYLpYP_xg

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le dim. 11 déc. 2022 13:07, modifié 4 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Algorithme de remplissage par diffusion
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » dim. 11 déc. 2022 04:40

Bonjour tout le forum,

Comme je vous l'avez promit voici l'algorithme de remplissage par diffusion, limité pour ce Pic18F26K22 à 2560 pixels, c'est déjà pas mal.

Pour vous donner une idée, l'écran utilisé Oled 128x64 pour l'essai effectué ci-dessus, à une capacité de (1024*8) = 8192 pixels, oops c'est énorme pour une si petite taille.

Par la suite, mais par pour tout de suite, je compte optimiser la source ASM pour agrandir sa capacité de remplissage par diffusion, :roll: à moins d'utiliser un pic comme le Pic18F27K42 ou je pourrais quasiment tout remplir, mais attention, car ce Pic18F27K42 ne gère pas la mémoire aussi facilement que le Pic18F26K22


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

Algorithme de remplissage par diffusion
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#3 Message par francois77 » dim. 11 déc. 2022 11:09

:bravo: :bravo:


Retourner vers « Langage ASM »

Qui est en ligne

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