Hallo und einen guten Tag zusammen, ich habe einen Mikrocontroller und einen 16 Bit breiten !!! Parallelen Flashbaustein der Firma ATMEL (AT49BV6416). Nun greife ich lesend und schreibend mit einem Pointer auf die Adressen des Bausteins zu. Ich habe einen 8bit Pointer benutzt. // lesender Zugriff mit einem 8bit Pointer u16 wert; (16 bit variable) wert = *( ( volatile flash8bit * )flash->dev.base_addr + byte_addr); 1) Hier lese ich dann z.b 0x00FA; das Highbyte ist immer Null ? Warum ? Warum steht im Highbyte nicht der Wert der Adresse +1 ? //schreibender Zugriff mit einem 8bit Pointer u16 wert = FABC; (16 bit variable) *( ( volatile flash8bit * )flash->dev.base_addr + byte_addr) = wert; 2) Wenn ich mir die beschriebene Adresse anschaue steht dort im Low Byte BC, im HighByte (Adresse +1) jedoch auch dieser Wert ? Wie kann man das erklären ? Vielen Dank für eure Hilfe mfg Klaus
Hallo...! Kann mir hier niemamd helfen ??? Vielen Dank
Warum sollte er dir denn das Highbyte liefern ? Wenn du sagst es ist ein Pointer auf ein Byte dann kann er dir auch nur ein Byte liefern liefern. Mach doch mal einen Word Pointer draus. Im ueberigen ist das kein 8 Bit Pointer sondern ein Pointer auf 8 Bit breite (Byte,char) Daten. Die Anzahl der Bits des Pointer selber ist dabei abhaengig vom jeweiligen Prozessor. Gruss Helmi
Hallo, auf einen 16Bit breiten Flash kann man nur 16bit breit schreiben! Es gibt auch umschaltbare Flash speicher 8/16. Aber da kann man im 16Bit mode auch nur alle 16Bit schreiben. Das Signal WE (Write Enable) gilt immer für den ganzen 16 Bit Datenbus. wenn du nur 8Bit ändern willst musst du die anderen Bits auf 0xFF setzen und als 16Bit Wert einschreiben. Lesen funktioniert, weil dein Controller alle 16Bit aus dem Flash ließt und dann aber die nicht benötigten 8bits ignoriert. mfg DerDan
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.