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
Compilation programme
Bonjour Pikachu, satinas, et tout le forum,
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
Maintenant voici une modification pour choisir les broches quand désir allumer
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
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
On verras si je fais mieux que toi..... 
A+
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
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
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.
Compilation programme
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.
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
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
Bonjour a toute la compagnie,
Je suis avec avidité ce fil
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 :
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
Je suis avec avidité ce fil
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 :
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
Bonjour Pikachu, satinas, et tout le forum,
Ben ouais.....
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
Quand à l'afficheur, c'est idem à ce que j'ai dit au dessus.
pour le montage Pikachu j'en suis pas encore là, je réfléchis avant d'agir.
Comme le dirais paulfjujo, ... à suivre.
A+
satinas a écrit :Source du message j'ai du mal à voir ce que tu vas faire, tu vas compter les instructions ?![]()
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
Comme le dirais paulfjujo, ... à suivre.
Compilation programme
Bonsoir a tous,
Pas de soucis dès l'origine, j'avais câblé des 470 Ω
A bientôt pour la suite
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
Compilation programme
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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)
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)
Compilation programme
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
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
Bonjour a tout le forum,
Y'a bon
On a pourtant pas eu d'éruption solaire
Tu ne serais pas un bourreau de Pic ?
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
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
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
Les transistors sont-ils vraiment utiles, ça marche sans, non ?
Tu ne serais pas un bourreau de Pic ?
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
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
https://www.youtube.com/watch?v=T_V-bhHBJbQ
Compilation programme
Bonjour Pikachu, satinas, et tout le forum,
A voir ICI j'en dit pas plus....
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.....
...........
...........
............
A+
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.....
satinas a écrit :Source du message Temps-x, arrête de compter
............Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 10 invités


