Yuji Notsu
/
Groove-Base-Shield
コネクタ4 : LED コネクタ7 : Buzzer コネクタ13 : Relay コネクタUART:Serial LCD 4つを動かしています
main.cpp@0:3acc8fa91b79, 2014-01-16 (annotated)
- Committer:
- y_notsu
- Date:
- Thu Jan 16 13:27:49 2014 +0000
- Revision:
- 0:3acc8fa91b79
LPC800 MAX?Grove-Base Shield???????????????????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
y_notsu | 0:3acc8fa91b79 | 1 | #include "mbed.h" |
y_notsu | 0:3acc8fa91b79 | 2 | #include "SerialLCD.h" |
y_notsu | 0:3acc8fa91b79 | 3 | |
y_notsu | 0:3acc8fa91b79 | 4 | DigitalOut myled(P0_9); |
y_notsu | 0:3acc8fa91b79 | 5 | DigitalOut Buzzer(P0_7); |
y_notsu | 0:3acc8fa91b79 | 6 | Serial LCD(P0_4, P0_0); //tx, rx |
y_notsu | 0:3acc8fa91b79 | 7 | DigitalOut Relay(P0_12); |
y_notsu | 0:3acc8fa91b79 | 8 | |
y_notsu | 0:3acc8fa91b79 | 9 | void ClearDisplay() |
y_notsu | 0:3acc8fa91b79 | 10 | { |
y_notsu | 0:3acc8fa91b79 | 11 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 12 | LCD.putc(SLCD_CLEAR_DISPLAY); |
y_notsu | 0:3acc8fa91b79 | 13 | } |
y_notsu | 0:3acc8fa91b79 | 14 | |
y_notsu | 0:3acc8fa91b79 | 15 | void LCDHome() |
y_notsu | 0:3acc8fa91b79 | 16 | { |
y_notsu | 0:3acc8fa91b79 | 17 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 18 | LCD.putc(SLCD_RETURN_HOME); |
y_notsu | 0:3acc8fa91b79 | 19 | } |
y_notsu | 0:3acc8fa91b79 | 20 | |
y_notsu | 0:3acc8fa91b79 | 21 | void LCDsetCursor(uint8_t column, uint8_t row) |
y_notsu | 0:3acc8fa91b79 | 22 | { |
y_notsu | 0:3acc8fa91b79 | 23 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 24 | LCD.putc(SLCD_CURSOR_HEADER); |
y_notsu | 0:3acc8fa91b79 | 25 | LCD.putc(column); |
y_notsu | 0:3acc8fa91b79 | 26 | LCD.putc(row); |
y_notsu | 0:3acc8fa91b79 | 27 | } |
y_notsu | 0:3acc8fa91b79 | 28 | |
y_notsu | 0:3acc8fa91b79 | 29 | // Switch the display off without clearing RAM |
y_notsu | 0:3acc8fa91b79 | 30 | void LCDnoDisplay() |
y_notsu | 0:3acc8fa91b79 | 31 | { |
y_notsu | 0:3acc8fa91b79 | 32 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 33 | LCD.putc(SLCD_DISPLAY_OFF); |
y_notsu | 0:3acc8fa91b79 | 34 | } |
y_notsu | 0:3acc8fa91b79 | 35 | |
y_notsu | 0:3acc8fa91b79 | 36 | // Switch the display on |
y_notsu | 0:3acc8fa91b79 | 37 | void LCDdisplay() |
y_notsu | 0:3acc8fa91b79 | 38 | { |
y_notsu | 0:3acc8fa91b79 | 39 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 40 | LCD.putc(SLCD_DISPLAY_ON); |
y_notsu | 0:3acc8fa91b79 | 41 | } |
y_notsu | 0:3acc8fa91b79 | 42 | |
y_notsu | 0:3acc8fa91b79 | 43 | // Switch the underline cursor off |
y_notsu | 0:3acc8fa91b79 | 44 | void LCDnoCursor() |
y_notsu | 0:3acc8fa91b79 | 45 | { |
y_notsu | 0:3acc8fa91b79 | 46 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 47 | LCD.putc(SLCD_CURSOR_OFF); |
y_notsu | 0:3acc8fa91b79 | 48 | } |
y_notsu | 0:3acc8fa91b79 | 49 | |
y_notsu | 0:3acc8fa91b79 | 50 | // Switch the underline cursor on |
y_notsu | 0:3acc8fa91b79 | 51 | void LCDcursor() |
y_notsu | 0:3acc8fa91b79 | 52 | { |
y_notsu | 0:3acc8fa91b79 | 53 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 54 | LCD.putc(SLCD_CURSOR_ON); |
y_notsu | 0:3acc8fa91b79 | 55 | } |
y_notsu | 0:3acc8fa91b79 | 56 | |
y_notsu | 0:3acc8fa91b79 | 57 | //Turn off the backlight |
y_notsu | 0:3acc8fa91b79 | 58 | void LCDnoBacklight(void) |
y_notsu | 0:3acc8fa91b79 | 59 | { |
y_notsu | 0:3acc8fa91b79 | 60 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 61 | LCD.putc(SLCD_BACKLIGHT_OFF); |
y_notsu | 0:3acc8fa91b79 | 62 | } |
y_notsu | 0:3acc8fa91b79 | 63 | //Turn on the back light |
y_notsu | 0:3acc8fa91b79 | 64 | void LCDbacklight(void) |
y_notsu | 0:3acc8fa91b79 | 65 | { |
y_notsu | 0:3acc8fa91b79 | 66 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 67 | LCD.putc(SLCD_BACKLIGHT_ON); |
y_notsu | 0:3acc8fa91b79 | 68 | } |
y_notsu | 0:3acc8fa91b79 | 69 | |
y_notsu | 0:3acc8fa91b79 | 70 | void LCDprint(uint8_t b) |
y_notsu | 0:3acc8fa91b79 | 71 | { |
y_notsu | 0:3acc8fa91b79 | 72 | LCD.putc(SLCD_CHAR_HEADER); |
y_notsu | 0:3acc8fa91b79 | 73 | LCD.putc(b); |
y_notsu | 0:3acc8fa91b79 | 74 | } |
y_notsu | 0:3acc8fa91b79 | 75 | |
y_notsu | 0:3acc8fa91b79 | 76 | void LCDprintc(const char b[]) |
y_notsu | 0:3acc8fa91b79 | 77 | { |
y_notsu | 0:3acc8fa91b79 | 78 | LCD.putc(SLCD_CHAR_HEADER); |
y_notsu | 0:3acc8fa91b79 | 79 | LCD.printf(b); |
y_notsu | 0:3acc8fa91b79 | 80 | } |
y_notsu | 0:3acc8fa91b79 | 81 | |
y_notsu | 0:3acc8fa91b79 | 82 | |
y_notsu | 0:3acc8fa91b79 | 83 | int main() { |
y_notsu | 0:3acc8fa91b79 | 84 | LCD.baud(9600); |
y_notsu | 0:3acc8fa91b79 | 85 | //LCD startup |
y_notsu | 0:3acc8fa91b79 | 86 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 87 | LCD.putc(SLCD_POWER_OFF); |
y_notsu | 0:3acc8fa91b79 | 88 | wait_ms(1); |
y_notsu | 0:3acc8fa91b79 | 89 | LCD.putc(SLCD_CONTROL_HEADER); |
y_notsu | 0:3acc8fa91b79 | 90 | LCD.putc(SLCD_POWER_ON); |
y_notsu | 0:3acc8fa91b79 | 91 | wait_ms(1); |
y_notsu | 0:3acc8fa91b79 | 92 | LCD.putc(SLCD_INIT_ACK); |
y_notsu | 0:3acc8fa91b79 | 93 | while(1) |
y_notsu | 0:3acc8fa91b79 | 94 | { |
y_notsu | 0:3acc8fa91b79 | 95 | if(LCD.getc()==SLCD_INIT_DONE) |
y_notsu | 0:3acc8fa91b79 | 96 | break; |
y_notsu | 0:3acc8fa91b79 | 97 | } |
y_notsu | 0:3acc8fa91b79 | 98 | wait_ms(2); |
y_notsu | 0:3acc8fa91b79 | 99 | |
y_notsu | 0:3acc8fa91b79 | 100 | //LCD printf |
y_notsu | 0:3acc8fa91b79 | 101 | LCDprintc("Hello World"); |
y_notsu | 0:3acc8fa91b79 | 102 | |
y_notsu | 0:3acc8fa91b79 | 103 | //LCD Backlight ON |
y_notsu | 0:3acc8fa91b79 | 104 | LCDbacklight(); |
y_notsu | 0:3acc8fa91b79 | 105 | |
y_notsu | 0:3acc8fa91b79 | 106 | //LCD Display ON |
y_notsu | 0:3acc8fa91b79 | 107 | LCDdisplay(); |
y_notsu | 0:3acc8fa91b79 | 108 | |
y_notsu | 0:3acc8fa91b79 | 109 | while(1) { |
y_notsu | 0:3acc8fa91b79 | 110 | LCDnoBacklight(); |
y_notsu | 0:3acc8fa91b79 | 111 | myled = 1; |
y_notsu | 0:3acc8fa91b79 | 112 | Buzzer=0; |
y_notsu | 0:3acc8fa91b79 | 113 | Relay=1; |
y_notsu | 0:3acc8fa91b79 | 114 | wait(0.2); |
y_notsu | 0:3acc8fa91b79 | 115 | LCDbacklight(); |
y_notsu | 0:3acc8fa91b79 | 116 | myled = 0; |
y_notsu | 0:3acc8fa91b79 | 117 | Buzzer=1; |
y_notsu | 0:3acc8fa91b79 | 118 | Relay=0; |
y_notsu | 0:3acc8fa91b79 | 119 | wait(0.2); |
y_notsu | 0:3acc8fa91b79 | 120 | } |
y_notsu | 0:3acc8fa91b79 | 121 | } |