iGast schrieb:
> Hallo, ein paar kann ich zuordnen. Was ist mit den anderen gemeint?
>
> // LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden)
>
#define LCD_BOOTUP_MS 15 // Seite 6
#define LCD_ENABLE_US 20 // Enable Impuls, Seite 4, Tabelle
"E pulse width" min 220ns. Ist ein absoluter Minimalwert, 20us sind wohl
ein guter Erfahrungswert.
#define LCD_WRITEDATA_US 46 // Seite 5 Write Data
#define LCD_COMMAND_US 42 // Seite 5 die restlichen Commands
(Entry mode set, Display On/Off, Shift, ...), alle 42us
#define LCD_SOFT_RESET_MS1 5 // Seite 6: 'Wait for more than 4.1ms'
#define LCD_SOFT_RESET_MS2 1 // Seite 6: 'Wait for more than 100us'
#define LCD_SOFT_RESET_MS3 1 // Seite 6: 'Wait for more than 100us'
#define LCD_SET_4BITMODE_MS 5 // Seite 5: Set Function: 42us
(vermutlich auch ein Erfahrungswert, die 5ms)
#define LCD_CLEAR_DISPLAY_MS 2 //Seite 5 Display Clear
#define LCD_CURSOR_HOME_MS 2 //Seite 5 Return Home
Es hilft im Code, also in lcd-routines.c, nachzuschauen um zu sehen wo
diese Zeiten verwendet werden und dann kannst du das auch mit der
Beispiel-Initialisierungsroutine aus dem Datenblatt vergleichen.
PS: Ich würde an den Zeiten gar nichts ändern, da wie du siehst, es
Minimalwerte im Datenblatt sind und die Zeiten im Beispielcode also auch
passen, zudem erprobt sicher sind.
Du gewinnst nichts wenn du daran rumdoktorst, da die einzigen
Abweichungen in der Initialisierung auftreten, die du nur einmal machst,
d.h. keinen realen Zeitgewinn durch ändern der Werte.