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 le langage C !

Modérateur : Jérémy

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#31 Message par satinas » dim. 31 janv. 2021 12:46

Bonjour Paul,

j'ai commencé à regarder, mais je comprends rien à IPE, il ne met pas le bon hex dans le pic.
Heureusement je peux charger le fichier HEX MikroC dans le 18F27K42 avec le bootloader uart.

Comment marche le define FOSC dans MikroC. Il est défini automatiquement quand on a fixé Mcu Clock dans Projects settings ?

Il y a un unsigned de trop là :

Code : Tout sélectionner

volatile struct chbits {   // 8 flags
       unsigned FrameErr:1;
       unsigned RAZ:1;
       unsigned Tmr0_Elapsed:1;
       unsigned Tmr1_Elapsed:1;
       unsigned Tmr2_Elapsed:2;
       unsigned
       unsigned Full:1;
      unsigned Gie:1;
 }Drapeaux ;

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#32 Message par Temps-x » dim. 31 janv. 2021 12:52

Bonjour satinas, paulfjujo, et tout le forum,

Est ce que tu mets tes gros caractère en mémoire sdram :?:

Ou.. va tu les chercher dans un tableau ou moment de les afficher :?:

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

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#33 Message par satinas » dim. 31 janv. 2021 16:35

Voici une fonction inspirée de la version 18F26K22 affichant correctement les caractères de 48 pixels.
Les const ont disparu car MikroC n'aimait pas les passages de pointeurs const à non const, pas insisté.
Après avoir défini et rempli la zone occupée par le caractère, on revient au plein écran avec les commandes 0x21 et 0x22.
J'espère que ça correspond à ce que tu voulais :)

Code : Tout sélectionner

unsigned char chiffre0[]={  // chiffre 0
  0b00000000, 0b10000000, 0b11110000, 0b11111100, 0b11111110, 0b11111110, 0b00111111, 0b00001111, 0b00001111, 0b00001111, 0b00111111, 0b11111110, 0b11111110, 0b11111100, 0b11110000, 0b10000000,
  0b00000000, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111,
  0b00000000, 0b00000011, 0b00001111, 0b00111111, 0b01111111, 0b01111111, 0b11111100, 0b11110000, 0b11110000, 0b11110000, 0b11111100, 0b01111111, 0b01111111, 0b00111111, 0b00001111, 0b00000001
};
unsigned char chiffre1[]={  // chiffre 1
  0b00000000, 0b00000000, 0b00000000, 0b11000000, 0b11100000, 0b11100000, 0b11110000, 0b11111000, 0b01111100, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b00000000, 0b00000000,
  0b00000000, 0b00000000, 0b00000000, 0b00000011, 0b00000001, 0b00000001, 0b00000000, 0b00000000, 0b00000000, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b00000000, 0b00000000,
  0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b00000000, 0b00000000
};

unsigned char * Big_Numbers[]  = { chiffre0, chiffre1 };

//------------------------------------------------------
void main(void)
//------------------------------------------------------
{
  ...
  Big_affichage(10, 0);    // 2 caractères 16x24
  Big_affichage(30, 1);

  OledCmd(0x21);           // retour au plein-écran
  OledCmd(0); OledCmd(OLED_COL-1);
  OledCmd(0x22);
  OledCmd(0); OledCmd(OLED_PAG-1);

  Write_Char_At(0,0,'A');  // caractère 6x8
  ...


//------------------------------------------------------
void Big_affichage(unsigned char posX, unsigned char N) // 18F26K22
//------------------------------------------------------
{
  OledCmd(0x21);      // On configure la largeur de l'ecran
  OledCmd(0+posX);    // Colonne minimum
  OledCmd(15+posX);   // Colonne MAximum;
  OledCmd(0x22);
  OledCmd(1);
  OledCmd(3);
  OledData(Big_Numbers[N], 48);  // caractère 16x24
}

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#34 Message par paulfjujo » dim. 31 janv. 2021 20:03

bonsoir,

[quote=Temps-X]
Table en RAM ou dans le code [/quote]
testé les 2 cas .. idem
et je n'ai pas de message d'alarme dans la fenetre de compil..

Merçi SATINAS pour ton aide
j'ai testé ton bout de programme ..
Probleme IDEM avec big caracteres : affichage bigorné ..
???

je vais essayer de recopier lce meme source pour le 18F26K22 , en ne changeant que les 2 fonction principales I2C .. et voir !
Aide toi, le ciel ou FantasPic t'aidera

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#35 Message par satinas » dim. 31 janv. 2021 20:30

Le programme de test MikroC fonctionnant avec les caractères 16x24.
18F27K42_Oled_Big.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#36 Message par Temps-x » lun. 1 févr. 2021 01:10

Bonjour satinas, paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message et je n'ai pas de message d'alarme dans la fenêtre de compil..


:roll: Ouais... ouais, mais je me suis rendu compte que savais des problèmes d'affichage sur mon écran Oled 128x64 en mode SPI bit bang.

Et pourtant aucune utilisation d'un mode quelconque (I²C, Eusart, Spi... )

Le graphique c'est ok... pour le reste on dirais qu'il y à comme une perturbation qui vient semé la zizanie.

Chose que je n'avais pas avec le Pic18F26K22 en utilisant les mêmes adresse sdram.

:? J'ai un gros doute sur la façon de géré la mémoire dans ce Pic18F27K42

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

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#37 Message par paulfjujo » lun. 1 févr. 2021 11:40

bonjour à tous,

satinas a écrit :Le programme de test MikroC fonctionnant avec les caractères 16x24.
18F27K42_Oled_Big.zip


OK :+1:
je confirme , ton programme *.hex affiche correctement les BIG chiffres 0 et 1
.
Je l'ai recompilé , mais ta config bit
montre un choix de FOSC = 32MHz
et config bit => HFINTOSC interne 4MHz div 4/1 ? soit 1MHz ?
et un choix dans le main program
FOSC=64MHz div 1/1
OSCFREQ=8 ; soit 64MHz

j'ai rajouté dans la config bit le Clockout enable (sur RA6)
mon analyser SQA me dit T=160+340=500nS soit F=2MHz MAIS comme JE N'AI PAS trop CONFIANCE en lui..
un contre essai avec OSCFREQ=6 ; soit 32MHz montre Clkout periode=80+60ns=140ns ..pres de 8MHZ => OK
se mefier des analyser logique bon marché ! j'eusse dù acheter un SQA200 !!! mais plus cher 150€ au lieu de 90€.


Ca confirme que le choix final est celui fait dans le main program !


par contre le delay_ms doit avoir MCU Clock du projet EGAL à OSCFREQ defini dans le main
pour que celui ci soit respecté
ex: MCU clock projet=32MHz OSCFREQ=6; (32MHZ) dans le main => delay_ms(1000); => OK
si MCU clock project=8MHz OSCFREQ=6; 32MHz dans le main > delay_ms(1000); => 250mS ..BAD !
si MCU clock project=8MHz OSCFREQ=8; 64MHz dans le main > delay_ms(1000); => 125mS ..BAD !

le comportement UART peu montrer aussi un probleme sur FOSC réelle...si charabia affiché sur terminal
sinon, rien de tel que le clignotement d'une led sur 1 à 5 sec en tête de programme..pour etre sûr.

j'ai capturé les timings de la commande BIG chiffre 1 avec SQA
pour pouvoir comparer avec la version de programme entiere ..(en taille maxi de RAM et ROM)

On peut effectivement suspecter des problemes de gestion memoire RAM ou FLASHROM ... de franchissement de bank ...etc..
oops ou une erreur de programmation non encore decelée..


A suivre ...

SQA_Big_affich_1_OLED_18F27K42.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#38 Message par satinas » lun. 1 févr. 2021 12:39

Bonjour,
Ils pourraient mettre toutes les infos du projet dans le source, comme xc8. L'erreur sur la fréquence d'horloge serait plus visible.
Peux-tu mettre tes nouvelles fonctions dans le projet ci-dessus, en respectant les 2k, je regarderais ça. Au besoin tu réduis la police 6x8. Ca marche pas du tout, ou i y a des problèmes aléatoires ?

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#39 Message par paulfjujo » mar. 9 févr. 2021 09:42

Bonjour Satinas et à tous ,


:-D C'est OK ....
avec passage adresse plutot que valeur pour la lecture big char et autres petits bugs corrigés.
( :!!: > 2Ko!)

_18F27K42_UART1_ADC1_Mini_Oled_20x10mm_RTC_I2C_Hw_SANS_MC_lib_2021-0208.zip


lien sur video

j'ai pas encore integré la RTC ... car Lecture I2C Hardware necessaire
donc à Suivre ... :sifflotte:

--------------------------------------------

un exemple complet en version MikroC I2C software OLED et RTC... OK :-D
à noter que Freq SCL = 75KHz seulement ..
__18F27K42_UART1_ADC1_Mini_Oled_et_RTC_I2C_Soft_20x10mm_2021_02_07.zip



lien survideo demo

oops Nota : toujours rien avec I2C1 Hardware MikroC !!
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Test mini OLED SSD1306 20x10mm 128x32 18F27K42
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#40 Message par Temps-x » mar. 9 févr. 2021 21:49

Bonjour paulfjujo, et tout le forum,

:bravo: Ta enfin réussi.... :sifflotte: bon j'ai pu cas le refaire en ASM, comme ça la boucle seras bouclé.

Pas facile quand même ce Pic, mais il est préférable de bien le comprendre, car des nouveaux Pic arrive sur le marché qui vont surement
être similaire avec celui là.

Merci ! pour la vidéo, on voit bien les gros caractères, :roll: c'est appréciable quand on ne voit plus très bien.

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


Retourner vers « Langage C »

Qui est en ligne

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