LPCXpresso4337 and LPC General Purpose Shield OM13082 test.This example tests the display, potentiometer, Temperature Sensor, Keys, LEDs

Dependencies:   LM75B PCAL955x ST7567 mbed

Committer:
FBSEletronica
Date:
Mon Sep 12 15:06:23 2016 +0000
Revision:
0:184f5fd4072b
test 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FBSEletronica 0:184f5fd4072b 1 #include "mbed.h"
FBSEletronica 0:184f5fd4072b 2 #include "ST7567.h"
FBSEletronica 0:184f5fd4072b 3 #include "LM75B.h"
FBSEletronica 0:184f5fd4072b 4 #include "PCAL9555.h"
FBSEletronica 0:184f5fd4072b 5
FBSEletronica 0:184f5fd4072b 6 ST7567 lcd(D11, D13, D12, D9, D10); // mosi, sclk, reset, A0, nCS
FBSEletronica 0:184f5fd4072b 7 LM75B sensor(D14,D15, LM75B::ADDRESS_4);
FBSEletronica 0:184f5fd4072b 8 PCAL9555 gpio_exp(SDA, SCL);
FBSEletronica 0:184f5fd4072b 9 GpioBusOut leds(gpio_exp, X1_4, X1_5, X1_6, X1_7);
FBSEletronica 0:184f5fd4072b 10 GpioBusIn joystick(gpio_exp, X0_0, X0_1, X0_2, X0_3, X0_4);
FBSEletronica 0:184f5fd4072b 11 AnalogIn pot(A3);
FBSEletronica 0:184f5fd4072b 12
FBSEletronica 0:184f5fd4072b 13 enum led_num {
FBSEletronica 0:184f5fd4072b 14 OM13082_LD1 = (1 << 0),
FBSEletronica 0:184f5fd4072b 15 OM13082_LD2 = (1 << 1),
FBSEletronica 0:184f5fd4072b 16 OM13082_LD3 = (1 << 2),
FBSEletronica 0:184f5fd4072b 17 OM13082_LD4 = (1 << 3),
FBSEletronica 0:184f5fd4072b 18 };
FBSEletronica 0:184f5fd4072b 19
FBSEletronica 0:184f5fd4072b 20 enum key_num {
FBSEletronica 0:184f5fd4072b 21 Key_Up = (1 << X0_4),
FBSEletronica 0:184f5fd4072b 22 Key_Down = (1 << X0_0),
FBSEletronica 0:184f5fd4072b 23 Key_Right = (1 << X0_3),
FBSEletronica 0:184f5fd4072b 24 Key_Left = (1 << X0_2),
FBSEletronica 0:184f5fd4072b 25 Key_Center = (1 << X0_1),
FBSEletronica 0:184f5fd4072b 26 };
FBSEletronica 0:184f5fd4072b 27
FBSEletronica 0:184f5fd4072b 28
FBSEletronica 0:184f5fd4072b 29 int main()
FBSEletronica 0:184f5fd4072b 30 {
FBSEletronica 0:184f5fd4072b 31
FBSEletronica 0:184f5fd4072b 32 lcd.set_contrast(0x35);
FBSEletronica 0:184f5fd4072b 33 lcd.cls();
FBSEletronica 0:184f5fd4072b 34
FBSEletronica 0:184f5fd4072b 35 lcd.locate(0, 1);
FBSEletronica 0:184f5fd4072b 36 lcd.printf("EMBARCADOS CONTEST NXP");
FBSEletronica 0:184f5fd4072b 37
FBSEletronica 0:184f5fd4072b 38
FBSEletronica 0:184f5fd4072b 39 while(true) { // this is the third thread
FBSEletronica 0:184f5fd4072b 40 lcd.locate(0, 2 + 8);
FBSEletronica 0:184f5fd4072b 41 lcd.printf("POT = %.2f\n",(float)pot);
FBSEletronica 0:184f5fd4072b 42 lcd.printf("Temp = %.1f C\n", sensor.temp());
FBSEletronica 0:184f5fd4072b 43
FBSEletronica 0:184f5fd4072b 44
FBSEletronica 0:184f5fd4072b 45 if(pot<0.25f){
FBSEletronica 0:184f5fd4072b 46 leds.write(0xF);
FBSEletronica 0:184f5fd4072b 47 }else if((pot>=0.25f) & (pot<0.5f)){
FBSEletronica 0:184f5fd4072b 48 leds.write(~OM13082_LD1);
FBSEletronica 0:184f5fd4072b 49 }else if((pot>=0.5f) & (pot<0.75f)){
FBSEletronica 0:184f5fd4072b 50 leds.write(~(OM13082_LD1|OM13082_LD2));
FBSEletronica 0:184f5fd4072b 51 }
FBSEletronica 0:184f5fd4072b 52 else if((pot>=0.75f) & (pot<1.0f)){
FBSEletronica 0:184f5fd4072b 53 leds.write(~(OM13082_LD1|OM13082_LD2|OM13082_LD3));
FBSEletronica 0:184f5fd4072b 54 }else{
FBSEletronica 0:184f5fd4072b 55 leds.write(~(OM13082_LD1|OM13082_LD2|OM13082_LD3|OM13082_LD4));
FBSEletronica 0:184f5fd4072b 56 }
FBSEletronica 0:184f5fd4072b 57
FBSEletronica 0:184f5fd4072b 58 int keys = joystick.read();
FBSEletronica 0:184f5fd4072b 59
FBSEletronica 0:184f5fd4072b 60 if ((keys & Key_Up) == 0)
FBSEletronica 0:184f5fd4072b 61 lcd.printf("Key = Up \n");
FBSEletronica 0:184f5fd4072b 62 else if ((keys & Key_Down) == 0)
FBSEletronica 0:184f5fd4072b 63 lcd.printf("Key = Down \n");
FBSEletronica 0:184f5fd4072b 64 else if ((keys & Key_Right) == 0)
FBSEletronica 0:184f5fd4072b 65 lcd.printf("Key = Right \n");
FBSEletronica 0:184f5fd4072b 66 else if ((keys & Key_Left) == 0)
FBSEletronica 0:184f5fd4072b 67 lcd.printf("Key = Left \n");
FBSEletronica 0:184f5fd4072b 68 else if ((keys & Key_Center) == 0)
FBSEletronica 0:184f5fd4072b 69 lcd.printf("Key = Center \n");
FBSEletronica 0:184f5fd4072b 70 else
FBSEletronica 0:184f5fd4072b 71 lcd.printf("Key = No Key \n");
FBSEletronica 0:184f5fd4072b 72
FBSEletronica 0:184f5fd4072b 73 wait(0.5);
FBSEletronica 0:184f5fd4072b 74 }
FBSEletronica 0:184f5fd4072b 75 }