Ik ben bezig met het maken van een lcd programmatje voor mijn 4x40 lcd op de LPT poort. Tot zover gaat alles goed, ik heb alleen een probleem met de timing.
1 ms is eigenlijk net iets te lang als delay als de intructie maar 40 microseconde duurt. De oplossing zou de busy flag zijn, die 0 wordt zodra de lcd klaar is, alleen wil de volgende code (VB) niet werken:
Het probleem is dat vbIn(&H378) altijd dezelfde waarde teruggeeft die ik als laatste heen heb gestuurd (met vbOut &H378, &H0 bijvoorbeeld), in plaats van de busy flag en address
.
Wat doe ik verkeerd?
1 ms is eigenlijk net iets te lang als delay als de intructie maar 40 microseconde duurt. De oplossing zou de busy flag zijn, die 0 wordt zodra de lcd klaar is, alleen wil de volgende code (VB) niet werken:
code:
1
2
3
4
5
6
7
8
9
| Dim Busy As Boolean vbOut &H37A, &H1 'RS=0, R/W=1, E=0 vbOut &H378, &H0 Do: DoEvents vbOut &H37A, &H0 'RS=0, R/W=1, E=1 If vbIn(&H378) < 128 Then Busy = False Else Busy = True vbOut &H37A, &H1 'RS=0, R/W=1, E=0 Loop Until Busy = False |
Het probleem is dat vbIn(&H378) altijd dezelfde waarde teruggeeft die ik als laatste heen heb gestuurd (met vbOut &H378, &H0 bijvoorbeeld), in plaats van de busy flag en address
Wat doe ik verkeerd?