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 ---
Interruption et I2C
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Temps-x a écrit :Vu la vitesse ou tourne ton microcontrôleur(64Mhz) tu peux sans aucun problème lui faire tout faire, il faut juste les faire dans un bon ordre.
64/4=16MHz effectif 0.0625µS/cycle
inserer tous les traitements dans les gaps de 4mS - traitement raffraichissement affichage 7 segm => reste 3.6mS
ça fait effectivement 3600µS / 0.0625 => 57600 cycles - traitement duree interruption
- traitement RX UART interrupt
mais les repartir entre toutes les autres taches !!!
sinon interrupt toutes les mS .. et une machine d'etat
avec des traitement qui doivent etre inferieur à la ms ..
revient à faire un OS temps réel .. mais l'OS lui meme bouffe une grosse partie des ressources ..
je pense que ce serait possible , mais avec un affichage Fixe des messages sur les 12 matrices.
rafraichit chaque seconde
par contre
avec le mode defilant .. les 96 colonnes à rafraichir en SPI bit Bang + decalage ASM 96 bits + timing mini à respecter
tout en gardant la synchro des 6 afficheurs ( Interrupt TMR2 chaque 4mS)
+ le ruban 60 leds RGB en SPI2 chaque seconde (envoi de 2x 1480 bytes! avec respect du timming )
+ l'I2C RTC chaque seconde
+ UART en emission chaque seconde
(et Reception RX interrupt qui a besoin d'une fenetre temporelle pour pouvoir recevoir 3 à 63 caracteres )
+ 2 mesures OWS
ça commence à faire beaucoup , surtout pour imbriquer / synchroniser le tout
possible ? ..
mais pas pour moi , prise de tete pour economiser un MCU ?
à moins de découvrir une idée fulmineuse ?
le projet actuel
liaison d'info entre les 2 MCU
en I2C ou via UART
le MCU#1 recoit uniquement sur son RX UART ( MCU #2 envoi l'info HHMMSS sur le MCU Aff 7 segm) chaque seconde
en meme temps que sur la liaison BlueTooth
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Interruption et I2C
Interruption et I2C
- Gérard
Expert- Messages : 1640
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Temps-x a écrit :Bonsoir tout le forum,
Temps-x a écrit : Gérard... j'ai regardé le code de Claudius, ca te fait 4489 lignes d'assembleurs à lire (une banalité pour toi)
A+
Je n'ai pas encore commencé à regarder et toi tu me sapes le moral...
Interruption et I2C
- Gérard
Expert- Messages : 1640
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
paulfjujo a écrit :Gérard a écrit :
Je comprends bien que l'interruption n'est générée que si les bit prévus sont placés. En pooling, il faut tout le temps surveiller le bit xxIF. N'est ce pas gênant pour du PWM?
par contre je ne comprends pas bien tes besoins ( pas ceux naturels !) et ou tu veux en venir
L'association TMR2 et PWM est NATURELLE, et interne en HARDWARE .
on met dans PR2 la valeur du Duty cycle PWM ..et ça roule tout seul ..
pas besoin de gerer un flag ou interrupt
par contre si par ailleur tu as besoin d'un timer, prend en un autre (TMR4,TMR6) qui sont en 8 bits Auto-Relaod
ou un 16 bits ; Timer1,3, 5 qui ont un bit de start (TMR1ON_bit par exemple)
et utilise les interrupts pour faire des tempos ou autre traitement
car utiliser Timer2 ,déja pris par le PWM => Problemo
un timer utilisé en mode pooling , bloque quelque part le programme, puisqu'il faut surveiller le flag TMRxIF
mais il peut etre utilisé comme TimeOut ..pour ne pas rester bloqué dans une boucle sans fin , si il manque
une autre condition.
Je vais me replonger dans la doc. TMR2 et PWM peuvent fonctionner ensemble sans interruption?
Moi idée de départ était de piloter en PWM un logic level MOS pour varier l'éclairement des 120 LED.
Interruption et I2C
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
OK
as-tu un schema de connection pour ces 120 leds ?
si les leds sont multiplexé, la freqence PWM devra etre au moins 10 fois plus grande
PWM 8 bits suffisant ? (255 pas)
commande via le +alim => Mosfet canal P + etage inverseur de coammnde ( ex 2N2222)
commande coté GNd (0V) MOSFET canal N
à verifier le niveau global de tension aux bornes des ensembles de LED ( 1 à 1,5V par led rouge)
mettre une R en parallele sur l'ensemble des leds pour ameliorer la commutation du MOSFET ( chauffera moins)
avec R = Valim/( I globale/10) par exemple
on peut aussi utiliser un simili PMW avec un simple timer
exemple d'une guirlande de leds avec effets lumineux (rampe de montée et descente luminosité) ou clignotement
suivant une pattern donnée .. via Appli android et Bluetooth
[url=http://paulfjujo.free.fr/12F683_12F1840/12F683.htm#Guirlande_Led[/url]
c'est en C , mais avec de l'ASM
la version2 utilise le PWM hardware du PIC ...
Gérard a écrit :Moi idée de départ était de piloter en PWM un logic level MOS pour varier l'éclairement des 120 LED.
OK
as-tu un schema de connection pour ces 120 leds ?
si les leds sont multiplexé, la freqence PWM devra etre au moins 10 fois plus grande
PWM 8 bits suffisant ? (255 pas)
commande via le +alim => Mosfet canal P + etage inverseur de coammnde ( ex 2N2222)
commande coté GNd (0V) MOSFET canal N
à verifier le niveau global de tension aux bornes des ensembles de LED ( 1 à 1,5V par led rouge)
mettre une R en parallele sur l'ensemble des leds pour ameliorer la commutation du MOSFET ( chauffera moins)
avec R = Valim/( I globale/10) par exemple
on peut aussi utiliser un simili PMW avec un simple timer
exemple d'une guirlande de leds avec effets lumineux (rampe de montée et descente luminosité) ou clignotement
suivant une pattern donnée .. via Appli android et Bluetooth
[url=http://paulfjujo.free.fr/12F683_12F1840/12F683.htm#Guirlande_Led[/url]
c'est en C , mais avec de l'ASM
la version2 utilise le PWM hardware du PIC ...
Interruption et I2C
Bonjour Gérard, paulfjujo, et tout le forum,
paulfjujo as tu pensées de faire ton montage sans les interruptions, on le faisant tournée en boucle (je sais pu comment on appelle ça en dans la langue anglaise.
Pour Gérard
https://www.youtube.com/watch?v=N53I0CbDejo&t=1s
A+
paulfjujo as tu pensées de faire ton montage sans les interruptions, on le faisant tournée en boucle (je sais pu comment on appelle ça en dans la langue anglaise.
paulfjujo a écrit :Source du message c'est en C , mais avec de l'ASM
Pour Gérard
https://www.youtube.com/watch?v=N53I0CbDejo&t=1s
A+
Interruption et I2C
- Gérard
Expert- Messages : 1640
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Bonjour à tous,
Mon idée est de commander les LED avec des MCP23016 (pas de multiplexage). Une sortie à 1 allumera la LED, donc 120 résistances. Du coté GND un MOS commandé par PWM pour limiter l'éclairement la nuit.
Je viens de regarder la doc du 16F876 et il y a des trucs que je ne comprends pas.
Si je souhaite 50% de rapport cyclique, je charge PR2 à $FF et CCPR1L à $80, je démarre TMR2 et sur RC2 j'ai le résultat. C'est bien ça?
Et tout ça fonctionne en autonome sans interruption.
J'ai juste?
Temps-x, je ne crois pas que tu pourras m'endoctriner avec l'asm...
Bon WE à tous et merci de vous intéresser à mes petits soucis.
Mon idée est de commander les LED avec des MCP23016 (pas de multiplexage). Une sortie à 1 allumera la LED, donc 120 résistances. Du coté GND un MOS commandé par PWM pour limiter l'éclairement la nuit.
Je viens de regarder la doc du 16F876 et il y a des trucs que je ne comprends pas.
Si je souhaite 50% de rapport cyclique, je charge PR2 à $FF et CCPR1L à $80, je démarre TMR2 et sur RC2 j'ai le résultat. C'est bien ça?
Et tout ça fonctionne en autonome sans interruption.
J'ai juste?
Temps-x, je ne crois pas que tu pourras m'endoctriner avec l'asm...
Bon WE à tous et merci de vous intéresser à mes petits soucis.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Interruption et I2C
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Gérard a écrit :Mon idée est de commander les LED avec des MCP23016 (pas de multiplexage). Une sortie à 1 allumera la LED, donc 120 résistances. Du coté GND un MOS commandé par PWM pour limiter l'éclairement la nuit.
Ah oui, tu avais déja évoqué ce montage
et je t'avais aussi déja préconisé l'usage d'un Mosfet canal P coté + Alim, plutot que le Mosfet canal N coté 0V
pourquoi ?
parce que ton MCP23016 a une plus grande SORTANCE ( capabilité) en courant en mode SINK
plutot que mode SOURCE (revoir la datasheet du MCP23016)
la sortie passe à zero et tire le courant passant dans les leds ( meme si le sens electronique est inverse !)
forum Parallax
In the source mode, the LED lights when the pin is set High.
In the sink mode, the LED lights when the pin is set Low.
Since you can operate the LED in either mode, the choice of sourcing or
sinking often depends on how much current is required. For many devices,
they can sink more current than they can source, which would lead you to
choose sink mode.
tu ne montres pas COMMENT tu groupes tes 120 leds ?
Si je souhaite 50% de rapport cyclique, je charge PR2 à $FF et CCPR1L à $80, je démarre TMR2 et sur RC2 j'ai le résultat. C'est bien ça?
Et tout ça fonctionne en autonome sans interruption.
J'ai juste?
OUI ...
tu doit bien avoir une librairie PWM
un peu de lecture, meme si il y a du C .. c'est semblable
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Interruption et I2C
- paulfjujo
Expert- Messages : 2589
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
STATE MACHINE ?
quand il y a trop de boucles , ça fait un sac de noeuds .. aux neurones.
et j'ai pas d'épée pour les couper.
Temps-x a écrit :Bonjour Gérard, paulfjujo, et tout le forum,
paulfjujo as tu pensé de faire ton montage sans les interruptions, on le faisant tournée en boucle (je sais pu comment on appelle ça en dans la langue anglaise.
STATE MACHINE ?
quand il y a trop de boucles , ça fait un sac de noeuds .. aux neurones.
et j'ai pas d'épée pour les couper.
Interruption et I2C
Retourner vers « Coin Fourre-tout »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 64 invités