Introduction
L'exemple de communication UART est assez simple puisque nous utilisons la librairie AVRlib qui contient des fonctions prête à l'emploi pour communiquer sur l'UART. Cette librairie UART est basée sur l'utilisation des interruptions.
Un pré-requis est donc d'avoir la librairie installée et configurée sur votre PC (voir le tutoriel).
Cet exemple de code est adapté aux microcontrôleurs AVR ne possèdant qu'un seul UART. Sachez cependant que la librairie AVRlib comporte également un groupe de fonctions pour les AVR à plusieurs UART, nous vous conseillons de vous référez à la documenation de la librairie pour plus d'informations.
Description rapide la librairie
Les fonctions suivantes sont disponibles pour la communication uart dans AVRlib :Avant toute communication, il vous faudra donc faire appel aux fonctions uartInit et uartSetBaudRate, la fonction uartInitBuffers étant appelée implicitement.
Les fonctions de réception et d'envoi sont ensuite assez simple d'utilisation. Il faut juste bien comprendre que la librairie fonctionne par interruptions et que les données reçues sont stockées dans un gros buffer dont la taille est définie par l'utilisateur et qu'il ne suffit donc que de venir lire dans ce buffer les octets un à un.
Notre exemple montre l'utlisation des fonctions de cette librairie, vous devriez donc, en le parcourant, comprendre comment utiliser cette librairie.
Téléchargez les fichiers
Les fichiers qui suivent ont été testés pour les cartes citées ci-dessous et peuvent trêtre utilisées sur vos propres cartes ou d'autres cartes. Les seules différences à noter entre les deux versions est que le fichier timer de AVRlib utilisé change entre les microcontrôleurs de la gamme ATmegax8 et le microcontrôleur ATmega8 de la carte myAVR ainsi que la fréquence de fonctionnement (F_CPU dans le fichier global.h). Le changement de fréquence est plus une particularité inhérente aux cartes utilisés pour les tests, à vous de régler ce paramètre selon vos utilisations.
ATmega8 (mySmartControl M8 ou myAVR Board avec ATmega8) : Télécharger
ATmega168 ou autre microcontrôleur de la gamme ATmegax8 (mySmartControl M168) : Télécharger
Source (.c)
Header (.h) global (ATmega8)
Header (.h) global (ATmegax8)
Makefile (ATmega8)
Makefile (ATmegax8)