#include <asf.h>
#include "arduino_due_x.h"
#define STRING_EOL "\r"
#define STRING_HEADER "-- DUE Programm --\r\n" \
"-- "BOARD_NAME" --\r\n" \
"-- Compiled: "__DATE__" "__TIME__" --"STRING_EOL
#define LED_RED PIO_PB27
#define LED_TX PIO_PA21
#define LED_RX PIO_PC30
static void configure_console(void)
{
const usart_serial_options_t uart_serial_options = {
.baudrate = CONF_UART_BAUDRATE,
#ifdef CONF_UART_CHAR_LENGTH
.charlength = CONF_UART_CHAR_LENGTH,
#endif
.paritytype = CONF_UART_PARITY,
#ifdef CONF_UART_STOP_BITS
.stopbits = CONF_UART_STOP_BITS,
#endif
};
/* Configure console UART. */
sysclk_enable_peripheral_clock(CONSOLE_UART_ID);
stdio_serial_init((Usart *)CONF_UART, &uart_serial_options);
}
int main (void)
{
sysclk_init();
board_init();
ioport_init();
configure_console();
puts(STRING_HEADER);
pio_set_output(PIOB, LED_RED, LOW, DISABLE, ENABLE);
pio_set_output(PIOA, LED_TX, LOW, DISABLE, ENABLE);
pio_set_output(PIOC, LED_RX, LOW, DISABLE, ENABLE);
int i;
while (1) {
for(i = 0; i<1000000; i++){}
//1. Art, einen Port zu setzen und zu löschen
PIOB->PIO_SODR = LED_RED;
puts("RED on");
for(i = 0; i<1000000; i++){}
PIOB->PIO_CODR = LED_RED;
puts("RED off");
for(i = 0; i<1000000; i++){}
//2. Art, einen Port zu setzen und zu löschen
pio_set(PIOA, LED_TX);
for(i = 0; i<1000000; i++){}
pio_clear(PIOA, LED_TX);
for(i = 0; i<1000000; i++){}
//Man muss aufpassen, dass man PIOC wählt, wenn die LED mit PIO_PC30 verbunden ist
PIOC->PIO_SODR = LED_RX;
for(i = 0; i<1000000; i++){}
PIOC->PIO_CODR = LED_RX;
}
}