Étape 5: Exemple de Code AVR [facultatif]
OK Ok je ne voudrais pas vous laisser pendre. Je pense que vous êtes probablement tous capables de lire les broches e/s, donc ce n’est pas destiné à insulter votre intelligence. C’est juste un bref extrait que j’ai écrit pour lire les broches et envoyer les données par l’intermédiaire de l’USART dans le ATmega328p à un port série sur ma boîte de FreeBSD.Je n’utilise pas les bibliothèques Arduino, C juste pur donc vous devrez peut-être ajuster les vôtres en conséquence. Il peut y avoir une façon plus élégante de le faire, mais c’est ce que je suis venu avec.
#include <avr/io.h>#include <util/delay.h>#include "uart.h"#define SWITCH_M 0b00111100int main(){ USART_init(BAUD_9600); DDRD = 0x00; // inputs for switches PORTD = 0xFF; // pullup on PD[2..5] (we have negative logic on switch now) uint8_t bcode = 0x00; for (;;) { bcode = (PIND & SWITCH_M); // bcode = 00xxxx00 bcode = (bcode >> 2); // bcode = 0000xxxx bcode |= 0xF0; // bcode = 1111xxxx USART_tx(~bcode); // bcode = 0000xxxx bcode = 0x00; _delay_ms(2000); } }
À partir de mon passage de roue à 0 et le vélo j’obtenir le résultat suivant :
0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
J’espère que vous avez apprécié cette instructable ! Si vous avez des questions n’hésitez pas à me contacter ici, par courriel ou sur notre IRC channel sur irc.freenode.net #instructables