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
Algorithme de remplissage par diffusion
Bonjour tout le forum,
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
Voici comment ça fonction
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
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+
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
Voici comment ça fonction
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.
Algorithme de remplissage par diffusion
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, 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, à 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+
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, 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, à 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.
Algorithme de remplissage par diffusion
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 132 invités