Voilà je souhaiterai ajouter une simple temporisation, exécutée qu'une fois, un retard disons, avec la fonction millis car je ne souhaite pas que cela influe sur la boucle, comment faire ?
J'ai bien essaye mais je n'arrive qu'a faire une temporisation en boucle (ex:blinkWithoutDelay) hors je souhaite que la tempo ne s’exécute qu'une fois sur commande d'un bouton poussoir par exemple.
ex: quand mon entrée (inter) est à 1, la sortie (led) ne s'allume qu'au bout de 3 secondes, quand mon entrée est à 0 , la sortie à zero sans temporisation.
quand mon entrée (inter) est à 1, la sortie (led) ne s'allume qu'au bout de 3 secondes, quand mon entrée est à 0 , la sortie à zero sans temporisation.
Attention à la section critique : que doit-il se passer si l'interrupteur revient à 0 AVANT la fin des 3 secondes.
Ne pas oublier l'anti rebond : un interrupteur simplement relié à une pin d'Arduino va faire des oscillation 0/1 à chaque changement d'état avant d'avoir un état stable au bout de quelques millisecondes.
tu utilise encore le 023 ? peut-être qu'il serait temps de passer à plus récent, car la majorité des exemples et des librairies que tu trouvera ne compileront plus là dessus...
Il reste beaucoup d'exemples 0023 mais c'est surtout sans compter les bugs des vielles versions.
Il est temps de passer à la 1.0.1 (et même dans certains de mettre les MàJ de GitHub et de WinAVR)
Même si le C définit des règles de priorité, je préfère m'encombrer l'esprit d'autres informations et mettre systématiquement des parenthèses.
Ton code est peut être exact mais celui-ci est franchement plus lisible et sans ambiguité d'interprétation :
if ( ((Time-oldtime) > interval) && (inter == 1) ){
Il faut que oldtime ET interval soit tous les deux des unsigned long comme Time et millis().
Dans ce cas ca devrait marcher.
Si tu mélanges des unsigned et des signed dans une même opération, tu cours à la catastrophe.
Ma lib n'a jamais été testée sur ChipKIt
PS: Pour éviter les erreurs d'interprétation, je suggère de systématiser [ChipKitMax32] (ou autre forme) dans le titre d'un topic si la plateforme n'est pas une Arduino standard.
oui en fait j'ai décidé de développer sur chiptkit car mon programme au final sera assez lourd (thermoucple,tachymetre,asservissement de la vitesse, ....), la vitesse d'horloge étant beaucoup plus rapide que sur l'Arduino, mais vu la sortie de la Mega 2560, je pense que je vais passé sur cette plateforme, ce sera plus simple pour moi.
Mike74:
oui en fait j'ai décidé de développer sur chiptkit car mon programme au final sera assez lourd (thermoucple,tachymetre,asservissement de la vitesse, ....), la vitesse d'horloge étant beaucoup plus rapide que sur l'Arduino, mais vu la sortie de la Mega 2560, je pense que je vais passé sur cette plateforme, ce sera plus simple pour moi.
Mega2560 ou Due ? C'est la Due qui vient de sortir.
Croire que ce sera plus simple est une erreur, pour le moment le software est en beta, comme avec la chipkit.
Du fait qu'il s'agit d'une carte officielle il y aura surement plus de support / aide que pour la chipkit (quoi que ... à voir).
Il faut bien se rappeler que la Due (comme la Chipkit) n'utilise pas le même CPU qu'une carte arduino classique.
Donc toute les librairies un peu poussé doivent être reprise et porté pour le nouveau CPU.
non je parlais de la Mega 2560 Rev3 et je pensais que le software 1.0.1 était compatible, merci pour l'info, donc je vais resté sur ChipKitmax32 alors.
Mike74:
non je parlais de la Mega 2560 Rev3 et je pensais que le software 1.0.1 était compatible, merci pour l'info, donc je vais resté sur ChipKitmax32 alors.
Ok, si tu parle de la mega2560 ça fait déjà un bon moment qu'elle est sorti
L'ide 1.0.1 est 100% compatible avec la mega2560, de même que la plupart des librairies existante.
Niveau CPU la mega2560 à un ATmega comme les arduino classique, par contre niveau puissance c'est la même chose qu'une carte classique.
(juste des broches en plus et une mémoire plus grande)