nicht existierenden Port benutzen

Gast #1207688
Hallo zusammen,
würde mal gerne wissen, was passiert wenn ein nicht vorhandener Port auf 
einem µC angesprochen wird. Also nehmen wir an, mein µC hat Port A-C ich 
spreche aber Port F an und er soll z.B. als AIN wirken.
Stört dies in irgendeiner weise mien Programmablauf, sodass dieser nicht 
mehr das tut was er soll...

DANKE schon mal im voraus
Gast
Und wenn du direkt drauf zugreifst, liest und schreibst du halt irgendwo 
im Speicher. Z.B liegt dein PORTF beim Mega128 auf Adresse $62. Beim 
Mega8 liegt da der Int0-Vektor der Interrupt-Tabelle. Lesen dürfte da 
unkritisch sein, schreiben vermutlich nicht.

Oliver
Moderator (Firma: Titel) Persönliche Seite
> Stört dies in irgendeiner weise mien Programmablauf, sodass dieser nicht
> mehr das tut was er soll...
Das solltest du am besten beantworten können, du hast doch das 
Programm geschrieben. Was macht dein Programm, wenn es nur Nonsens als 
Input bekommt? Eigentlich sollte es einen Fehler melden. Wenn es das 
nicht tut: warum liest du den Wert dann überhaupt ein?
Lothar Miller wrote:
>> Stört dies in irgendeiner weise mien Programmablauf, sodass dieser nicht
>> mehr das tut was er soll...
> Das solltest du am besten beantworten können, du hast doch das
> Programm geschrieben. Was macht dein Programm, wenn es nur Nonsens als
> Input bekommt? Eigentlich sollte es einen Fehler melden. Wenn es das
> nicht tut: warum liest du den Wert dann überhaupt ein?

Jaja, Mikrokontroller mit blue screen, das hatten wir doch bereits 
entsorgt ? Liegt da nicht noch ein olles Windows-CE in der Schrottkiste 
?

Also meine Mikrokontroller melden meist keine Laufzeitfehler, sie hängen 
sich einfach nur auf.

Gruß,
Michael
Gast
> Beim Mega8 liegt da der Int0-Vektor der Interrupt-Tabelle.
Der liegt im Flash, um darauf zuzugreifen braucht's andere Befehle 
(lpm/spm).

Sofern die Adresse nicht von einem anderen Register belegt wird, 
passiert soviel ich weiß gar nichts, aber dadrauf kann man sich nicht 
verlassen.
"Reserved I/O memory addresses should never be written." steht im 
Datenblatt, d.h. das Verhalten ist nicht spezifiziert. Möglicherweise 
gibt es ja auch nicht veröffentlichte "geheime" Register.
Gast
Du kannst ja eine kleine Routine schreiben, welche durchprobiert, in 
welchem speicherbereich Du noch etwas reinschreiben kannst und auch 
wieder dasselbe ausgelesen werden kann. Es ist dann natürlich nicht 
garantiert, dass dieser gefundene, normalerweise nicht verwendete 
Speicher, auch in anderen Serien/Revisionen verfügbar ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.