BDD / Mbed 2 deprecated Esercitazione4n1-3

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "LCD.h"
00002 
00003 DigitalOut RS(D12);
00004 DigitalOut E(D11);
00005 
00006 BusOut data(D5, D4, D3, D2);
00007 
00008 void toggle_enable(void)
00009 {
00010     E=1;
00011     wait(0.001);
00012     E=0;
00013     wait(0.001);
00014 }
00015 //initialize LCD function
00016 void LCD_init(void)
00017 {
00018     wait(0.02); // pause for 20 ms
00019     RS=0; // set low to write control data
00020     E=0; // set low
00021 //function mode
00022     data=0x2; // 4 bit mode (data packet 1, DB4-DB7)
00023     toggle_enable();
00024     data=0x8; // 2-line, 7 dot char (data packet 2, DB0-DB3)
00025     toggle_enable();
00026 //display mode
00027     data=0x0; // 4 bit mode (data packet 1, DB4-DB7)
00028     toggle_enable();
00029     data=0xF; // display on, cursor on, blink on
00030     toggle_enable();
00031 //clear display
00032     data=0x0; //
00033     toggle_enable();
00034     data=0x1; // clear
00035     toggle_enable();
00036 }
00037 //display function
00038 void display_to_LCD(char value)
00039 {
00040     RS=1; // set high to write character data
00041     data=value>>4; // value shifted right 4 = upper nibble
00042     toggle_enable();
00043     data=value; // value bitmask with 0x0F = lower nibble
00044     toggle_enable();
00045 }
00046 //locate function
00047 void set_location(char location)
00048 {
00049     RS=0;
00050     data=(location|0x80)>>4; // upper nibble
00051     toggle_enable();
00052     data=location&0x0F; // lower nibble
00053     toggle_enable();
00054 }