Bonjour,
Dans un programme de gestion de 4 afficheurs 7 segments (qui fonctionne) le programme fait appel à des fonctions contenues dans un fichier .h.
Pourriez-vous me dire ce que font les deux lignes en rouge ?
sbi positionne à 1 un bit dans un port d'entrée/sortie. sbi = Set BIt
cbi positionne à 0 un bit dans un port d'entrée/sortie. cbi = Clear BIt
PORT = adresse du registre à modifier
bit = n° du bit (valeur de 0 à 7) à modifier dans le registre
Je parle de port d'entrée/sortie parce que le mot PORT apparaît dans le define mais en fait cette macro fonctionne aussi bien avec n'importe quel registre accessible en lecture/écriture
number %= 1000;
number = number % 1000;
Oui cette équivalence est vraie.
Pour info les mises en forme ne fonctionnent pas entre les balises code.
Quand on voit cette dernière fonction on s'aperçoit que le tableau sert à mémoriser l'état des pullup en sortie. Donc il faut bien renseigner le tableau lorsque leur état change.
A mon sens les 2 premières fonctions devraient être écrite comme ça:
Icare quand je te dit que le code de cette librairie est buggé c'est pas pour rien (cf ton autre topic) ...
La preuve il y a deux ans j'avais même pas vu une erreur aussi basique qu'une "assignation-test".
(j'ai des circonstances atténuantes Mr le juge, j'étais un jeune con "codant" en BASIC sur Cubloc )
Donc je le répète encore une fois : cette librairie NE MARCHE PAS (du moins pas les interruptions).
Faudrait tout reprendre de zéro, en l'état cette librairie est un bourbier infâme.
fdufnews pour les deux fonctions c'est bien comme ça quelles auraient toujours du être écrites.
Mais mon principe d'un buffer "PCFPULL" pour les pullup / pulldown est à revoir, ça n'as pas de sens.
Icare quand je te dit que le code de cette librairie est buggé c'est pas pour rien (cf ton autre topic) ...
La preuve il y a deux ans j'avais même pas vu une erreur aussi basique qu'une "assignation-test".
(j'ai des circonstances atténuantes Mr le juge, j'étais un jeune con "codant" en BASIC sur Cubloc )
Skywodd je n'ai jamais dit que ton code était buggé, je n'ai pas la compétence pour affirmer ce genre de chose. j'essaye juste de comprendre ce qui a été écrit. Et je remercie au passage tous les membres du forum pour leur aide précieuse. "M le Juge moi aussi j'ai des circonstances atténuantes car je fais parti des vieux qui essayent de rester dans la course de l'évolution technique"
skywodd:
Donc je le répète encore une fois : cette librairie NE MARCHE PAS (du moins pas les interruptions).
Faudrait tout reprendre de zéro, en l'état cette librairie est un bourbier infâme.
Tu sais avec l'âge on entend un peu moins bien et il faut souvent répéter les choses, en l’occurrence pour cette librairie qui m’intéresse beaucoup d'un point de vue interruption. Alors j'essaye d'y mettre le peu d'énergie et de temps qui me reste.
A défaut d'avoir une solution qui fonctionne, j'essaye de tout comprendre alors il faudra s'attendre à ce que je pose des questions (essayez de repenser à vos débuts).
Si mes questions vous importunent, vous m'en voyez navré, ce n'est en aucun cas le but. Il suffit de me le faire savoir et je me retire sur la pointe des pieds. En tout cas merci pour votre aide.
Peut être à bientôt
icare: Skywodd je n'ai jamais dit que ton code était buggé, je n'ai pas la compétence pour affirmer ce genre de chose. j'essaye juste de comprendre ce qui a été écrit. Et je remercie au passage tous les membres du forum pour leur aide précieuse.
C'est moi qui le dit
Cette librairie est une catastrophe, j'avais même pas eu le courage à l'époque de faire la transition 0022 -> 1.0
icare: "M le Juge moi aussi j'ai des circonstances atténuantes car je fais parti des vieux qui essayent de rester dans la course de l'évolution technique"
Objection votre honneur ! C'était ma réplique ça
icare:
Tu sais avec l'âge on entend un peu moins bien et il faut souvent répéter les choses, en l’occurrence pour cette librairie qui m’intéresse beaucoup d'un point de vue interruption. Alors j'essaye d'y mettre le peu d'énergie et de temps qui me reste.
A défaut d'avoir une solution qui fonctionne, j'essaye de tout comprendre alors il faudra s'attendre à ce que je pose des questions (essayez de repenser à vos débuts).
Si mes questions vous importunent, vous m'en voyez navré, ce n'est en aucun cas le but. Il suffit de me le faire savoir et je me retire sur la pointe des pieds.
Pas besoin de me vouvoyez
Et ça me dérange pas, ya pas de probléme.
Pour les interruptions le plus simple pour avoir des info sur leurs fonctionnements c'est la doc officielle http://www.nxp.com/documents/data_sheet/PCF8574.pdf
-> Diagramme 7 page 9 pour le schéma de principe
-> Chapitre 7.2 page 12 pour les explications sur les interruptions
Sinon ce WE je reprend le code, ça promet vu les boulettes déjà citées plus haut