Handbuch von ner Cessna 172 gelesen und verstanden hast und dich dann wunderst, dass das einer Boeing 737 deutlich dicker und komplizierter ist.
(!) M3 ohne viel Peripherie. Die M4s kommen dann schon deutlich dicker daher und die M7s sind eine GANZ andere Klasse.
Vermutlich ist das nicht gekapselt, sondern auch deine globalen const-Arrays liegen einfach im RAM. Das geht deshalb, weil der Mega2560 vergleichsweise viel RAM hat, ganz okay. Ist aber trotzdem eine Travestie.
Naja, ob ich da jetzt PROGMEM stehen habe oder __flash ist ja Jacke wie Hose. Tatsache ist, dass du immernoch wissen musst, wo das Objekt liegt, damit die Zugriffe richtig generiert werden. Also beispielsweise:
int getx(const int *addr) { return *addr; }
erzeugt im Assembly:
a6: fc 01 movw r30, r24 a8: 80 81 ld r24, Z aa: 91 81 ldd r25, Z+1 ; 0x01
int getx(const int __flash *addr) { return *addr; }
notwendigerweise eben nicht die Information tragen, in welchen Bereich der jetzt zeigt.
Pointer machen oder so ein gemurkse. Dann wird halt *jede* Indirektion
Compiler garantiert entscheiden kann, welcher Bereich addressiert ist)
ohne dass der Programmierer "hints" geben muss, was gemeint ist.
ein Objekt hinlegt, damit ich unterscheiden kann, welche Funktion die
Das sind so viele Layer von Murks aufeinandergestapelt dass mir davon
Und das zieht sich dann durch alle Layer durch und erzeugt eine elendige Kopplung von Code zu Datenstrukturen. Genau die Kopplung, die man bei modernen Prozessoren halt nicht mehr braucht, weswegen man eben auch
Es ging darum, dass man Berechnungen, die vielleicht einmal am Tag
da es die Rechenleistung vielleicht hergibt, ist aber IMHO schlechter Stil.
man anwenden kann, um entsprechend in einer anderen Wiederholschleife, die nicht in sync zu einem Timer stehen muss und auch unterbrochen werden kann
Das Flag, ob eine Berechnung notwendig ist oder nicht , muss oder kann
eine Berechnung nur sehr selten vorkommt.
Das Flag bietet zudem den Vorteil, eine Berechnung auch aus einem anderen Event zu triggern, z.B. die Uhr wurde gestellt oder User command.
lediglich zu einer langsamen Reaktion, die eine einstellbare Eigenschaft
einem IR laufen muss also zeitlich zu einem event kritisch ist oder nicht.
Verschlabbern von kritischen IRs, wie bei der Programmierung von DCDC, wenns denn mal etwas schneller gehen soll, ist schlecht, dann machts Puff.....
frustiert auf ;-)
--
mit freundlichen Gruessen/ best regards Joerg Niggemeyer Dipl.Physiker
WEB: http://www.nucon.de https://www.led-temperature-protection.com
Nucon GbR Steinbecker Muehlenweg 95, 21244 Buchholz idN, Germany
UST-IDNR.: DE 231373311, phone: +49 4181 290913, fax: +49 4181 350504
WEEE-Reg.-Nr.:DE 31372201
This electronic transmission (and any attached document) may contain
confidential and/or privileged information. It is intended only for the
person or entity to whom it is adressed.
If you are not the intended recipient (or have received this e-mail in
error) please notify the sender and destroy this e-mail or any attached
document immediatly. Any unauthorized copying, disclosure or distribution
of the material in this e-mail is strictly forbidden.
Aus genau diesem Grund habe ich seinerzeit die Benutzung der 8086 Architektur (mit Segmentierung) nicht verstanden. Bis ich dann das (MS?) Modell mit SEGMENT und GROUP verstanden habe. Das hielt dann bis zum
486, ab dem die Segmentierung wegen zu schlechter Performance durch Paging und flachen Adressraum ersetzt wurde, mit freiwilliger
er seinen alten Arduino Code erst einmal auf dem neuen Controller weiterlaufen lassen kann.
WIMRE hatte der Z80&Co kein JBC War damals(tm) eine Besonderheit im 8051, die vieles einfacher und besser machte. AFAIR ging das sogar mit PortBits. Leider gabs kein Bit_toggle.
JBC ist als atomarer Befehl nicht unterbrechbar. WOWEREIT.
Wolfgang
--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
Mein Liebling war der hp1608|1604(?) nannte sich LogigStateAnalyzer, hatte
Ebenen.
Hab ihn sogar fast immer benutzt, wenn ich mal Langzeit Protokolle
Speichererweiterung...
Mit dem hp konnte man leicht sowas fangen wie: 3x an pin1 gewackelt, dann
legen... Man konnte sich dann auch anzeigen lassen, bis wo er gerade im Triggerbaum geklommen war.
Schiene nie weiter benutzt, s.o.
Wolfgang
--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
Wechselrichtertrittgrenze, sehr lange her, jedesmal beim Anfahren der
simulieren kann. Damals gabs nur die KAWUMMMMM Methode.
beim debuggen auf.
bringen die Programme zum laufen :p
Wolfgang
--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
Unglaublich viel Platz um alles unterzubrigen. Trotzdem gibt es jede Adresse zweimal: 0x0 kann entweder also an den Start des Flashes zeigen oder an den Start des SRAMs. Wegen Hardvard. Du hast also dasselbe Problem, dass du in den Funktionen jeweils wissen musst, was "gemeint" ist, wenn du mit Pointern handtierst.
Die Segmentselektoren zusammen mit dem Offset ergeben aber auch beim
8086 jeweils eine lineare Adresse, x + 16y. Und 0123:4567 zeigt immer auf dasselbe Byte und das gibt die nicht einmal im RAM und ein anderes Mal, durch andere Befehle zugegriffen, irgendwo anders.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.