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 Display Module

Committer:
embeddedartists
Date:
Tue May 20 12:21:43 2014 +0200
Revision:
2:59be7fca4581
Parent:
0:d6ff5fa503e8
Child:
3:02c19cbc707c
Added common init function

Who changed what in which revision?

UserRevisionLine numberNew 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)
embeddedartists 2:59be7fca4581 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>
embeddedartists 2:59be7fca4581 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
embeddedartists 2:59be7fca4581 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)
embeddedartists 2:59be7fca4581 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
embeddedartists 2:59be7fca4581 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
embeddedartists 2:59be7fca4581 92
embeddedartists 2:59be7fca4581 93 // Special handling for the LPC1549 LPCXpresso board with solder bump
embeddedartists 2:59be7fca4581 94 #ifdef LPC15XX_H
embeddedartists 2:59be7fca4581 95 #define SPECIAL_D5 P0_11
embeddedartists 2:59be7fca4581 96 #else
embeddedartists 2:59be7fca4581 97 #define SPECIAL_D5 D5
embeddedartists 2:59be7fca4581 98 #endif
displaymodule 0:d6ff5fa503e8 99 #endif
displaymodule 0:d6ff5fa503e8 100
displaymodule 0:d6ff5fa503e8 101 #endif /* DM_PLATFORM_h */
displaymodule 0:d6ff5fa503e8 102