nlgplay for mbed

Dependencies:   SDFileSystemEx mbed

Committer:
bkc_mbed
Date:
Sat May 17 12:54:13 2014 +0000
Revision:
0:2053640461b5
Child:
1:ec416e6d5739
first version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bkc_mbed 0:2053640461b5 1 #include "mbed.h"
bkc_mbed 0:2053640461b5 2
bkc_mbed 0:2053640461b5 3
bkc_mbed 0:2053640461b5 4 I2C i2c(dp5, dp27); // sda, scl
bkc_mbed 0:2053640461b5 5
bkc_mbed 0:2053640461b5 6 const int AQM0802_addr = 0x7C;
bkc_mbed 0:2053640461b5 7
bkc_mbed 0:2053640461b5 8 void lcd_cmd(char x)
bkc_mbed 0:2053640461b5 9 {
bkc_mbed 0:2053640461b5 10 char data[2];
bkc_mbed 0:2053640461b5 11 data[0] = 0x00; // CO = 0,RS = 0
bkc_mbed 0:2053640461b5 12 data[1] = x;
bkc_mbed 0:2053640461b5 13 i2c.write(AQM0802_addr, data, 2);
bkc_mbed 0:2053640461b5 14 }
bkc_mbed 0:2053640461b5 15
bkc_mbed 0:2053640461b5 16 void lcd_contdata(char x)
bkc_mbed 0:2053640461b5 17 {
bkc_mbed 0:2053640461b5 18 char data[2];
bkc_mbed 0:2053640461b5 19 data[0] = 0xC0; //0b11000000 CO = 1, RS = 1
bkc_mbed 0:2053640461b5 20 data[1] = x;
bkc_mbed 0:2053640461b5 21 i2c.write(AQM0802_addr, data, 2);
bkc_mbed 0:2053640461b5 22 }
bkc_mbed 0:2053640461b5 23
bkc_mbed 0:2053640461b5 24 void lcd_lastdata(char x)
bkc_mbed 0:2053640461b5 25 {
bkc_mbed 0:2053640461b5 26 char data[2];
bkc_mbed 0:2053640461b5 27 data[0] = 0x40; //0b11000000 CO = 0, RS = 1
bkc_mbed 0:2053640461b5 28 data[1] = x;
bkc_mbed 0:2053640461b5 29 i2c.write(AQM0802_addr, data, 2);
bkc_mbed 0:2053640461b5 30 }
bkc_mbed 0:2053640461b5 31
bkc_mbed 0:2053640461b5 32 void lcd_printStr(const char *s)
bkc_mbed 0:2053640461b5 33 {
bkc_mbed 0:2053640461b5 34 while(*s) {
bkc_mbed 0:2053640461b5 35 if(*(s + 1)) {
bkc_mbed 0:2053640461b5 36 lcd_contdata(*s);
bkc_mbed 0:2053640461b5 37 } else {
bkc_mbed 0:2053640461b5 38 lcd_lastdata(*s);
bkc_mbed 0:2053640461b5 39 }
bkc_mbed 0:2053640461b5 40 s++;
bkc_mbed 0:2053640461b5 41 }
bkc_mbed 0:2053640461b5 42 }
bkc_mbed 0:2053640461b5 43
bkc_mbed 0:2053640461b5 44 void lcd_setContrast(unsigned char c) {
bkc_mbed 0:2053640461b5 45 lcd_cmd(0x39);
bkc_mbed 0:2053640461b5 46 lcd_cmd(0x70 | (c & 0x0f)); // contrast Low
bkc_mbed 0:2053640461b5 47 lcd_cmd(0x5C | ((c >> 4) & 0x03)); // contast High/icon/power
bkc_mbed 0:2053640461b5 48 lcd_cmd(0x38);
bkc_mbed 0:2053640461b5 49 }
bkc_mbed 0:2053640461b5 50
bkc_mbed 0:2053640461b5 51 void lcd_printHex(unsigned char num)
bkc_mbed 0:2053640461b5 52 {
bkc_mbed 0:2053640461b5 53 lcd_contdata(num);
bkc_mbed 0:2053640461b5 54 }
bkc_mbed 0:2053640461b5 55
bkc_mbed 0:2053640461b5 56 void lcd_init() {
bkc_mbed 0:2053640461b5 57 int cont = 0;
bkc_mbed 0:2053640461b5 58 wait(0.04);
bkc_mbed 0:2053640461b5 59 // LCD initialize
bkc_mbed 0:2053640461b5 60 lcd_cmd(0x38); // function set
bkc_mbed 0:2053640461b5 61 lcd_cmd(0x39); // function set
bkc_mbed 0:2053640461b5 62 lcd_cmd(0x04); // EntryModeSet
bkc_mbed 0:2053640461b5 63 lcd_cmd(0x14); // interval osc
bkc_mbed 0:2053640461b5 64 lcd_cmd(0x70 | (cont & 0xF)); // contrast Low
bkc_mbed 0:2053640461b5 65 lcd_cmd(0x5C | ((cont >> 4) & 0x3)); // contast High/icon/power
bkc_mbed 0:2053640461b5 66 lcd_cmd(0x6C); // follower control
bkc_mbed 0:2053640461b5 67 wait(0.2);
bkc_mbed 0:2053640461b5 68 lcd_cmd(0x38); // function set
bkc_mbed 0:2053640461b5 69 lcd_cmd(0x0C); // Display On
bkc_mbed 0:2053640461b5 70 lcd_cmd(0x01); // Clear Display
bkc_mbed 0:2053640461b5 71 wait(0.2); // need additional wait to Clear Display
bkc_mbed 0:2053640461b5 72
bkc_mbed 0:2053640461b5 73 lcd_setContrast(36);
bkc_mbed 0:2053640461b5 74
bkc_mbed 0:2053640461b5 75 }
bkc_mbed 0:2053640461b5 76
bkc_mbed 0:2053640461b5 77 void lcd_setCursor(unsigned char x,unsigned char y) {
bkc_mbed 0:2053640461b5 78 lcd_cmd(0x80 | (y * 0x40 + x));
bkc_mbed 0:2053640461b5 79 }
bkc_mbed 0:2053640461b5 80
bkc_mbed 0:2053640461b5 81 void lcd_cls(void)
bkc_mbed 0:2053640461b5 82 {
bkc_mbed 0:2053640461b5 83 lcd_setCursor(0, 0);
bkc_mbed 0:2053640461b5 84 lcd_printStr(" ");
bkc_mbed 0:2053640461b5 85 lcd_setCursor(0, 1);
bkc_mbed 0:2053640461b5 86 lcd_printStr(" ");
bkc_mbed 0:2053640461b5 87 }
bkc_mbed 0:2053640461b5 88