aboutsummaryrefslogtreecommitdiff
path: root/examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c')
-rw-r--r--examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c57
1 files changed, 48 insertions, 9 deletions
diff --git a/examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c b/examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c
index 6d8a9bc..2826126 100644
--- a/examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c
+++ b/examples/lpc43xx/hackrf-jellybean/miniblink/miniblink.c
@@ -19,26 +19,65 @@
*/
#include <libopencm3/lpc43xx/gpio.h>
+#include <libopencm3/lpc43xx/scu.h>
+
+#include "../jellybean_conf.h"
void gpio_setup(void)
{
- GPIO2_DIR |= (1 << 1); /* Configure GPIO2[1] (P4_1) as output. */
+ /* Configure SCU Pin Mux as GPIO */
+ scu_pinmux(SCU_PINMUX_LED1, SCU_GPIO_FAST);
+ scu_pinmux(SCU_PINMUX_LED2, SCU_GPIO_FAST);
+ scu_pinmux(SCU_PINMUX_LED3, SCU_GPIO_FAST);
+
+ scu_pinmux(SCU_PINMUX_EN1V8, SCU_GPIO_FAST);
+
+ scu_pinmux(SCU_PINMUX_BOOT0, SCU_GPIO_FAST);
+ scu_pinmux(SCU_PINMUX_BOOT1, SCU_GPIO_FAST);
+ scu_pinmux(SCU_PINMUX_BOOT2, SCU_GPIO_FAST);
+ scu_pinmux(SCU_PINMUX_BOOT3, SCU_GPIO_FAST);
+
+ /* Configure SCU I2C0 Peripheral (to be moved later in I2C driver) */
+ SCU_SFSI2C0 = SCU_I2C0_NOMINAL;
+
+ /* Configure all GPIO as Input (safe state) */
+ GPIO0_DIR = 0;
+ GPIO1_DIR = 0;
+ GPIO2_DIR = 0;
+ GPIO3_DIR = 0;
+ GPIO4_DIR = 0;
+ GPIO5_DIR = 0;
+ GPIO6_DIR = 0;
+ GPIO7_DIR = 0;
+
+ /* Configure GPIO as Output */
+ GPIO2_DIR |= (PIN_LED1|PIN_LED2|PIN_LED3); /* Configure GPIO2[1/2/8] (P4_1/2 P6_12) as output. */
+ GPIO3_DIR |= PIN_EN1V8; /* GPIO3[6] on P6_10 as output. */
}
+u32 boot0, boot1, boot2, boot3;
+
int main(void)
{
int i;
-
gpio_setup();
- /* Blink LED1 on the board. */
- while (1) {
-
- gpio_set(GPIO2, GPIOPIN1); /* LED on */
- for (i = 0; i < 800000; i++) /* Wait a bit. */
+ /* Set 1V8 */
+ gpio_set(PORT_EN1V8, PIN_EN1V8);
+
+ /* Blink LED1/2/3 on the board and Read BOOT0/1/2/3 pins. */
+ while (1)
+ {
+ boot0 = BOOT0_STATE;
+ boot1 = BOOT1_STATE;
+ boot2 = BOOT2_STATE;
+ boot3 = BOOT3_STATE;
+
+ gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LEDs on */
+ for (i = 0; i < 2000000; i++) /* Wait a bit. */
__asm__("nop");
- gpio_clear(GPIO2, GPIOPIN1); /* LED off */
- for (i = 0; i < 800000; i++) /* Wait a bit. */
+ gpio_clear(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LED off */
+ for (i = 0; i < 2000000; i++) /* Wait a bit. */
__asm__("nop");
}