![](/media/cache/profiles/8d764819e66ab628908ee84480708c54.jpg.50x50_q85.jpg)
example with F411RE, DS1302 and LCD16x2
Dependencies: mbed DS1302 TextLCD
This is a simple example how to display date and time stored into a DS1302 module. I used a F411RE Nucleo board and a HD44780 LCD 16x2.
Revision 1:515786c57c45, committed 2021-06-15
- Comitter:
- loarri
- Date:
- Tue Jun 15 22:03:39 2021 +0000
- Parent:
- 0:2a445788550e
- Commit message:
- Example with F411RE, DS1302 and LCD16x2
Changed in this revision
TextLCD.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 2a445788550e -r 515786c57c45 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Tue Jun 15 22:03:39 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/loarri/code/TextLCD/#0f6a7dfba1a8
diff -r 2a445788550e -r 515786c57c45 main.cpp --- a/main.cpp Wed Jun 09 20:06:08 2021 +0000 +++ b/main.cpp Tue Jun 15 22:03:39 2021 +0000 @@ -1,11 +1,20 @@ /* -------------------- +DS1302_test_with_STM32_and_LCD16x2 + Author: L. Arrigoni -May 2021 +June 2021 -------------------- -Simple test with RTC module and STM32F411RE Nucleo board. +Simple test with RTC module driven by a STM32F411RE Nucleo board +with 16x2 HD44780 LCD. DS1302 powered by 3.3 V without pull up resistor on I2C lines +with callback. +I2C line for LCD needs 2 pullup resitors 2.2K on SDA e SCL +D3 (SDA) ,D6 (SCL) + +Note: to reset/set the starting date supply the DS1302 with 5V + */ @@ -19,22 +28,39 @@ #include "mbed.h" #include "DS1302.h" +#include "TextLCD.h" + DS1302 clk(SCLK, IO, CE); +// Set LCD +I2C i2c_lcd(D3 ,D6); // SDA, SCL +// LCD instantiation +TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2); int main() { + lcd.setBacklight(TextLCD::LightOn); + lcd.printf("Date&Time \nby L. Arrigoni"); + wait(3); + lcd.cls(); + #ifdef INITIAL_RUN //clk.set_time(1256729737); - clk.set_time(1623257900); //from https://www.unixtimestamp.com/ + clk.set_time(1623792610); //from https://www.unixtimestamp.com/ #endif char storedByte = clk.recallByte(0); printf("\r\nStored byte was %d, now increasing by one\r\n", storedByte); clk.storeByte(0, storedByte + 1); - + char buffer[32],timebuf_dMyy[14]; while(1) { time_t seconds = clk.time(NULL); printf("Date and time: %s\r", ctime(&seconds)); + strftime(buffer, 32, "%I:%M:%S %p\n", localtime(&seconds)); + strftime(timebuf_dMyy, 14, "%d-%b-%Y", localtime(&seconds)); + lcd.locate(0,0); + lcd.printf("Date:%s",timebuf_dMyy); + lcd.locate(0,1); + lcd.printf("Time:%s", buffer); wait(1); } }