nicht existierenden Port benutzen

Gast #1207688
Lesenswert?

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 #1207726
Lesenswert?

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 #1207781
Lesenswert?

> 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?
#1207804
Lesenswert?

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 #1207834
Lesenswert?

> 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 #1207909
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren