CPU Cycle Counter Example application for AVR UC3.
Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
#include <stdint.h>
#include <stdbool.h>
#include <asf.h>
Macros | |
#define | _ASSERT_ENABLE_ |
#define | EXAMPLE_TOGGLE_PIN AVR32_PIN_PA03 |
Toggle PA03 GPIO in the example upon COMPARE interrupts. More... | |
Example configuration | |
#define | EXAMPLE_DELAY_MS 100 |
Delay period between COMPARE interrupts given in milliseconds. More... | |
Functions | |
int | main (void) |
Application main loop. More... | |
Set_sys_compare (Get_sys_count()+delay_clock_cycles) | |
Variables | |
static volatile uint32_t | delay_clock_cycles |
Number of clock cycles representing the EXAMPLE_DELAY_MS. More... | |
static volatile uint32_t | number_of_compares = 0 |
Counter to store the number for COMPARE interrupts. More... | |
static volatile bool | toggle_gpio = false |
Flag to indicate that the GPIO line should be toggled. More... | |
#define _ASSERT_ENABLE_ |
#define EXAMPLE_DELAY_MS 100 |
Delay period between COMPARE interrupts given in milliseconds.
Example delay period between COMPARE interrupts given in milliseconds.
Referenced by main().
#define EXAMPLE_TOGGLE_PIN AVR32_PIN_PA03 |
Toggle PA03 GPIO in the example upon COMPARE interrupts.
Referenced by main().
int main | ( | void | ) |
Application main loop.
Main function sets the COMPARE register and enables the interrupt for COMPARE match. On every COMPARE match interrupt the GPIO line is toggled.
References Assert, AVR32_CORE_COMPARE_IRQ, cpu_irq_disable, cpu_irq_enable, cpu_ms_2_cy(), delay_clock_cycles, EXAMPLE_DELAY_MS, EXAMPLE_TOGGLE_PIN, Get_sys_compare, Get_sys_count, gpio_tgl_gpio_pin(), irq_initialize_vectors, irq_register_handler, Set_sys_compare(), sysclk_get_cpu_hz(), sysclk_init(), and toggle_gpio.
Set_sys_compare | ( | Get_sys_count()+ | delay_clock_cycles | ) |
Referenced by main().
|
static |
Number of clock cycles representing the EXAMPLE_DELAY_MS.
Referenced by main().
|
static |
Counter to store the number for COMPARE interrupts.