Je viens vers vous car je rencontre un soucis à l'utilisation des registres de l'atmega 328.
Je souhaite pour le moment simplement faire clignoter une LED ( Deux ici en l'occurence ) mais j'ai l'impression que la fonction "delay" ne marche pas si on ne fait pas appel aux deux fonctions de base :
Void loop et void setup.
Faut-il obligatoirement utiliser les deux fonctions de base pour pouvoir utiliser"delay" ?
Merci d'avance pour vos réponses ! (Edit : Je usis vraiment aveugle merci ! )
Merci de ta réponse mais justement je voudrais ne pas utiliser tout ce qui est void loop/Setup pinmode etc mais travailler directement avec les registres de configurations de port etc mais tout en gardant la possiblité d'utiliser les biblio de delay ou autre si besoin..
Ce n'est pas une question de loop ou de setup, enfin pas directement.
delay() n'est pas un fonction C/C++ , c'est une fonction qui appartient a la bibliothèque arduino.
Pour pouvoir l'utiser tout en restant avec un fichier main classique comme le tien il faut :
ajouter tous les fichiers du "core" arduino dans ton projet ou en faire une bibliothèque statique
lancer la fonction "arduino" init () .
La fonction init configure un certain nombre de périphériques de la puce comme les timers, UART, etc
Si ton besoin dans les fonctions "arduino" est limité à l'usage de delay () ce n'est pas la peine de compiler toute la bibliothèque arduino, il existe une fonction de l'avr-libc "_delay_ms () " qui est d'origine avec gcc-avr.
PS : Change le titre de ton premier message car ce n'est pas un problème de registre,
Les titres servent à faire des recherches, merci.
Justement je pensais que dans le setup il devait y avoir une implémentation des différentes bibliothèques à ce niveau là.
Comment je peux donc ajouter tout les fichiers "core" d'arduino , ou à défauts en faire des bibliothèques ?
Merci pour la bibliothèque avr j'avais fait une faute dans l'appel de la fonction , j'étais resté sur le double __ de microchip
Justement je pensais que dans le setup il devait y avoir une implémentation des différentes bibliothèques à ce niveau là.
Eh bien non.
Il faut bien comprendre que l'ensemble IDE/fonctions a été développé pour permettre l'accès à la programmation à des volontaires qui partent de zéro et que cela fonctionne.
Il faut distinguer les fonctions Wiring/arduino de l'IDE Wiring/Arduino.
Chacun dans son coin essaye de cacher le plus de choses à l'utilisateur néophyte.
Les fonctions on en a déjà parlé, l'IDE suit la même démarche simplificatrice à l'extrême.
Par exemple dans l'IDE tu ne crée pas de fichiers *.c ou *.cpp mais un *.pde (Wiring) ou un *.ino (arduino).
Il n'est pas nécessaire de déclarer les fonctions avant leur utilisation : c'est l'IDE qui créera le fichier main.cpp et qui fera les déclarations à la place de l'utilisateur.
Le travail de l'utilisateur peut se limiter à compléter deux fonctions :
setup qui s'exécute avant la boucle infinie et qui donc ne sera exécuté qu'une seule fois. C'est l'emplacement idéal pour les configurations du matériel
loop qui est la boucle infinie.
Il est quand même possible j'ajouter d'autres fonctions.