Hallo µC Gemeinde, ich beschäftige mich für ein Projekt mit einem STM32 momentan mit der Ansteuerung von LCDs mit HD44780. Wie das Display an sich anzusprechen ist weiß ich und ich habe auch funktionierende Software dafür. Allerdings bitbangt diese die Pins. Jetzt habe ich mich gefragt ob es möglich ist das ganze etwas effizienter zu gestalten, vielleicht indem man eine der vielen integrierten Peripherien nutzt am besten noch unter Nutzung eines DMA. Hat jemand so etwas schon einmal gemacht bzw. hat eine Idee wie man so etwas realisieren könnte?
Moin, effizient, im Sinne von schneller, ist in diesem Zusammenhang wohl eher nicht gemeint. Mit einem PCF8574 oder einem anderen I2C oder SPI Baustein kann man noch Leitungen einsparen. Die Ansteuerung ist dann seriell mit 2 oder ein paar mehr Leitungen möglich. Dann funktioniert auch DMA mit entsprechender Bremse.
Eigentlich ist das Display ja dazu vorgesehen, direkt am Datenbus der CPU zu hängen. Der ist aber nur noch bei sehr wenigen Mikrocontrollern herausgeführt und außerdem müsste man sie dazu ziemlich langsam takten (ich glaube es war ca. 1 MHz) - wer will das schon? Das Bitbanging kostet nicht viel zeit, die notwendigen Delays zwischen den Kommandos sind eher schmerzhaft. Wenn du nicht willst, dass dein Programm bei jedem Display-Zugriff ins stocken gerät, musst du die Kommunikation entweder in eine Timer-ISR auslagern oder mit Multitasking arbeiten. In beiden Fällen brauchst du einen Puffer im RAM, wo der Display-Inhalt zwischengespeichert wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.