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

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2890
Enregistré en : juillet 2016
Localisation : Terre

#111 Message par Temps-x » sam. 28 août 2021 00:29

Bonjour Pikachu, satinas, et tout le forum,

satinas a écrit :Source du message C'est vraiment pas possible de faire de l'i2c ?


Non c'est pas possible avec RA4, mais tu peux le faire avec le PORTB, il faut se servir BSF ou BCF

Voici un exemple d'un code classique pour allumage d'un afficheur

Code : Tout sélectionner



      movf afficheur1
,W                  ; afficheur représente le nombre
      call deco_bcd                      
; décodage 
      movwf segment                      
; segments des afficheurs sur tout le PORTB           

      bsf anode1                         
; allumage anode1  
      bcf anode2                         
; éteindre anode2
      bcf anode3                         
; éteindre anode3  
      bcf anode4                         
; éteindre anode4  

      call _270µs                        
; le temps de voir l'afficheur
      
      return



Maintenant voici une modification pour choisir les broches quand désir allumer

Code : Tout sélectionner

;-----------------------------------------------------------------------------------------------   
      movf afficheur1
,W                  ; afficheur représente le nombre
      call deco_bcd                      
; décodage 
      movwf tmps                         
; variable temporaire
      call change                        
; allumage des broches sélectionnable

      bsf anode1                         
; allumage anode1  
      bcf anode2                         
; éteindre anode2
      bcf anode3                         
; éteindre anode3  
      bcf anode4                         
; éteindre anode4  

      call _270µs                        
; le temps de voir l'afficheur

      return

;-----------------------------------------------------------------------------------------------

change
      btfsc tmps,1
      bsf PORTB,2
      btfss tmps,1      
      bcf PORTB,2

      btfsc tmps,2
      bsf PORTB,3
      btfss tmps,2      
      bcf PORTB,3

      btfsc tmps,3
      bsf PORTB,4
      btfss tmps,3      
      bcf PORTB,4

      btfsc tmps,4
      bsf PORTB,5
      btfss tmps,4      
      bcf PORTB,5

      btfsc tmps,5
      bsf PORTB,6
      btfss tmps,5      
      bcf PORTB,6

      btfsc tmps,6
      bsf PORTB,7
      btfss tmps,6      
      bcf PORTB,7

      btfsc tmps,7
      bcf PORTA,4
      btfss tmps,7      
      bsf PORTA,4

      return

;-----------------------------------------------------------------------------------------------



De plus en n'utilise pas le point de l'afficheur, ce qui liber une pin du Pic16F84A .....

Ce qui permet d'avoir RB0 et RB1 de libre pour faire du IC² comme Bigonoff l'explique, ne pas oublier que RA4 doit être alimenté V+ pour qu'il fonctionne (avec une résistance au maximum de 250 ohm), donc, faut en tenir compte au moment du montage.

Voici la sortie de RA4 pour rappelle

RA4.jpg


J'ai regardé ton code, et je vois que tu te sert encore du comptage par interruption, ça ne pourras jamais être précis à mon avis :-D
:roll: On verras si je fais mieux que toi..... :sifflotte:

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le sam. 28 août 2021 17:50, modifié 6 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Compilation programme
satinas
Expert
Expert
Messages : 1490
Enregistré en : novembre 2015

#112 Message par satinas » sam. 28 août 2021 07:47

Bonjour,

La question sur l'I2C c'était au niveau électronique, mise à part A4, les ports A ou B tels qu'ils sont câblés peuvent-ils fonctionner en open drain ? Le fait de mettre SCL sur A4 permet de d'avoir une maîtrise totale sur le signal d'horloge I2C.

Pour les interruptions je ne pense pas que cela pose problème. L'interruption timer est synchrone, et d'après le datasheet le temps de latence est constant quelle que soit l'instruction interrompue (1 ou 2 cycles). De toute façon, même s'il y a un temps de latence variable, dans cette appli ce n'est pas gênant car le timer est juste là pour incrémenter les secondes, sans toucher à TMR0. D'ailleurs on pourrait diminuer le prescaler afin d'avoir un top seconde plus précis, mais pas utile car les secondes ne sont pas affichées. Enfin, on verra bien, j'ai du mal à voir ce que tu vas faire, tu vas compter les instructions ? :)

Par contre le fait d'écrire TMR0 complique les choses car le timer perd 2 cycles, et si le prescaler n'est pas à 1, difficile de rattraper.
J'ai eu avant hier un phénomène bizarre, car après plusieurs heures de fonctionnement, lors d'un autre essai, le voyant des secondes clignotait 1 seconde sur deux...

Merci de surveiller si cela se reproduit, on appelle ça un bug :)
Certainement lié au fait que B2 et B1 sont à la fois sortie et entrée.

Bonne journée

Compilation programme
Pikachu
Débutant
Débutant
Messages : 60
Enregistré en : septembre 2016

#113 Message par Pikachu » sam. 28 août 2021 09:43

Bonjour a toute la compagnie,

Je suis avec avidité ce fil :wink:
T’inquiète" satinas" pour ta "breadboard" il vaut mieux un câblage qui reflète la réalité du schéma.
Que de passer son temps sur un logiciel de simulation qu’on ne maîtrise pas.
Voici la mienne :
Horloge 60 Mn0.png

A noter que j’ai remplacé les 100Ω par des 470 Ω (R1 a R7)
Bon j’ai remarqué ce retard ( pas grave pour moi )
Mon but pour l’instant, c’est de comprendre le programme et la stratégie de chacun d’entre vous
Merci pour cette aventure passionnante
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2890
Enregistré en : juillet 2016
Localisation : Terre

#114 Message par Temps-x » sam. 28 août 2021 11:12

Bonjour Pikachu, satinas, et tout le forum,

satinas a écrit :Source du message j'ai du mal à voir ce que tu vas faire, tu vas compter les instructions ? :-)

:sifflotte: Ben ouais.....

Pikachu a écrit :Source du message A noter que j’ai remplacé les 100Ω par des 470 Ω (R1 a R7)

Beaucoup trop pour ce pauvre Pic16F84A, tu as de la chance qu'il ne soit pas grillé.

C'est 20 ma par patte au maximum, d'après le datasheet et les cours du maître Bigonoff

Pour 100 ohm on obtient

A) 50 ma pour 5 volts
B) 33 ma pour 3,3 volts

:sifflotte: Quand à l'afficheur, c'est idem à ce que j'ai dit au dessus.

:bravo: pour le montage Pikachu j'en suis pas encore là, je réfléchis avant d'agir.

Comme le dirais paulfjujo, ... à suivre.

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

Compilation programme
Pikachu
Débutant
Débutant
Messages : 60
Enregistré en : septembre 2016

#115 Message par Pikachu » sam. 28 août 2021 20:18

Bonsoir a tous,
Pikachu a écrit :Source du message A noter que j’ai remplacé les 100Ω par des 470 Ω (R1 a R7)

Temps-x a écrit :Beaucoup trop pour ce pauvre Pic16F84A, tu as de la chance qu'il ne soit pas grillé.

Pas de soucis dès l'origine, j'avais câblé des 470 Ω
A bientôt pour la suite :wink:

Compilation programme
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#116 Message par paulfjujo » sam. 28 août 2021 21:01

bonsoir,


interessant ce fil .. en ASM

je suis d'accord avec Satinas
seul RA4 peut servir de SDA en I2C , vu que cette sortie est open collecteur ,mais pas les autres ...
à moins de ne pas se preoccuper des reponses ACK ou NACK de l'esclave I2C ...

Je ne vois pas pourquoi un timer ne pourrait pas etre precis ...
quite à rajouter un NOP ou plusieurs dans l'interrupt de celui ci pour arriver à un compte rond de comptage.

N'empeche que le 1Hz de la RTC DS3232 sera toujours plus precis qu'avec un simple quartz ( non compensé en temperature)
Aide toi, le ciel ou FantasPic t'aidera

Compilation programme
satinas
Expert
Expert
Messages : 1490
Enregistré en : novembre 2015

#117 Message par satinas » lun. 30 août 2021 06:13

Bonjour à tous,
Il y a de l'espoir, je suis à 0 seconde sur 12 heures, on va voir dans une semaine, puis un mois, puis après le réchauffement climatique. Temps-x, arrête de compter :-)
Par contre il y a un bug, elle a pris 2 secondes de retard peu après l'allumage du PC et la mise en route du chauffage, puis 10 minutes après elle s'est recalée sur la bonne seconde, étrange. Ou alors c'est l'horloge Internet qui affiche n'importe quoi.

Les transistors sont-ils vraiment utiles, ça marche sans, non ?
L'avantage de l'I2C est aussi de pouvoir mettre à l'heure la RTC depuis l'horloge, lorsqu'on appuie sur les boutons. L'open drain est possible avec toutes les pins du pic, le problème c'est que les pins sont déjà câblées pour l'affichage et les poussoirs. Si Alain envisage une RTC comme beaucoup l'ont conseillé, c'est à étudier.
Bonne semaine

Compilation programme
Pikachu
Débutant
Débutant
Messages : 60
Enregistré en : septembre 2016

#118 Message par Pikachu » lun. 30 août 2021 13:27

Bonjour a tout le forum,

satinas a écrit :Il y a de l'espoir, je suis à 0 seconde sur 12 heures, on va voir dans une semaine, puis un mois, puis après le réchauffement climatique. Temps-x, arrête de compter

Y'a bon :-D
Par contre il y a un bug, elle a pris 2 secondes de retard peu après l'allumage du PC et la mise en route du chauffage, puis 10 minutes après elle s'est recalée sur la bonne seconde, étrange. Ou alors c'est l'horloge Internet qui affiche n'importe quoi.

On a pourtant pas eu d'éruption solaire :wink:
Les transistors sont-ils vraiment utiles, ça marche sans, non ?

Tu ne serais pas un bourreau de Pic ? :lol:
Je concède que sur le net on trouve de tel schéma, les µC n’ont jamais été fait pour délivrer de la puissance.
Déjà moi j'ai remplacé les 100 Ω par des 470 Ω, ce qui me fait tirer 6 ma par sortie du PORTB, au lieu de 30 ma par les 100 Ω
Bonne soirée a tous

Compilation programme
satinas
Expert
Expert
Messages : 1490
Enregistré en : novembre 2015

#119 Message par satinas » lun. 30 août 2021 13:44

Peut être que les schémas qu'étaient pas bons sont devenus bons avec le temps :)
https://www.youtube.com/watch?v=T_V-bhHBJbQ

Compilation programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2890
Enregistré en : juillet 2016
Localisation : Terre

#120 Message par Temps-x » lun. 30 août 2021 21:22

Bonjour Pikachu, satinas, et tout le forum,

A voir ICI j'en dit pas plus....

satinas a écrit :Source du message Les transistors sont-ils vraiment utiles, ça marche sans, non ?

Personnellement je n'ai pas mi de transistor pour mes afficheurs, mais je pense que c'est mieux d'en mettre.

J'ai cablé le tout, et le programme tourne, il y a plus cas faire le comptage..... :sifflotte:

satinas a écrit :Source du message Temps-x, arrête de compter :-)


:sifflotte: ........... :langue: ........... exit ............

==> A+
: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 : satinas et 3 invités