aboutsummaryrefslogtreecommitdiffstats
path: root/demos/ARM7-LPC214x-GCC-minimal
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-06-02 13:41:38 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-06-02 13:41:38 +0000
commit2a7941ee58016ce7641ab8010aff5fe711e0bedc (patch)
tree4ac467770e31cbf9245936b998d47e0809bf28b7 /demos/ARM7-LPC214x-GCC-minimal
parent1aa2773ad03807e3d5c9822ea108bc2e280281db (diff)
downloadChibiOS-2a7941ee58016ce7641ab8010aff5fe711e0bedc.tar.gz
ChibiOS-2a7941ee58016ce7641ab8010aff5fe711e0bedc.tar.bz2
ChibiOS-2a7941ee58016ce7641ab8010aff5fe711e0bedc.zip
I/O port driver for LPC214x added.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1016 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/ARM7-LPC214x-GCC-minimal')
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/board.c9
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/board.h20
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/main.c14
3 files changed, 32 insertions, 11 deletions
diff --git a/demos/ARM7-LPC214x-GCC-minimal/board.c b/demos/ARM7-LPC214x-GCC-minimal/board.c
index 50f553fa3..a06b24291 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/board.c
+++ b/demos/ARM7-LPC214x-GCC-minimal/board.c
@@ -103,10 +103,11 @@ void hwinit0(void) {
PINSEL0 = VAL_PINSEL0;
PINSEL1 = VAL_PINSEL1;
PINSEL2 = VAL_PINSEL2;
- IO0DIR = VAL_FIO0DIR;
- IO0SET = 0xFFFFFFFF;
- IO1DIR = VAL_FIO1DIR;
- IO1SET = 0xFFFFFFFF;
+ ioport_init_lld();
+ ioport_lpc214x_set_direction_lld(IOPORT_A, VAL_FIO0DIR);
+ ioport_write_lld(IOPORT_A, 0xFFFFFFFF);
+ ioport_lpc214x_set_direction_lld(IOPORT_B, VAL_FIO1DIR);
+ ioport_write_lld(IOPORT_B, 0xFFFFFFFF);
}
/*
diff --git a/demos/ARM7-LPC214x-GCC-minimal/board.h b/demos/ARM7-LPC214x-GCC-minimal/board.h
index c9d3f01b3..3cdc2a9af 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/board.h
+++ b/demos/ARM7-LPC214x-GCC-minimal/board.h
@@ -20,6 +20,14 @@
#ifndef _BOARD_H_
#define _BOARD_H_
+#ifndef _LPC214X_H_
+#include "lpc214x.h"
+#endif
+
+#ifndef _IOPORTS_LLD_H_
+#include "ioports.h"
+#endif
+
#define BOARD_OLIMEX_LCP_P2148
/*
@@ -61,4 +69,16 @@
#define VAL_FIO0DIR 0xB0703C00
#define VAL_FIO1DIR 0x00000000
+#define PA_LED1 IOPORT_BIT(10)
+#define PA_LED2 IOPORT_BIT(11)
+#define PA_BUZZ1 IOPORT_BIT(12)
+#define PA_BUZZ2 IOPORT_BIT(13)
+#define PA_BSL IOPORT_BIT(14)
+#define PA_BUTTON1 IOPORT_BIT(15)
+#define PA_BUTTON2 IOPORT_BIT(16)
+#define PA_SSEL1 IOPORT_BIT(20)
+#define PA_WP1 IOPORT_BIT(24)
+#define PA_CP1 IOPORT_BIT(25)
+#define PA_LEDUSB IOPORT_BIT(31)
+
#endif /* _BOARD_H_ */
diff --git a/demos/ARM7-LPC214x-GCC-minimal/main.c b/demos/ARM7-LPC214x-GCC-minimal/main.c
index 59dc04158..60035ffb7 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/main.c
+++ b/demos/ARM7-LPC214x-GCC-minimal/main.c
@@ -19,7 +19,7 @@
#include <ch.h>
-#include "lpc214x.h"
+#include "board.h"
/*
* Red LEDs blinker thread, times are in milliseconds.
@@ -28,13 +28,13 @@ static WORKING_AREA(waThread1, 128);
static msg_t Thread1(void *arg) {
while (TRUE) {
- IO0CLR = 0x00000800;
+ chPortClear(IOPORT_A, PA_LED2);
chThdSleepMilliseconds(200);
- IO0SET = 0x00000C00;
+ chPortSet(IOPORT_A, PA_LED1 | PA_LED2);
chThdSleepMilliseconds(800);
- IO0CLR = 0x00000400;
+ chPortClear(IOPORT_A, PA_LED1);
chThdSleepMilliseconds(200);
- IO0SET = 0x00000C00;
+ chPortSet(IOPORT_A, PA_LED1 | PA_LED2);
chThdSleepMilliseconds(800);
}
return 0;
@@ -47,9 +47,9 @@ static WORKING_AREA(waThread2, 128);
static msg_t Thread2(void *arg) {
while (TRUE) {
- IO0CLR = 0x80000000;
+ chPortClear(IOPORT_A, PA_LEDUSB);
chThdSleepMilliseconds(200);
- IO0SET = 0x80000000;
+ chPortSet(IOPORT_A, PA_LEDUSB);
chThdSleepMilliseconds(300);
}
return 0;