Untitled
unknown
plain_text
2 years ago
1.3 kB
4
Indexable
#include "Platform.h" static volatile unsigned tick; __attribute__((interrupt("machine"))) void irq_handler(void) { // Appeler le gestionnaire d'interruptions du pilote de l'interface série. UART_irq_handler(uart); UART_irq_handler(sonar_uart); // Incrémenter le compteur tick à chaque interruption du timer. if (Timer_has_events(timer)) { Timer_clear_event(timer); tick ++; } } void main(void) { // Initialiser le pilote de l'interface série // et afficher un message de bienvenue. UART_init(uart); UART_puts(uart, "Sonar Demo.\n"); // Configurer le timer pour demander des interruptions // dix fois par seconde. Timer_init(timer); Timer_set_limit(timer, CLK_FREQUENCY_HZ / 10); Timer_enable_interrupts(timer); // Initialiser le récepteur série associé au sonar Sonar_init(sonar); tick = 0; unsigned tock = 0; // Exécuter jusqu'à ce que l'utilisateur presse une touche. while (!UART_has_data(uart)) { // Mettre à jour la distance mesurée par le sonar. uint8_t dist = Sonar_update(sonar); if (tick != tock) { // Ici, on peut faire quelque chose avec dist. // ... tock ++; } } }
Editor is loading...