Moin. Kann ich das #define auf
1 | uint16_t
|
casten?
1 | #define BAUD(BAUD_) (((F_CPU/(16*BAUD_)))-1)
|
Ist ja ganz klar das er überläuft.
|
|
Forum: Mikrocontroller und Digitale Elektronik #define - OverflowMoin. Kann ich das #define auf
casten?
Ist ja ganz klar das er überläuft. Jan H. schrieb: > Kann ich das #define auf Was genau hindert dich jetzt es auszuprobieren? Im Simulator z.B.. Interessante Frage! (denn ich habe KA, was du meinst) Jan H. schrieb: > Kann ich das #define auf uint16_t casten? Soweit mir bekannt, kann man keine Defines casten. Habe auch gar keine Vorstellung, wie man das bewerkstelligen könnte. Jan H. schrieb: > Ist ja ganz klar das er überläuft. Dann kannst Du das casten, aber wenn die Baudrate mehr als 65536 ist, kommt eben was Verkehrtes dabei heraus. Arduino F. schrieb: > Soweit mir bekannt, kann man keine Defines casten. > Habe auch gar keine Vorstellung, wie man das bewerkstelligen könnte.
Die Frage ist, was will er casten? Grundsätzlich werden solche #defines immer als int benutzt. Ein cast auf long wäre sinniger. Das erreichst du indem du BAUD_ auf long castest:
Ingo L. schrieb: > Die Frage ist, was will er casten? Grundsätzlich werden solche #defines > immer als int benutzt. Ein cast auf long wäre sinniger. Das erreichst du > indem du BAUD_ auf long castest: >
Klappt. casten ist cool. Das sollte unbedingt immer gemacht werden. Ob sinnvoll oder nicht, egal. Ein Programm ohne cast taucht nisch und statische Code-Analyse eh schei... > Kann ich ... > Ist ja ganz klar ... => ??? Jan H. schrieb: > Klappt. Kann es sein das du so etwas suchst?
Ingo L. schrieb: > Jan H. schrieb: >> Klappt. > Kann es sein das du so etwas suchst? ...Code... Warum selber machen, wenn es in der Toolchain genau so etwas schon gibt? Siehe http://www.nongnu.org/avr-libc/user-manual/group__util__setbaud.html Nebenbei hat doch das UBRR (zumindest auf neueren AVRs) 12 Bit, wodurch die Abfrage auf >255 falsch erscheint. Mit freundlichen Grüßen, N.G. N. G. schrieb: > Warum selber machen, wenn es in der Toolchain genau so etwas schon gibt? > Siehe > http://www.nongnu.org/avr-libc/user-manual/group__util__setbaud.html > > Nebenbei hat doch das UBRR (zumindest auf neueren AVRs) 12 Bit, wodurch > die Abfrage auf >255 falsch erscheint. Kannte ich noch nicht ;) 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
Noch kein Account? Hier anmelden.
|
|