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 : Jérémy
Button et MCP23s17
-
folkeu08

Débutant- Messages : 64
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour,
J'essayue de me remettre au C et au PIC.
Pour sortir de la simple led à allumer, je passe par un MCP23s17. J'arrive à allumer les leds en sortie en l'indiquant en dur sans le soft.
Je suis passé à l'étape suivant à allumer la led qui correspond au même bit du button.
Et là, je calle !
J'ai repris vos bouts de code et les tutos, ca ne donne rien.
Je dois mal déclarer mon port D en entrée !
Je fais court car il est déjà bientôt 4h du mat et je coupe mes moteurs pour ce soir. Je oturne en rond avec ce truc. La nuit porte peut-être conseil.
Merci
François
J'essayue de me remettre au C et au PIC.
Pour sortir de la simple led à allumer, je passe par un MCP23s17. J'arrive à allumer les leds en sortie en l'indiquant en dur sans le soft.
Je suis passé à l'étape suivant à allumer la led qui correspond au même bit du button.
Et là, je calle !
J'ai repris vos bouts de code et les tutos, ca ne donne rien.
Je dois mal déclarer mon port D en entrée !
Je fais court car il est déjà bientôt 4h du mat et je coupe mes moteurs pour ce soir. Je oturne en rond avec ce truc. La nuit porte peut-être conseil.
Merci
François
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Button et MCP23s17
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Salut folkeu08,
J'ai regarder vite fait le code et le schéma .
C'est normal que rien ne fonctionne.
Ta boucle principale n'est jamais appelée ( void test) . elle est en commentaire. Même sans commentaire on appelle pas ça boucle principale, sinon on risque d'avoir des surprise de plantage. C'est la boucle principale qui appelle des fonctions.
De plus l'expander n'est pas bien configurer, Peut être que je ne l'ai pas vu mais par exemple la PIN reset de celui n'est jamais mis à 1 ?
Pareil pour la broche "CS" ( chip select)" qui doit etre à 0 pour activer le device.
Je ne vois rien non plus le SPI . On ne voit pas se que fais la fonction "expander" , je pense que c'est interne à mikroC ?
MISE A JOUR : tes interrupteurs sont aussi mal câblés. Ils doivent être à la masse avec les resistances de pull down et apres l'interrupteur on vient les mettre à Vcc . Actuellement quand le BP est ouvert tes entrées sont dans le vide.
Je ne vois pas la broche SCK clignoter. j'imagine que comme c'est une horloge on devrait observer un changement d'état cyclique ? avec un oscillo peut etre ?
Désolé je n'ai jamais fait de la simulation .
essaye de partir sur ces quelques infos cela devrait s'arranger !
A+
Jérémy
J'ai regarder vite fait le code et le schéma .
C'est normal que rien ne fonctionne.
Ta boucle principale n'est jamais appelée ( void test) . elle est en commentaire. Même sans commentaire on appelle pas ça boucle principale, sinon on risque d'avoir des surprise de plantage. C'est la boucle principale qui appelle des fonctions.
De plus l'expander n'est pas bien configurer, Peut être que je ne l'ai pas vu mais par exemple la PIN reset de celui n'est jamais mis à 1 ?
Pareil pour la broche "CS" ( chip select)" qui doit etre à 0 pour activer le device.
Je ne vois rien non plus le SPI . On ne voit pas se que fais la fonction "expander" , je pense que c'est interne à mikroC ?
MISE A JOUR : tes interrupteurs sont aussi mal câblés. Ils doivent être à la masse avec les resistances de pull down et apres l'interrupteur on vient les mettre à Vcc . Actuellement quand le BP est ouvert tes entrées sont dans le vide.
Je ne vois pas la broche SCK clignoter. j'imagine que comme c'est une horloge on devrait observer un changement d'état cyclique ? avec un oscillo peut etre ?
Désolé je n'ai jamais fait de la simulation .
essaye de partir sur ces quelques infos cela devrait s'arranger !
A+
Jérémy
Button et MCP23s17
-
folkeu08

Débutant- Messages : 64
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour Jeremy,
J'ai a revoir mes classiques ! Ca fait longtemps que j'ai pas touché à l'électronique.Je suis partis de ce scgéma pour mes boutons mais c'est faux donc :
C'est juste mes boutons mal câblés. Je les ai remis comme montré ici :
J'ai remis le source de l'aide des button de MikroC et ca fonctionne maintenant.
le MCP23S17 est normalement bien cablé car lorsque je lui dde en dur d'afficher par cette commande, il m'éclaire le bonne led.
Maintenant étape suivante, le MCP23s17 en entrée avec les switch pour piloter des leds en direct sur un port.
Est-il nécessaire d'activer les interruptions lorsque l'on appuie sur un button ?
François
J'ai a revoir mes classiques ! Ca fait longtemps que j'ai pas touché à l'électronique.Je suis partis de ce scgéma pour mes boutons mais c'est faux donc :

C'est juste mes boutons mal câblés. Je les ai remis comme montré ici :

J'ai remis le source de l'aide des button de MikroC et ca fonctionne maintenant.
le MCP23S17 est normalement bien cablé car lorsque je lui dde en dur d'afficher par cette commande
Code : Tout sélectionner
Expander_Write_PortA(0, 0b10000000)Maintenant étape suivante, le MCP23s17 en entrée avec les switch pour piloter des leds en direct sur un port.
Est-il nécessaire d'activer les interruptions lorsque l'on appuie sur un button ?
François
Button et MCP23s17
Button et MCP23s17
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
folkeu08 a écrit :Est-il nécessaire d'activer les interruptions lorsque l'on appuie sur un button ?
François
Pourquoi gerer des boutons (SW1 et SW2) de maniere differente ?
L'usage d'interruption pour la detection d'appui sur BP
est necessaire suivant l'utilisation qu'on en fait et du contexte ...
si on a besoin d'une grande reactivité (le minimum de temps de reponse à l'appui sur un BP)
et si la boucle principale du programme a une grande durée ( grande = >1 sec)
par exemple, si elle dure 2sec ,
sans interruption il faudra appuyer ou relacher le BP pendant 2sec dans le pire des cas ..
pour tester l'etat des boutons..en mode pooling
ou sinon on bloque l'avancement du programme
pendant une boucle de test de l'etat des boutons
et on ne fait rien d'autre ....ou eventuellement faire un affichage LCD , à la place du delai de scrutation
pendant cette boucle d'attente Test appui BP
nota:
il faut un delai minimum de 20 à 50mS pour supprimer les rebonds de contacts
même avec une detection par interruption !
( ou compter un certain nombre de fois que l'etat logique est stable pour le declarer valable)
* le MCP2317 a une sortie specifique INT pour declarer un changement d'etat sur son port de lecture
Button et MCP23s17
-
folkeu08

Débutant- Messages : 64
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour LP_2 et paulfjujo,
A partir de vos information, je pense donc avoir besoin des interruptions déclenchées à partir du MCP23s17.
Le projet est de piloter à partir des starts "machine" d'une console (de mélange audio) pour radio (FM)
toute la signalisation antenne ("on air") et de déclencher également les starts des platines CD virtuelles de Mixxxx (https://mixxx.org/).
Je n'ai jamais joué avec les interruptions !
Voici mon schéma du projet (mais certainement avec des erreurs puisque je me suis trompé dans le schéma de proteus ! pour les buttons).
Où dois-je connecter l'interruption du MCP23s09 sur le 18f4550 ?
Je vais devoir certainement aussi connecter les start machine sur un MCP23s09 our tout regrouper sur un MCP23s17 et la seconde question, est-ce que je dispose de deux entrées d'interruption distinctes sur le 18f4550 ?
Merci
François
Je me reponds pour votre validation. Il existe bien plusieurs broches d'interruptions sur le 18f4550.
Je serai pour faire une boucle qui scrute continuellement le port B où sont connectées les machines, sollicitées régulièrement. Je ne mettrai qu'une interruption sur les micros. Ce qui fait qu'il me faut redistribuer mon port B pour libérer soit int0, int1 ou int2.
A partir de vos information, je pense donc avoir besoin des interruptions déclenchées à partir du MCP23s17.
Le projet est de piloter à partir des starts "machine" d'une console (de mélange audio) pour radio (FM)
toute la signalisation antenne ("on air") et de déclencher également les starts des platines CD virtuelles de Mixxxx (https://mixxx.org/).Je n'ai jamais joué avec les interruptions !
Voici mon schéma du projet (mais certainement avec des erreurs puisque je me suis trompé dans le schéma de proteus ! pour les buttons).
Où dois-je connecter l'interruption du MCP23s09 sur le 18f4550 ?
Je vais devoir certainement aussi connecter les start machine sur un MCP23s09 our tout regrouper sur un MCP23s17 et la seconde question, est-ce que je dispose de deux entrées d'interruption distinctes sur le 18f4550 ?
Merci
François
Je me reponds pour votre validation. Il existe bien plusieurs broches d'interruptions sur le 18f4550.
Je serai pour faire une boucle qui scrute continuellement le port B où sont connectées les machines, sollicitées régulièrement. Je ne mettrai qu'une interruption sur les micros. Ce qui fait qu'il me faut redistribuer mon port B pour libérer soit int0, int1 ou int2.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Button et MCP23s17
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Ce qui fait qu'il me faut redistribuer mon port B pour libérer soit int0, int1 ou int2.
oui, je le pense aussi,
car sur ce MCU ,il n'y a que le PORTB qui peut etre assigné
nota : sur les nouveaux PIC, comme le 18Fx7K2 on peut changer de port
ou utiliser d'autres pins ..
Où dois-je connecter l'interruption du MCP23s09 sur le 18f4550 ?
si 1 seule source d'interrupt ... RB0
l'interrupt la plus directe
oui, je le pense aussi,
car sur ce MCU ,il n'y a que le PORTB qui peut etre assigné
nota : sur les nouveaux PIC, comme le 18Fx7K2 on peut changer de port
ou utiliser d'autres pins ..
Où dois-je connecter l'interruption du MCP23s09 sur le 18f4550 ?
si 1 seule source d'interrupt ... RB0
l'interrupt la plus directe
Button et MCP23s17
-
folkeu08

Débutant- Messages : 64
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour paulfjujo,
Je veux bien utiliser un autre PIC tant que j'ai un port USB pour dialoguer avec Mixx pour faire reconnaitre mon interface comme clavier en mode HID
Justement Int0 est aussi sur la pin hardware du SPI, je pensais aussi modifier mon début de code pour utiliser la fonction "soft_spi" de mikroC pour assigner le dialogue spi sur d'autres pins disponibles du 4550.
-> Je regarde donc à une autre référence de pic en x7K2
François
=> J'ai trouvé le PIC18F67K22 mais le PIC18F65K22 devrait me suffire amplement en mémoire (à voir en fonction de prix de vente !)
Je n'ai jamais soudé aussi petit et j'ai pas le matos pour ! D'autres questions arriveront donc avec quel matos souder ces bêtes ?
Idem pour programmer ces bestioles, j'ai de quoi faire en PDip mais pas en boitier QFN. -> Je veux bien un schéma de base pour lui injecter le prog en 'In Situe".
nota : sur les nouveaux PIC, comme le 18Fx7K2 on peut changer de port
Je veux bien utiliser un autre PIC tant que j'ai un port USB pour dialoguer avec Mixx pour faire reconnaitre mon interface comme clavier en mode HID
ou utiliser d'autres pins ..
Justement Int0 est aussi sur la pin hardware du SPI, je pensais aussi modifier mon début de code pour utiliser la fonction "soft_spi" de mikroC pour assigner le dialogue spi sur d'autres pins disponibles du 4550.
-> Je regarde donc à une autre référence de pic en x7K2
François
=> J'ai trouvé le PIC18F67K22 mais le PIC18F65K22 devrait me suffire amplement en mémoire (à voir en fonction de prix de vente !)
Je n'ai jamais soudé aussi petit et j'ai pas le matos pour ! D'autres questions arriveront donc avec quel matos souder ces bêtes ?
Idem pour programmer ces bestioles, j'ai de quoi faire en PDip mais pas en boitier QFN. -> Je veux bien un schéma de base pour lui injecter le prog en 'In Situe".

Button et MCP23s17
Button et MCP23s17
-
folkeu08

Débutant- Messages : 64
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Je repars en recherche mais j'ai aussi trouvé un
* PIC18F47K40 qui reste en PDIP et le SPI est remapable (d'après le data). -> Cekui-ci est simulable dans proteus
* PIC18F47K42 qui reste en PDIP et le SPI est remapable (d'après le data). -> Cekui-ci n'est pas simulable dans proteus car n'existe pas dans la bibliothèque.
Est-ce génant que j'utilise un PIC18F47K40 ?
* PIC18F47K40 qui reste en PDIP et le SPI est remapable (d'après le data). -> Cekui-ci est simulable dans proteus
* PIC18F47K42 qui reste en PDIP et le SPI est remapable (d'après le data). -> Cekui-ci n'est pas simulable dans proteus car n'existe pas dans la bibliothèque.
Est-ce génant que j'utilise un PIC18F47K40 ?
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

