Cours:ArduinoSansLoopSetup : Différence entre versions
m (Bjacquot a déplacé la page Cours:SansLibArduino vers Cours:ArduinoSansLoopSetup) |
|||
Ligne 1 : | Ligne 1 : | ||
Il est tout à fait possible de se passer complètement des librairies Arduino, tout en utilisant le logiciel Arduino ! | Il est tout à fait possible de se passer complètement des librairies Arduino, tout en utilisant le logiciel Arduino ! | ||
+ | Ou d'utiliser une partie de la librairie Arduino pour simplifier l'usage de certains périphériques. | ||
=liaison série= | =liaison série= | ||
Ligne 49 : | Ligne 50 : | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | =i2c= |
Version du 21 mai 2024 à 22:28
Il est tout à fait possible de se passer complètement des librairies Arduino, tout en utilisant le logiciel Arduino ! Ou d'utiliser une partie de la librairie Arduino pour simplifier l'usage de certains périphériques.
liaison série
On peut utiliser la classe Serial arduino, à condition d'autoriser les interruptions :
int main()
{
sei();
Serial.begin(9600);
while(1)
{
Serial.println("top");
_delay_ms(500);
}
}
Gestion du temps
Remplacement :
- utiliser _delay_ms à la place de delay
- utiliser _delay_us à la place de delayMicroseconds
S'il est indispensable d'utiliser les fonctions arduino delay/delayMicroseconds/millis/micros, il faut configurer le Timer1 de la façon suivante :
void initFonctionsTempsArduino()
{
sei();
// marche pour 328p et 2560 et autres ...
// à adapter suivant le µc
// cf https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/wiring.c
TCCR0A=(1<<WGM01)|(1<<WGM00);
TCCR0B=(1<<CS01)|(1<<CS00);
TIMSK0=(1<<TOIE0);
}
int main()
{
initFonctionsTempsArduino();
Serial.begin(115200);
while(1)
{
delay(100);
Serial.println(millis());
}
}