Language arduino avancé

Bonjour, j'aimerais approfondir mes connaissances du langage C arduino, Et j'ai vu qu'il y avais des fonctions et déclaration plus avancées que basiquement, Par exemple "PORTB = B0010" bon ça j'ai compris mais j'aimerais un site qui expliques toutes des déclarations (DDRD, EICRA, EIMSK, ...).
Un site qui explique tout le langage avancé arduino.

Merci de votre aide,
Pierre-Yves

Ce que tu site n'est pas du "langage C" mais des accès directs aux registres des périphériques internes du processeur ATmega.

Pour connaitre elur fonctionnement, tu peux lire la doc du composant disponible sur le site d'ATMEL ici :
http://www.atmel.com/devices/ATMEGA328P.aspx?tab=documents

prendre le gros PDF : ATmega48A/PA/88A/PA/168A/PA/328/P Complete

567 pages. Bonne lecture :wink:

Sinon il existe peut être des tutos dispo sujet par sujet.

Mais attention, quand on commence à toucher les ressources du processeur, il faut savoir ce qu'on fait et savoir ce que l'environnement Arduino fait déjà de ces ressources.
par exemple si tu commence à bricoler le TIMER 0, ne t'étonne pas que millis() ne marche plus correctement. De même avec les autres TIMER c'est le analogWrite() qui risque d'avoir le hoquet.
Mais c'est aussi des façon de faire des choses que les fonctions standards ne peuvent pas faire comme faire du PWM à des fréquences différentes de la valeur standard.

Mais au dela du "langage" lui même, aller plus loin c'est aussi appréhender des concepts de programmation plus avancés.
Programmation objet, multi-tâche, ...

Ok, merci, je sent que je vais bien m’amuser a lire ça ^^
Oui je sais bien pour les TIMERS et tout, mais c’est pour plus tard écrire des librairies.
Je ne savais pas qu’on pouvait faire de la POO en C avec l’arduino …
et pour le multi taches, il faut un kernel modifié non ? par exemple DuinOS.

Salut,

pierreyves258:
Je ne savais pas qu'on pouvait faire de la POO en C avec l'arduino ...

Tu peut faire de la POO vu que l'ide arduino utilise la toolchain avr-gcc qui comporte un compilateur c++.
Il ne faut pas tout voir comme "arduino", arduino c'est juste une surchouche (une librairie en gros) qui fait ce que l'on fait normalement soit même en programmation c/c++ AVR (mais de manière pas trés propre parfois).
En arduino tout (ou presque) est de la POO, excepté les fonctions trés basique (digitalWrite, etc).

pierreyves258:
et pour le multi taches, il faut un kernel modifié non ? par exemple DuinOS.

Pour faire du multi tache il faut un RTOS (ou juste programmer intelligemment), duinos par exemple est un kernel FreeRTOS orienté arduino.

"Il n'y as pas que arduino dans la vie"
Si tu veut te lancer dans le développement natif sur plateforme AVR fait un tour ici :
http://www.avrfreaks.net/ :wink:

Ok :slight_smile:
merci