Hallo Alle,
Hier veröffentliche ich AsuroLCDLib v0.2b
Anwendung: https://www.roboternetz.de/phpBB2/viewtopic.php?t=27620
v0.1 Features:
- Unterstützt PCF8574P (Beispiel: https://www.roboternetz.de/wissen/in...BCber_I.C2.B2C )
- Flexiblere Pinbelegung (Veränderbar in lib)
- HD447XX kompatibel
- Print Interger
- PrintSetLCD( cursor, line, string );
- PrintAlignLCD( alignment, line, string );
- ClearLCD();
- SetIOLCD jetzt so: (ON/OFF, Pinbits);
v0.2 released!!
features:
- Veränderbare Init
- Kein Zeilensprünge mehr bei längeren String
- SetCursorLCD jetzt mit line und cursor: SetCursorLCD(cursor, line);
- Backlight Support
- PrintWrapLCD
- GetIOLCD
v0.2b features:
- ein bisschen optimiert (inline funktionen weg)
- PrintLCD und PrintWrapLCD zusammengesetzt zu PrintLCD(string, wrap[ON/OFF]);
Feedback please...
@m.a.r.v.i.n: - kannst du mal das mit deinem mehrzeiligen LCD testen?
@m.a.r.v.i.n: - Mit dem Init, kannst du es flexiblerer machen? ich kennt dein LCD nämlich nicht.
Tester, Verbesserungen und Verbesserungvorschläge sind willkommen.
Testprogramm:
Testprogramm v0.2Code:#include "lib/i2cmaster.h" #include "lib/essential.c" #include "lib/lcd.c" #define DELAY 1500 int main(void) { Init(); i2c_init(); InitLCD(); PrintLCD("LCD Testing..."); Msleep(DELAY); while(1) { ClearLCD(); PrintLCD("Normal"); Msleep(DELAY); ClearLCD(); PrintSetLCD(3, 0, "Set Cursor"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 1, "Set Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(1 , 1, "Set Cursor Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 0, "Test Int"); SetCursorLCD(9); PrintIntLCD(10); Msleep(DELAY); ClearLCD(); PrintAlignLCD(LEFT , 0, "LEFT"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(CENTER , 0, "CENTER"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(RIGHT , 0, "RIGHT"); Msleep(DELAY); } return 0; }
Initialisierung bei v0.2:Code:#include "lib/i2cmaster.h" #include "lib/essential.c" #include "lib/lcd.c" #define DELAY 1500 int main(void) { Init(); i2c_init(); InitLCD(); PrintLCD("LCD Testing..."); Msleep(DELAY); while(1) { ClearLCD(); PrintLCD("Normal"); Msleep(DELAY); ClearLCD(); PrintSetLCD(3, 0, "Set Cursor"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 1, "Set Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(1 , 1, "Set Cursor Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 0, "Test Int"); SetCursorLCD(9, 0); PrintIntLCD(10); Msleep(DELAY); ClearLCD(); PrintAlignLCD(LEFT , 0, "LEFT"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(CENTER , 0, "CENTER"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(RIGHT , 0, "RIGHT"); Msleep(DELAY); ClearLCD(); SetCursorLCD(1,0); PrintWrapLCD("WRAPWRAPWRAPWRAPWRAP WRAP"); Msleep(DELAY); } return 0; }
v0.2b test:Code:////// LCD INIT COMMANDS // !SEE DATASHEET // EXAMPLE: // #define LCD_INIT {(LCD_4BIT | LCD_1LINE | LCD_5x7), COMMAND2, COMMAND3} #define LCD_INIT {(LCD_4BIT | LCD_1LINE | LCD_5X7)}
[/code]Code:#include "lib/i2cmaster.h" #include "lib/essential.c" #include "lib/lcd.c" #define DELAY 1500 int main(void) { Init(); i2c_init(); InitLCD(); PrintLCD("LCD Testing...", OFF); Msleep(DELAY); while(1) { ClearLCD(); PrintLCD("Normal", OFF); Msleep(DELAY); ClearLCD(); PrintSetLCD(3, 0, "Set Cursor"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 1, "Set Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(1 , 1, "Set Cursor Line"); Msleep(DELAY); ClearLCD(); PrintSetLCD(0 , 0, "Test Int"); SetCursorLCD(9, 0); PrintIntLCD(10); Msleep(DELAY); ClearLCD(); PrintAlignLCD(LEFT , 0, "LEFT"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(CENTER , 0, "CENTER"); Msleep(DELAY); ClearLCD(); PrintAlignLCD(RIGHT , 0, "RIGHT"); Msleep(DELAY); ClearLCD(); SetCursorLCD(1,0); PrintLCD("WRAPWRAPWRAPWRAPWRAP WRAP", ON); Msleep(DELAY); } return 0; }








Zitieren

Lesezeichen