Page 3 sur 3

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 19:24
par vague nerd
:lol:
ça te rappelle quelque chose ?
Voui. Mais je me refuse à admettre que je suis un vieux fossile. Je travaille dans le conseil nit/tic, que diable :mrgreen: (et l'expression "que diable" ne fait pas vieux fossile non plus !)
J'ai toujours pas compris ce que fait la carte (en tout cas pas ce que je comprend du datasheat)... mais j'ai pas re creusé depuis.

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 19:29
par guillaume9344
spourre a écrit : Je suis un vieux fossile, formé au C de Richie et Kernighan et au fork.
C aussi mon language de prédilection , pour la getion des gpio jutilise aussi la lib bcm2835.c:
http://www.airspayce.com/mikem/bcm2835/
avec comme plus pour moi , de pouvoir inclure directement les fichiers .c .h que j'ai besoin dans le projet de compil
et non de passer par un fichier deja compilé .o , je peux ainsi satisfaire à ma curiositée et inspecter les sources et tenter de comprendre un peu leurs fonctionnements.
@+

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 19:39
par vague nerd
@guillaume9344 : vous voulez pas acheter un rfid-rc522 (c'est pas cher ! 2 à 3 €) et conserver la même philosophie (.c .h pas .o), pour m'expliquer cette histoire d'irq bizzard ?
Ensuite, vous pouvez me wrapper le tout en python, svp ?
:lol: :lol: :lol: (je plaisante bien sûr...)

Cdt.

PS : j'ai moi aussi commencé par le c pas ++, puis le c++, avant de passer à java. Je suis toujours en pleine java... (avec ee et ses copains. En ce moment, je donne des formations java/j2ee/spring/hibernate... et struts ! Là, je cherche à intégrer le tout avec maven, toujours pour ces formations).

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 19:55
par spourre
guillaume9344 a écrit :
spourre a écrit : Je suis un vieux fossile, formé au C de Richie et Kernighan et au fork.
C aussi mon language de prédilection , pour la getion des gpio jutilise aussi la lib bcm2835.c:
http://www.airspayce.com/mikem/bcm2835/
avec comme plus pour moi , de pouvoir inclure directement les fichiers .c .h que j'ai besoin dans le projet de compil
et non de passer par un fichier deja compilé .o , je peux ainsi satisfaire à ma curiositée et inspecter les sources et tenter de comprendre un peu leurs fonctionnements.
@+
Je ne voudrais pas polluer le fil de notre modo et néanmoins ami, vague-nerd, mais comme il s'est frotté aux interruptions, j'espère qu'il nous pardonnera cette digression.

Le problème de l'utilisation des GPIO (I2C, SPI, autres pins) en lecture est que, majoritairement, on fait appel à une boucle infinie avec des sleep. AMHA, ceci constitue une horreur absolue et, pendant ce temps, le programme ne fait rien d'autre que d'attendre.
Sauf erreur de ma part, il n'y a pas de gestion des interruptions avec gestion priorité, interruption non masquable, ni dans le kernel, ni au niveau hard.
Il faut donc implémenter un ISR dans l'espace utilisateur (c'est mieux que rien).
La lib bcm2835, je cite le site, NE SAIT PAS LE FAIRE:
It provides functions for reading digital inputs and setting digital outputs, using SPI and I2C, and for accessing the system timers. Pin event detection is supported by polling (interrupts are not supported).
La libwiringPi semble en être capable et des exemples sont disponibles sur son site (exemple isr.c). Le principe est de lancer un thread qui lit le GPIO (thread assez légère) et d'armer une interruption dans le programme principal. La communication se fait par une variable mais il doit être possible d'utiliser un segment de mémoire partagée et/ou un pipe:
http://wiringpi.com/reference/priority- ... d-threads/

Comme je l'ai indiqué, il faut encore, pour une bonne compréhension, que je creuse la différence entre le fork (à l'ancienne) et le thread POSIX

Cordialement

Sylvain

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 20:01
par vague nerd
Je ne voudrais pas polluer le fil de notre modo et néanmoins ami, vague-nerd, mais comme il s'est frotté aux interruption, j'espère qu'il nous pardonnera cette digression.
Ben j'ai contribué à la digression, alors...
on fait appel à une boucle infinie avec des sleep. AMHA, ceci constitue une horreur absolue et, pendant ce temps, le programme ne fait rien d'autre que d'attendre.
Ben oui, +1 c'est une horreur absolue...
La lib bcm2835, je cite le site, NE SAIT PAS LE FAIRE:
...
La libwiringPi semble en être capable
...
Comme je l'ai indiqué, il faut encore, pour une bonne compréhension, que je creuse la différence entre le fork (à l'ancienne) et le thread POSIX
Haaaa, okok. Je n'avais pas compris votre post initial !
Cdt.

Re: Distributeur de croquettes - Mise au point du CdC

Posté : sam. 2 juil. 2016 21:30
par spourre
vague nerd a écrit ::lol:
...
Voui. Mais je me refuse à admettre que je suis un vieux fossile. Je travaille dans le conseil nit/tic, que diable :mrgreen: (et l'expression "que diable" ne fait pas vieux fossile non plus !)
J'ai toujours pas compris ce que fait la carte (en tout cas pas ce que je comprend du datasheat)... mais j'ai pas re creusé depuis.
Jamais je ne traiterais un modo de vieux fossile, c'est bien trop dangereux :mrgreen:
Un vieux fossile aurait utiliser diantre ou fichtre, voire mortbleu.
j'ai bien une hypothèse mais ce n'est qu'une hypothèse: l'interruption signale que le buffer de data est plein. Il n'est pas dit que la lecture vide le buffer, il y a peut-être une commande explicite à donner au contrôleur. Si mon hypothèse est bonne, cela explique le comportement que tu as expérimenté et reporté.
J'avance "step by step", sans commander ni cramer moult chinoiseries pas documentées ou pas adaptés à mes projets :twisted:
Pour le moment, je joue avec une breadboard et une poignée de composants (LED, résistances, circuits logiques..).
Cordialement

Sylvain