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

Dependencies:   LM75B PCAL955x ST7567 mbed

main.cpp

Committer:
FBSEletronica
Date:
2016-09-12
Revision:
0:184f5fd4072b

File content as of revision 0:184f5fd4072b:

#include "mbed.h"
#include "ST7567.h"
#include "LM75B.h"
#include "PCAL9555.h"

ST7567 lcd(D11, D13, D12, D9, D10); // mosi, sclk, reset, A0, nCS
LM75B sensor(D14,D15, LM75B::ADDRESS_4);
PCAL9555    gpio_exp(SDA, SCL);
GpioBusOut  leds(gpio_exp, X1_4, X1_5, X1_6, X1_7);
GpioBusIn   joystick(gpio_exp, X0_0, X0_1, X0_2, X0_3, X0_4);
AnalogIn pot(A3);
 
enum led_num {
    OM13082_LD1 = (1 << 0),
    OM13082_LD2 = (1 << 1),
    OM13082_LD3 = (1 << 2),
    OM13082_LD4 = (1 << 3),
};

enum key_num {
    Key_Up     = (1 << X0_4),
    Key_Down   = (1 << X0_0),
    Key_Right  = (1 << X0_3),
    Key_Left   = (1 << X0_2),
    Key_Center = (1 << X0_1),
};


int main()
{

    lcd.set_contrast(0x35);
    lcd.cls();
    
    lcd.locate(0, 1);
    lcd.printf("EMBARCADOS CONTEST NXP");
    
  
    while(true) {   // this is the third thread
        lcd.locate(0, 2 + 8);
        lcd.printf("POT = %.2f\n",(float)pot);
        lcd.printf("Temp = %.1f C\n", sensor.temp());
        
        
        if(pot<0.25f){
            leds.write(0xF);
        }else if((pot>=0.25f) & (pot<0.5f)){
            leds.write(~OM13082_LD1);
        }else if((pot>=0.5f) & (pot<0.75f)){
            leds.write(~(OM13082_LD1|OM13082_LD2));
        }
        else if((pot>=0.75f) & (pot<1.0f)){
            leds.write(~(OM13082_LD1|OM13082_LD2|OM13082_LD3));
        }else{
            leds.write(~(OM13082_LD1|OM13082_LD2|OM13082_LD3|OM13082_LD4));
        }
        
        int keys = joystick.read();
        
        if ((keys & Key_Up) == 0)
            lcd.printf("Key = Up     \n");
        else if ((keys & Key_Down) == 0)
            lcd.printf("Key = Down   \n");
        else if ((keys & Key_Right) == 0)
            lcd.printf("Key = Right  \n");
        else if ((keys & Key_Left) == 0)
            lcd.printf("Key = Left   \n");
        else if ((keys & Key_Center) == 0)
            lcd.printf("Key = Center \n");
        else 
            lcd.printf("Key = No Key \n");
        
        wait(0.5);
    }
}