Einige Syntaxfragen / AVR GCC preprocessor



  • cirion schrieb:

    ausser beim clearen des ganzen displays ist das busy-flag herzlich irrelevant, wenn man das timing vernünftig hinbekommt. schon mal ohne probiert? mach mal. und reiss danach erst wieder die klappe auf, bitte.

    Ja, schon mal probiert, je nach Nachbau mit unterschiedlichen Ergebnissen, genau darauf kommt's an. FM- Technik (funktioniert manchmal) ist was für Bastler, aber nix, was ein paar Tausend mal ins Feld muß.
    Der 4-Bit- Betrieb spielt jedenfalls keine Rolle, der 8-Bit- Betrieb verschafft keine Geschwindigkeitsräusche.
    Außerhalb der Spec soll man die Dinger auch nicht betreiben, weil sie sonst gelegentlich abstürzen. Alles schon probiert.



  • rofl... und jetzt wälz nochmal das hd44780-datasheet (das originale, nicht die ganzen china-kürzungen) und stell fest, dass das busy-flag gar nicht periodisch gesetzt wird, sondern absolut berechenbar ist...

    von geschwindigkeitsrausch war eh nie die rede. aber du nutzt ja sowieso sachen wie polling...

    ru,
    cirion



  • cirion schrieb:

    rofl... und jetzt wälz nochmal das hd44780-datasheet (das originale, nicht die ganzen china-kürzungen) und stell fest, dass das busy-flag gar nicht periodisch gesetzt wird, sondern absolut berechenbar ist...

    Toll. Dann ist das Busy-Flag einfach nur da, um da zu sein 🙄



  • nö. wenn man eben kein timing garantieren kann, oder nicht will, ist's ganz hilfreich. mehr aber auch nicht.

    ru,
    cirion



  • cirion schrieb:

    nö. wenn man eben kein timing garantieren kann, oder nicht will, ist's ganz hilfreich. mehr aber auch nicht.

    Was steht denn in deinem originalen Datenblatt zum Busy-Flag? Würde mich mal interessieren...



  • zum beispiel dass das busy-flag nur nach gesendeter instruktion für die dauer der internen bearbeitung der instruktion gesetzt ist, inklusive einer liste, wie lange jede instruktion zur bearbeitung maximal braucht. kannst du aber auch selbst nachlesen. hitachi-datenblätter sind dem netz nicht fremd.

    ru,
    cirion



  • In diesem Datenblatt www.sparkfun.com/datasheets/LCD/HD44780.pdf steht z.B. (Seite 9):

    When the busy flag is 1, the HD44780U is in the internal operation mode, and the next instruction will not be accepted ... The next instruction must be written after ensuring that the busy flag is 0.



  • lies mal das ganze datenblatt.

    the busy flag (BF) indicating that the system is now internally operating on a previously received instruction. If BF is 1, the internal operation is in progress.

    und wie lange die internal operations maximal dauern, sagt dir table 6. fertig.

    der umstand, dass es in der praxis (ohne fehlerquote) auch funktioniert (selbst bei china-clones), spricht eh für sich.

    ru,
    cirion



  • cirion schrieb:

    und wie lange die internal operations maximal dauern, sagt dir table 6. fertig.

    Die Timings in Table 6 sind für fosc = 270 kHz angegeben. Die fosc kann im Bereich [190, 350] kHz liegen. Auf der Seite 55 sieht man, wovon diese Frequenz abhängt: Von einem simpen ohmschen Widerstand! D.h. die Timings in Table 6 sind nur rein informativ und einfach "nur" Pi mal Daumen...



  • du willst mir also erzählen, dass du dich nicht in der lage fühlst, aus den angegeben werten und dem minimaltakt eine absolute maximalzeit zu berechnen, ja? abgesehen davon kannst du auch einen genauen externen oszillator anschließen, nicht nur einen widerstand.

    ru,
    cirion



  • cirion schrieb:

    du willst mir also erzählen, dass du dich nicht in der lage fühlst, aus den angegeben werten und dem minimaltakt eine absolute maximalzeit zu berechnen, ja?

    Nein, ich wollte nur darauf aufmerksam machen, dass die Timings im Datenblatt von diesem einen Chip Durchschnittswerte sind. Man kann natürlich davon "worst-case" Pi-mal-Daumen Timings ableiten und es wird funktionieren. Man kann danach aber nicht mehr behaupten, die Software würde mit allen HD44780-kompatiblen Displays funktionieren.



  • cirion schrieb:

    abgesehen davon kannst du auch einen genauen externen oszillator anschließen, nicht nur einen widerstand.

    Ja, das kann machen. Dann darf die Frequenz im Bereich [125, 350] kHz und nicht [190, 350] kHz schwanken.


Anmelden zum Antworten