Modified version of the DmTftLibrary, optimized for the LPC4088 Experiment Base Board
Dependents: lpc4088_ebb_dm_calc lpc4088_ebb_dm_bubbles
Fork of DmTftLibrary by
dm_platform.h@0:d6ff5fa503e8, 2014-05-13 (annotated)
- Committer:
- displaymodule
- Date:
- Tue May 13 09:31:24 2014 +0000
- Revision:
- 0:d6ff5fa503e8
- Child:
- 2:59be7fca4581
First version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
displaymodule | 0:d6ff5fa503e8 | 1 | #ifndef DM_PLATFORM_h |
displaymodule | 0:d6ff5fa503e8 | 2 | #define DM_PLATFORM_h |
displaymodule | 0:d6ff5fa503e8 | 3 | |
displaymodule | 0:d6ff5fa503e8 | 4 | // Determine type of system |
displaymodule | 0:d6ff5fa503e8 | 5 | #if defined (__AVR__) |
displaymodule | 0:d6ff5fa503e8 | 6 | #define DM_TOOLCHAIN_ARDUINO |
displaymodule | 0:d6ff5fa503e8 | 7 | #elif defined(TOOLCHAIN_ARM) || defined(TOOLCHAIN_ARM_MICRO) |
displaymodule | 0:d6ff5fa503e8 | 8 | #define DM_TOOLCHAIN_MBED |
displaymodule | 0:d6ff5fa503e8 | 9 | #else |
displaymodule | 0:d6ff5fa503e8 | 10 | #error Only Arduino and Mbed toolchains are supported |
displaymodule | 0:d6ff5fa503e8 | 11 | #endif |
displaymodule | 0:d6ff5fa503e8 | 12 | |
displaymodule | 0:d6ff5fa503e8 | 13 | // Arduino |
displaymodule | 0:d6ff5fa503e8 | 14 | #if defined (DM_TOOLCHAIN_ARDUINO) |
displaymodule | 0:d6ff5fa503e8 | 15 | |
displaymodule | 0:d6ff5fa503e8 | 16 | // Mandatory includes for Arduino |
displaymodule | 0:d6ff5fa503e8 | 17 | #include <Arduino.h> |
displaymodule | 0:d6ff5fa503e8 | 18 | #include <avr/pgmspace.h> |
displaymodule | 0:d6ff5fa503e8 | 19 | #include <SPI.h> |
displaymodule | 0:d6ff5fa503e8 | 20 | |
displaymodule | 0:d6ff5fa503e8 | 21 | // Clear bit, Set bit, High pulse and Low pulse macros |
displaymodule | 0:d6ff5fa503e8 | 22 | #define cbi(reg, _bitmask) *reg &= ~_bitmask |
displaymodule | 0:d6ff5fa503e8 | 23 | #define sbi(reg, _bitmask) *reg |= _bitmask |
displaymodule | 0:d6ff5fa503e8 | 24 | #define pulse_high(reg, _bitmask) sbi(reg, _bitmask); cbi(reg, _bitmask); |
displaymodule | 0:d6ff5fa503e8 | 25 | #define pulse_low(reg, _bitmask) cbi(reg, _bitmask); sbi(reg, _bitmask); |
displaymodule | 0:d6ff5fa503e8 | 26 | |
displaymodule | 0:d6ff5fa503e8 | 27 | // Map of mandatory pin names, from Arduino names to D* and A* |
displaymodule | 0:d6ff5fa503e8 | 28 | #define D2 2 |
displaymodule | 0:d6ff5fa503e8 | 29 | #define D3 3 |
displaymodule | 0:d6ff5fa503e8 | 30 | #define D4 4 |
displaymodule | 0:d6ff5fa503e8 | 31 | #define D5 5 |
displaymodule | 0:d6ff5fa503e8 | 32 | #define D6 6 |
displaymodule | 0:d6ff5fa503e8 | 33 | #define D9 9 |
displaymodule | 0:d6ff5fa503e8 | 34 | #define D10 10 |
displaymodule | 0:d6ff5fa503e8 | 35 | #define A2 16 |
displaymodule | 0:d6ff5fa503e8 | 36 | #define A3 17 |
displaymodule | 0:d6ff5fa503e8 | 37 | #define A4 18 |
displaymodule | 0:d6ff5fa503e8 | 38 | #define A5 19 |
displaymodule | 0:d6ff5fa503e8 | 39 | |
displaymodule | 0:d6ff5fa503e8 | 40 | // Needed typedefs, not normally present in the Arduino environment |
displaymodule | 0:d6ff5fa503e8 | 41 | #ifndef uint8_t |
displaymodule | 0:d6ff5fa503e8 | 42 | #define uint8_t unsigned char |
displaymodule | 0:d6ff5fa503e8 | 43 | #endif |
displaymodule | 0:d6ff5fa503e8 | 44 | #ifndef int8_t |
displaymodule | 0:d6ff5fa503e8 | 45 | #define int8_t signed char |
displaymodule | 0:d6ff5fa503e8 | 46 | #endif |
displaymodule | 0:d6ff5fa503e8 | 47 | #ifndef uint16_t |
displaymodule | 0:d6ff5fa503e8 | 48 | #define uint16_t unsigned short |
displaymodule | 0:d6ff5fa503e8 | 49 | #endif |
displaymodule | 0:d6ff5fa503e8 | 50 | #ifndef uint32_t |
displaymodule | 0:d6ff5fa503e8 | 51 | #define uint32_t unsigned long |
displaymodule | 0:d6ff5fa503e8 | 52 | #endif |
displaymodule | 0:d6ff5fa503e8 | 53 | |
displaymodule | 0:d6ff5fa503e8 | 54 | // Mbed |
displaymodule | 0:d6ff5fa503e8 | 55 | #elif defined(DM_TOOLCHAIN_MBED) |
displaymodule | 0:d6ff5fa503e8 | 56 | |
displaymodule | 0:d6ff5fa503e8 | 57 | // Mandatory includes for Mbed |
displaymodule | 0:d6ff5fa503e8 | 58 | #include "mbed.h" |
displaymodule | 0:d6ff5fa503e8 | 59 | |
displaymodule | 0:d6ff5fa503e8 | 60 | // Clear bit, Set bit, High pulse, Low pulse, Boundary limits and Delay macros |
displaymodule | 0:d6ff5fa503e8 | 61 | #define sbi(reg, _bitmask) (*(reg) = 1) |
displaymodule | 0:d6ff5fa503e8 | 62 | #define cbi(reg, _bitmask) (*(reg) = 0) |
displaymodule | 0:d6ff5fa503e8 | 63 | #define pulse_high(reg, _bitmask) do { *(reg) = 1; *(reg) = 0; } while(0) |
displaymodule | 0:d6ff5fa503e8 | 64 | #define pulse_low(reg, _bitmask) do { *(reg) = 0; *(reg) = 1; } while(0) |
displaymodule | 0:d6ff5fa503e8 | 65 | #define constrain(amt,low,high) ((amt)<=(low)?(low):((amt)>(high)?(high):(amt))) |
displaymodule | 0:d6ff5fa503e8 | 66 | #define delay(ms) wait_ms(ms) |
displaymodule | 0:d6ff5fa503e8 | 67 | |
displaymodule | 0:d6ff5fa503e8 | 68 | // Map of mandatory pin names, from Arduino names to D* and A* |
displaymodule | 0:d6ff5fa503e8 | 69 | #if defined(__LPC407x_8x_177x_8x_H__) |
displaymodule | 0:d6ff5fa503e8 | 70 | #define D0 p10 |
displaymodule | 0:d6ff5fa503e8 | 71 | #define D1 p9 |
displaymodule | 0:d6ff5fa503e8 | 72 | #define D2 p31 |
displaymodule | 0:d6ff5fa503e8 | 73 | #define D3 p32 |
displaymodule | 0:d6ff5fa503e8 | 74 | #define D4 p33 |
displaymodule | 0:d6ff5fa503e8 | 75 | #define D5 p37 |
displaymodule | 0:d6ff5fa503e8 | 76 | #define D6 p38 |
displaymodule | 0:d6ff5fa503e8 | 77 | #define D7 p34 |
displaymodule | 0:d6ff5fa503e8 | 78 | #define D8 p8 |
displaymodule | 0:d6ff5fa503e8 | 79 | #define D9 p39 |
displaymodule | 0:d6ff5fa503e8 | 80 | #define D10 p14 |
displaymodule | 0:d6ff5fa503e8 | 81 | #define D11 p11 |
displaymodule | 0:d6ff5fa503e8 | 82 | #define D12 p12 |
displaymodule | 0:d6ff5fa503e8 | 83 | #define D13 p13 |
displaymodule | 0:d6ff5fa503e8 | 84 | |
displaymodule | 0:d6ff5fa503e8 | 85 | #define A0 p15 |
displaymodule | 0:d6ff5fa503e8 | 86 | #define A1 p16 |
displaymodule | 0:d6ff5fa503e8 | 87 | #define A2 p17 |
displaymodule | 0:d6ff5fa503e8 | 88 | #define A3 p18 |
displaymodule | 0:d6ff5fa503e8 | 89 | #define A4 p19 |
displaymodule | 0:d6ff5fa503e8 | 90 | #define A5 p20 |
displaymodule | 0:d6ff5fa503e8 | 91 | #endif |
displaymodule | 0:d6ff5fa503e8 | 92 | // Special handling for the LPC1549 LPCXpresso board |
displaymodule | 0:d6ff5fa503e8 | 93 | #ifdef LPC15XX_H |
displaymodule | 0:d6ff5fa503e8 | 94 | #define D5 P0_11 |
displaymodule | 0:d6ff5fa503e8 | 95 | #endif |
displaymodule | 0:d6ff5fa503e8 | 96 | #endif |
displaymodule | 0:d6ff5fa503e8 | 97 | |
displaymodule | 0:d6ff5fa503e8 | 98 | #endif /* DM_PLATFORM_h */ |
displaymodule | 0:d6ff5fa503e8 | 99 |