Einige Syntaxfragen / AVR GCC preprocessor



  • cirion schrieb:

    (wie pointercrash oben schon schrieb)

    editieren geht hier forum nicht, oder?

    ru,
    cirion

    Doch, bei jedem Deiner Beiträge müßte es auch einen Link zum Editieren geben.



  • Wutz schrieb:

    Nobuo T schrieb:

    Oder nimmt der Preprocessor dann "&Data" insgesamt als neuen Variablennamen?

    Nein.

    Oh doch, schon. Belehr' mich eines Besseren, aber da der Präppi von C nix weiß, sind &DATA und DATA einfach nur zwei unterschiedliche Literale.



  • pointercrash() schrieb:

    Der Chip ist sowas von lahm, der verliert ja schon die Peilung, wenn man ihn mitm AVR am Uhrenquarz befeuert.

    nicht jeder hd44870-kompatible lcd-controller ist so lahm wie das original.

    ru,
    cirion



  • cirion schrieb:

    pointercrash() schrieb:

    Der Chip ist sowas von lahm, der verliert ja schon die Peilung, wenn man ihn mitm AVR am Uhrenquarz befeuert.

    nicht jeder hd44870-kompatible lcd-controller ist so lahm wie das original.

    Na und? Du kriegst irgendwelche Chinesenscheiße, mal reagiert der Controller im ns- Bereich (500 ns sind für die meisten µC sowieso noch lahm, zu lahm für memory mapping) und bei der nächsten Lieferung irgendwas mit einem Uralt- Chip. Was anderes als der 44870 war ja nicht spezifiziert - willst Du Dich dafür vom Einkauf anpissen lassen?
    Ich jedenfalls nicht. 😃



  • klar. wir sind hier in der produktion, und wenn jemand hd44870-code nutzt, dann muss es zwangsweise um einen hd44870 gehen... 🙄

    fakt ist, man hat nicht bei jeder anwendung beliebig zeit für das display, und in solchen fällen macht eine 8bit-anbindung sinn, wenn man die pins eh noch frei hat.

    ru,
    cirion



  • cirion schrieb:

    fakt ist, man hat nicht bei jeder anwendung beliebig zeit für das display, und in solchen fällen macht eine 8bit-anbindung sinn, wenn man die pins eh noch frei hat.

    Wow, Deine Ahnungslosigkeit ist beeindruckend. 👍
    Vor jedem Schreibzugriff muß man das Busy checken und das toggelt mit 60 Hz oder so, weil der Chip gerade die Backplane invertiert. Was interessiert es mich da, ob ich ihm in der Zeit 100 oder 1000 Zeichen reinblasen kann, der Controller kann nur etwa 100 Zeichen anzeigen. Der Geschwindigkeitsvorteil von 4 zu 8 Bit ist damit völlig unerheblich, alles Andere, als das unterbrechbar zu gestalten ist krasses Fehldesign. :p



  • pointercrash() schrieb:

    Wow, Deine Ahnungslosigkeit ist beeindruckend.

    nein, eher die deinige. 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.

    ru,
    cirion



  • 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