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@0:184f5fd4072b, 2016-09-12 (annotated)
- Committer:
- FBSEletronica
- Date:
- Mon Sep 12 15:06:23 2016 +0000
- Revision:
- 0:184f5fd4072b
test 1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |