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 0.96 128x64
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1441
Enregistré en : juillet 2016
Localisation : Terre

#31 Message par Temps-x » dim. 9 févr. 2020 16:27

Bonsoir paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message autrement : Bluetooth !


Hum...Bluetooth c'est des gros problème sur Windows XP, par contre c'est un avantage pour les smartphones, tablette,.....,

Je vais essayer avec ce que je possède actuellement ...... nRF24L01+..... Bluetooth.....

Je commanderais autre module si je n'ai pas de réussite.

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

Écran OLED 0.96 128x64
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1441
Enregistré en : juillet 2016
Localisation : Terre

#32 Message par Temps-x » lun. 24 févr. 2020 02:37

Bonsoir tout le forum,

:sifflotte: Voila je pose le problème, mais je suis sur que j'aurais pas beaucoup de réponse, je suis obligé d'envoyer une commande( DC = 0) pour que mon programme puisse tourner correctement, je comprends pas le pourquoi :mur:

J'utilise le mode SPI bit bang pour écran OLED 128x64, en mode SPI automatique j'ai le même problème.

Code : Tout sélectionner



;*************************************** assignations ***************************************** 

#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

;********************************************************************************************

boucle             
      rcall bug                           
;  <<== ici bug, si je ne mets pas ça, le programme ne tourne plus correctement, pourquoi ?
    
      rcall scan_numérique                
; récupérer les données du signal électrique
      rcall affiche_grille                
; redessine la grille, en effaçant les données qui sont sur la grille
      rcall osc_analyse                   
; reproduit le tracé du signal électrique
      rcall volts_maxi_mini               
; rechercher le voltage maxi, et le voltage mini
      rcall affiche_voltage               
; afficher la somme du (voltage maxi - voltage mini)
      rcall affiche_freq                  ; trouver la fréquence et l'afficher (100 ms)

      bra boucle

;*********************************************************************************************** 
bug
      bcf dc                              ; mode commande

      return



Bon ça fonctionne avec cette technique hasardeuse, mais j'aimerais bien comprendre, faut t'il remettre l'écran en mode commande quand il n'est pas utilisé ?

Merci ! pour les surdoués qui trouverons la réponse.

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

Écran OLED 0.96 128x64
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1557
Âge : 69
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#33 Message par paulfjujo » mar. 25 févr. 2020 08:35

bonjour TempsX et à tous,

je n'ai pas d'ecran OLED SPI ... pour t'aider

mais je pense qu' il faut bien envoyer à un moment donné autre chose que des datas
pour au moins positionner le depart pixel en 0,0
l'adressage page, column ou autre commence par une commande.

*************************************************************



concernant la vitesse d'acquisition et ton mini Oscilloscope

en suivant ce fil , sur MikroC forum
https://forum.mikroe.com/viewtopic.php? ... 33#p303833
ADC_Get_Simple timing (slow sampling rate?)

j'ai fait de nouveaux essai, en simplifiant au maximum l'acquisition ADC
je laisse le choix de channel constament ouvert sur RA2 ( par exemple)
et range le resultat de l'acquisition via un pointeur char sur une table de 500 mesures en integer !
Avec le Timer1 en chronometre pour mesurer la duree d'acquisition des 500 mesures , j'obtiens > 100 KSP/sec
testé avec un signal sinus 3000Hz et 8000Hz

FOSC interne 64Mhz
UART1 RC6 TX
RA2 Analog input

le projet de test

_18F26K22_64Mhz_Uart1_Test_Speed_ADC_Base_2020_02_25.zip


Test_Speed_ADC_Base_18F26K22_64MHz.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aides toi, le ciel ou Fantastpic t'aideras

Écran OLED 0.96 128x64
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1441
Enregistré en : juillet 2016
Localisation : Terre

#34 Message par Temps-x » mar. 25 févr. 2020 20:37

Bonsoir paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message mais je pense qu' il faut bien envoyer à un moment donné autre chose que des datas
pour au moins positionner le depart pixel en 0,0
l'adressage page, column ou autre commence par une commande


Je peux même pas te réponde, car pour moi le problème vient d’ailleurs, peut être des temps à respecter (peut être)....

j'envoie absolument rien du tout quand je mets l'écran OLED en mode commande.......

paulfjujo a écrit :Source du message concernant la vitesse d'acquisition et ton mini Oscilloscope


Avec oscillateur à 64 Mhz la meilleur configuration que j'ai pu obtenir pour l'acquisition ADC et celle-ci

Code : Tout sélectionner

;*************************** configuration du registre ADCON2 ********************************** 
                   
      movlw B
'00001101'                   ; b0 à b2 = FOSC/64    
      movwf ADCON2                        
; b3 à b5 = 16 TAG 
                                          
; 
                                          
; b7 = détermine si le résultat de la conversion
                                          
; sera justifié à droite = 1 ou à gauche = 0  


Voila ce que ça donne à 10 Khz pour Sinus
Sinus.jpg


Voila ce que ça donne à 10 Khz pour Carré
Carré.jpg


Voila ce que ça donne à 13 Khz pour Scie
Triangle.jpg


En mesurant le temps pour un scanne, j'obtiens approximativement 10 µs, avec timer1 comme chronomètre, de mon points de vu je pense pas
qu'on puisse faire mieux que ça.

Pour une demi alternance, pour une fréquence de 10 Khz
(((1/10000 Hz) * 1000000))/2 = 50 µs

Donc, on pourrait théoriquement faire 5 numérisations pour 10Khz sur une demi-alternance, hors j'obtiens 10 numérisations (voir photo ci dessous)

Point.jpg


Sur l'image, on retrouve bien les 100 scannes, 5 demi-alternances positifs de 10 points, de même pour le coté négatif, ce qui nous fait les 100 scannes( ce qui était prévu dans le programme)

ça voudrait dire que les temps enregistré avec le timer 1 ne serait pas correcte....( je ne mets pas en cause le timer 1, mais surement autre chose)

J'ai été voir sur le lien que tu mets dans ton post, qui est très intéressant, :roll: c'est bien de lui montré qu'il existe ASM pour plus de rapidité :lol:

Merci ! paulfjujo pour ton investissement.

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

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