From 2a7941ee58016ce7641ab8010aff5fe711e0bedc Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 2 Jun 2009 13:41:38 +0000 Subject: 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 --- demos/ARM7-LPC214x-G++/board.c | 17 +++++++++-------- demos/ARM7-LPC214x-G++/board.h | 21 +++++++++++++++++++++ demos/ARM7-LPC214x-G++/main.cpp | 21 +++++++++++---------- 3 files changed, 41 insertions(+), 18 deletions(-) (limited to 'demos/ARM7-LPC214x-G++') diff --git a/demos/ARM7-LPC214x-G++/board.c b/demos/ARM7-LPC214x-G++/board.c index dc0cfb4f9..f188372b3 100644 --- a/demos/ARM7-LPC214x-G++/board.c +++ b/demos/ARM7-LPC214x-G++/board.c @@ -19,10 +19,10 @@ #include -#include -#include -#include -//#include "lpc214x_ssp.h" +#include "lpc214x.h" +#include "vic.h" +#include "lpc214x_serial.h" +#include "lpc214x_ssp.h" #include "board.h" //#include "mmcsd.h" @@ -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-G++/board.h b/demos/ARM7-LPC214x-G++/board.h index c9d3f01b3..ee30559c8 100644 --- a/demos/ARM7-LPC214x-G++/board.h +++ b/demos/ARM7-LPC214x-G++/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,17 @@ #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_LEDUSB IOPORT_BIT(31) + +#define PB_WP1 IOPORT_BIT(24) +#define PB_CP1 IOPORT_BIT(25) + #endif /* _BOARD_H_ */ diff --git a/demos/ARM7-LPC214x-G++/main.cpp b/demos/ARM7-LPC214x-G++/main.cpp index 647dee8a3..1a50f5936 100644 --- a/demos/ARM7-LPC214x-G++/main.cpp +++ b/demos/ARM7-LPC214x-G++/main.cpp @@ -18,11 +18,12 @@ */ #include +#include #include #include -#include +#include #include using namespace chibios_rt; @@ -47,9 +48,9 @@ typedef struct { // Flashing sequence for LED1. static const seqop_t LED1_sequence[] = { - {BITCLEAR, 0x00000400}, + {BITCLEAR, PA_LED1}, {SLEEP, 200}, - {BITSET, 0x00000400}, + {BITSET, PA_LED1}, {SLEEP, 1800}, {GOTO, 0} }; @@ -58,9 +59,9 @@ static const seqop_t LED1_sequence[] = static const seqop_t LED2_sequence[] = { {SLEEP, 1000}, - {BITCLEAR, 0x00000800}, + {BITCLEAR, PA_LED2}, {SLEEP, 200}, - {BITSET, 0x00000800}, + {BITSET, PA_LED2}, {SLEEP, 1800}, {GOTO, 1} }; @@ -68,9 +69,9 @@ static const seqop_t LED2_sequence[] = // Flashing sequence for LED3. static const seqop_t LED3_sequence[] = { - {BITCLEAR, 0x80000000}, + {BITCLEAR, PA_LEDUSB}, {SLEEP, 200}, - {BITSET, 0x80000000}, + {BITSET, PA_LEDUSB}, {SLEEP, 300}, {GOTO, 0} }; @@ -97,10 +98,10 @@ protected: case STOP: return 0; case BITCLEAR: - IO0CLR = curr->value; + chPortClear(IOPORT_A, curr->value); break; case BITSET: - IO0SET = curr->value; + chPortSet(IOPORT_A, curr->value); break; } curr++; @@ -135,7 +136,7 @@ public: */ static void TimerHandler(eventid_t id) { - if (!(IO0PIN & 0x00018000)) { // Both buttons + if (!(chPortRead(IOPORT_A) & (PA_BUTTON1 | PA_BUTTON2))) { // Both buttons TesterThread tester; tester.Wait(); }; -- cgit v1.2.3