Bonsoir satinas, et tout le forum,
Je viens de résoudre l'énigme, et sans table
Code : Tout sélectionner
movf posy,W ; sauvegarde
movwf tmps1 ;
movf posx,W ; sauvegarde
movwf tmps2
bcf STATUS,C ; se positionner à la page
rrcf posy,F ;
bcf STATUS,C ;
rrcf posy,F ;
bcf STATUS,C ;
rrcf posy,F ;
rcall position_ssd1306 ; se positionné à la page demandé, et la longueur demandé
movf posy,W ;
mullw D'8' ; multiplier W=(page x 8 bits), résultat dans PRODH PRODL
movf PRODL,W ;
subwf tmps1,F ; posy - (page x 8 bits)
clrf WREG
bsf STATUS,C
ocs_ret
rrcf WREG,F
decfsz tmps1,F ;
bra osc_ret
rcall donner_ssd1306 ; envoi du pixel (et effacement des 7 autres pixels si pas de buffer pic)
satinas a écrit :Source du message Il faudrait mettre l'envoi de la colonne en premier. Ainsi on pourrait la sauter pour le tracé du petit oscillo dont tu as parlé. Autant profiter de l'auto-incrémentation de la colonne faite par le lcd.
On peut rien te caché, oui c'est ce que je fais..... j'ai pas vu d'oscilloscope en version Pic avec un écran aussi petit, et ça permettrais qu'un débutant s'amuse à le refaire.
D'après mes calculs, je pense qu'on pourras mesurer au maximum des fréquences allant jusqu’à 200KHz, après j'espère qu'on pourras m'aider un peu pour l'électronique.
Il faut que je vois avec le convertisseur analogique du pic, car c'est lui qui fait le
spot, pour le visionnage pas la peine de se presser vu la lenteur de l’œil .
Voila le code pour le scan numérique, qui fait office de spotCode : Tout sélectionner
scan_numérique
bcf led1
movlw D'100' ; nombre de pixel sur la longueur
movwf temps
lfsr FSR0,H'100' ; FSR0 pointe sur le début de la banque 1
re_scan
bsf ADCON0,ADON ; on lance l’acquisition (charge du condensateur)
bsf ADCON0,GO ; lancer la conversion A/D
btfsc ADCON0,GO ; si le bit GO est à 1 on va à la ligne 1
bra $-D'2' ; convertion n'est pas terminer
movff ADRESH,POSTINC0 ; récupérer la valeur
bcf ADCON0,ADON ; fin de conversion, éteindre convertisseur
; rcall ; delay de la vitesse du spot, voir avec temporisation
; 50ms, 20ms, 10ms, 5ms, 2ms, 1ms, 500us, 200us, 100us
decfsz temps ;
bra re_scan
return
Je ne sais pas si on est obligé de coupé la fin de conversion pour chaque scannage .
Je vais aussi mettre l'option PWM avec un sélecteur qui couvrira les fréquences 1000Hz, 1500Hz, 2000Hz, 20000Hz de 0% à 99%
De plus on peut aussi rajouter le fréquencemètre, qui pourras aller jusqu'à 50 Mhz.
Voilà ou j'en suis, ici contrôl d'un signal carré
020901.jpg
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.