#include #include typedef struct PORT2_struct { register8_t DIR; /* Data Direction */ register8_t DIRSET; /* Data Direction Set */ register8_t DIRCLR; /* Data Direction Clear */ register8_t DIRTGL; /* Data Direction Toggle */ register8_t OUT; /* Output Value */ register8_t OUTSET; /* Output Value Set */ register8_t OUTCLR; /* Output Value Clear */ register8_t OUTTGL; /* Output Value Toggle */ register8_t IN; /* Input Value */ register8_t INTFLAGS; /* Interrupt Flags */ register8_t PORTCTRL; /* Port Control */ register8_t reserved_1[5]; register8_t PINCTRL[8]; /* Pin 0-7 Control */ register8_t reserved_2[8]; } PORT2_t; #define PORT2A (*(PORT2_t *) 0x0400) /* I/O Ports */ void configureport1(void *port) { uint8_t *ptr = port + 8; ptr = 0x01; } void configureport2(PORT_t port) { port.PIN0CTRL = 0x01; } void configureport3(PORT2_t port) { port.PINCTRL[0] = 0x01; port.PINCTRL[1] = 0x01; port.PINCTRL[2] = 0x01; } void setup() { Serial.begin(115200); pinMode(13, OUTPUT); PORTA_PIN0CTRL = 0x00; configureport1(PORTA_DIR ); configureport2(PORTA); configureport3(PORT2A); } void loop() { Serial.println("Hello World"); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); noInterrupts(); sleep_enable(); sleep_cpu(); }