![](/media/cache/profiles/1225293648e26d9c5e54e22e92197cb4.jpg.50x50_q85.jpg)
Test program for mbed app shield potentiometers
Fork of apps-shield-pots by
main.cpp@0:cca95aa94e09, 2014-01-08 (annotated)
- Committer:
- chris
- Date:
- Wed Jan 08 01:19:09 2014 +0000
- Revision:
- 0:cca95aa94e09
- Child:
- 1:e50da1f1f653
program to show the issue with apps shield on the u-blox board
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris | 0:cca95aa94e09 | 1 | #include "mbed.h" |
chris | 0:cca95aa94e09 | 2 | #include "C12832_lcd.h" |
chris | 0:cca95aa94e09 | 3 | |
chris | 0:cca95aa94e09 | 4 | // Map the LPC1768 pins to the arduino pin names |
chris | 0:cca95aa94e09 | 5 | // These are the only things that are constant between ARCH, FRDM, u-blox etc |
chris | 0:cca95aa94e09 | 6 | #define ARD_D5 P2_1 |
chris | 0:cca95aa94e09 | 7 | #define ARD_D7 P2_11 |
chris | 0:cca95aa94e09 | 8 | #define ARD_D10 P1_21 |
chris | 0:cca95aa94e09 | 9 | #define ARD_D11 P1_24 |
chris | 0:cca95aa94e09 | 10 | #define ARD_D12 P1_23 |
chris | 0:cca95aa94e09 | 11 | #define ARD_D13 P1_20 |
chris | 0:cca95aa94e09 | 12 | |
chris | 0:cca95aa94e09 | 13 | DigitalOut redled(ARD_D5); |
chris | 0:cca95aa94e09 | 14 | |
chris | 0:cca95aa94e09 | 15 | // ==== Using SDK primitives ====== |
chris | 0:cca95aa94e09 | 16 | // Construct the required pin functions, this works! |
chris | 0:cca95aa94e09 | 17 | |
chris | 0:cca95aa94e09 | 18 | /* |
chris | 0:cca95aa94e09 | 19 | DigitalOut a_d7 (ARD_D7); // a0 |
chris | 0:cca95aa94e09 | 20 | DigitalOut a_d10 (ARD_D10); // nCS |
chris | 0:cca95aa94e09 | 21 | DigitalOut a_d12 (ARD_D12); // reset |
chris | 0:cca95aa94e09 | 22 | SPI myspi (ARD_D11,NC,ARD_D13); // MOSI |
chris | 0:cca95aa94e09 | 23 | */ |
chris | 0:cca95aa94e09 | 24 | |
chris | 0:cca95aa94e09 | 25 | |
chris | 0:cca95aa94e09 | 26 | // ==== Using the LCD library ====== |
chris | 0:cca95aa94e09 | 27 | |
chris | 0:cca95aa94e09 | 28 | // Use my fork of the original library that allows pin names to be passed in |
chris | 0:cca95aa94e09 | 29 | // This works on KL25Z and Seeedstudio Arch |
chris | 0:cca95aa94e09 | 30 | // C12832_LCD(PinName mosi, PinName sck, PinName reset, PinName a0, PinName ncs, const char* name = "LCD"); |
chris | 0:cca95aa94e09 | 31 | // using this causes the program to hang |
chris | 0:cca95aa94e09 | 32 | C12832_LCD lcd(ARD_D11, ARD_D13, ARD_D12, ARD_D7, ARD_D10); |
chris | 0:cca95aa94e09 | 33 | |
chris | 0:cca95aa94e09 | 34 | |
chris | 0:cca95aa94e09 | 35 | |
chris | 0:cca95aa94e09 | 36 | int main() |
chris | 0:cca95aa94e09 | 37 | { |
chris | 0:cca95aa94e09 | 38 | |
chris | 0:cca95aa94e09 | 39 | int i=0; |
chris | 0:cca95aa94e09 | 40 | while(1) { |
chris | 0:cca95aa94e09 | 41 | |
chris | 0:cca95aa94e09 | 42 | // === USING THE LCD ==== |
chris | 0:cca95aa94e09 | 43 | // Note that the program will hang, even if we do not call any of the LCD functions |
chris | 0:cca95aa94e09 | 44 | // Is it the cosntructor breaking things |
chris | 0:cca95aa94e09 | 45 | // lcd.cls(); |
chris | 0:cca95aa94e09 | 46 | // lcd.locate(0,3); |
chris | 0:cca95aa94e09 | 47 | // lcd.printf("Hello %d",i); |
chris | 0:cca95aa94e09 | 48 | |
chris | 0:cca95aa94e09 | 49 | |
chris | 0:cca95aa94e09 | 50 | // === USING THE SDK Primitives === |
chris | 0:cca95aa94e09 | 51 | // If we just use the SPI and DigitalOut, instead we can access them happily |
chris | 0:cca95aa94e09 | 52 | // and the program runs |
chris | 0:cca95aa94e09 | 53 | // a_d7 = !a_d7; |
chris | 0:cca95aa94e09 | 54 | // a_d10 = !a_d10; |
chris | 0:cca95aa94e09 | 55 | // a_d12 = !a_d12; |
chris | 0:cca95aa94e09 | 56 | // myspi.write(i); |
chris | 0:cca95aa94e09 | 57 | |
chris | 0:cca95aa94e09 | 58 | |
chris | 0:cca95aa94e09 | 59 | wait(0.2); |
chris | 0:cca95aa94e09 | 60 | redled = !redled; // I have an red LED on my test board.. for sanity :) |
chris | 0:cca95aa94e09 | 61 | i++; |
chris | 0:cca95aa94e09 | 62 | } |
chris | 0:cca95aa94e09 | 63 | |
chris | 0:cca95aa94e09 | 64 | } |