je cherche à réaliser un timer de 5 minutes. Actuellement mon arduino récupère des données RF en permanence donc il est bloqué dans cette fonction (si j'utilise les interruptions pour la réception de données RF, j'obtiens des parasites de courtes durées, ce qui n'est pas le cas avec la fonction pulseIn). Je souhaiterais donc un timer qui ne déclenche une interruption que toutes les 5 minutes afin de vérifier certains paramètres de "vie" de mon arduino (il fait partie d'une installation domestique et son indisponibilité trop longue peut être gênante). Si j'utilise un timer d'une seconde, ça va perturber la réception des données RF. Est-ce que quelqu'un aurait une idée? Au pire je pensais utiliser un module horloge programmable type DS1307 qui serait capable de me déclencher une alarme toutes les 5 minutes (j'en ai déjà vu mais je ne me souviens plus des réfs).
La réception des données RF devrait être fait sous interruptions.
Le calcul des données RF ce résume à quelques calculs logiques et décalages de bits.
PulseIn() étant bloquant ce n'est pas la solution la plus adapté pour économiser le temps libre.
Tu peut prendre exemple sur mon code blyss pour la réception RF sous interruptions (voir sur le forum).
@Skywodd : J'ai déjà testé le code blyss en utilisant les interruptions mais j'ai des parasites de 16microsecondes assez souvent donc aucune trame n'est réceptionnée correctement alors qu'en utilisant la fonction pulseIn je n'ai pas ces parasites. Je sais que cette fonction est bloquante mais c'est la seule qui marche pour le moment et comme je n'ai pas d'oscilloscope, impossible de voir si les parasites viennent du récepteur RF ou de l'arduino.
Si toutefois vous avez une astuce pour supprimer ces parasites, je suis preneur.
Chacks86:
Je sais que cette fonction est bloquante mais c'est la seule qui marche pour le moment et comme je n'ai pas d'oscilloscope, impossible de voir si les parasites viennent du récepteur RF ou de l'arduino.
Si l'interruption de l'arduino est déclenché c'est que ça vient du récepteur RF.
C'est quoi comme type de signal ?
En fait je reçois le signal de plusieurs sondes T°/Humidité WS1170 velleman (j'avais fait un post lorsque je cherchais le calcul du CRC). Pourtant la fonction pulseIn ne détecte pas ces parasites de 16 microsecondes. Il faudrait que je puisse voir la sortie du récepteur RF à l'oscilloscope pour savoir d'ou vient le problème.