Pinwechselerkennung beim Mega32

OP #581948
Lesenswert?
• ▲
▼
hat die folgende Sequenz schon mal jemand ausprobiert zum Erkennen eines 
Wechsels des Pinlevels?

 Start:        ;
  sbis  PINC,2    ;        3 Takte
  rjmp  Start    ; warten bis High, 2 Takte

Taktfrequenz 8 Mhz. Es wird mit ca. 1,5 Mhz auf den Pin zugegriffen.


Ein ähnliches Programm hatte ich mal auf einem 486er mit 33 Mhz und ISA 
Bus programmiert. Den ISA Bus hatte ich mit 13 Mhz getaktet. Das 
Programm hatte noch einen Zähler, der nach 65535 Durchläufen stoppte. 
Nach dem Ablaufen des Programms gab es zunächst Störungen beim Zugriff 
auf die Festplatte und nach mehrmaligen Abläufen hatte der I/O Chip ein 
Loch.
Später hatte ich mal auf der Messe gesehen, daß der gleiche Chip auf 
einem Local Bus Bord drauf war, der mit 33 Mhz getaktet wird.
Seitdem bin ich etwas vorsichtiger geworden und greife nicht mit kurzen 
Schleifen auf I/O Pins zu. Darum hier die Frage nach den Erfahrungen.

mfg
Gast #581972
Lesenswert?
• ▲
▼
Hallo,

keine Ahnung, wie Du das geschafft hast...
Beim PC könnte ich mir höchstens vorstellen, daß Du 
Portrichtungen/Register verändert hast und nach Ende Deines Programms 
nicht für die alten Einstellungen gesorgt hast. Läuft ja normalerweise 
noch ein Betriebssystem auf einem PC.

Dem Mega ist das egal, da bist Du ja sowieso ganz allein für alles 
verantwortlich.

Je nach Umständen ist meist sinnvoller, einen Interruptpin für sowas zu 
benutzen, kann der µC was sinnvolles machen, während er wartet.

Gruß aus Berlin
Michael
#581980
Lesenswert?
• ▲
▼
Wolfram Quehl wrote:
> hat die folgende Sequenz schon mal jemand ausprobiert zum Erkennen eines
> Wechsels des Pinlevels?
>
>  Start:        ;
>   sbis  PINC,2    ;        3 Takte
>   rjmp  Start    ; warten bis High, 2 Takte

Damit erkennst Du nicht den Wechsel, sondern den Zustand.
D.h. solange High ist, rauscht Du durch.
Ob überhaupt und wann Low war, ist egal.


Peter
Gast #581994
Lesenswert?
• ▲
▼
ein einfaches polling von einem Pin mach ich manchmal zwischen Init und 
Programm. Sozusagen als Startknopf, läuft aber ohne Probleme.
Mein Comtroller (Mega8 / Mega16) hat noch kein Loch!

...vielleicht hat sich deiner ja aus stupider Langeweile erschossen!
Gast #582004
Lesenswert?
• ▲
▼
auf dem PC war ich auch ganz alleine dafür verantwortlich. DOS war zwar 
installiert, aber zugegriffen hatte ich damals direkt oder über BIOS.
Bis auf den 13 Mhz Takt auf dem ISA Bus hatte ich auch nichts verändert. 
Die Leitungen im Chip hatten sich durch die schnellen häufigen Zugriffe 
überhitzt.

Ja, für den Mega bin ich verantwortlich und wenn der kaputt geht, dann 
muß ich einen neuen bezahlen.

Interruptpin geht nicht, weil ich 5 Pins entsprechend abfragen muß. Zwar 
hintereinander, aber diese müssen ja angeschlossen werden.

mfg
OP #582035
Lesenswert?
• ▲
▼
Ja, damals dachte ich nur in meiner Blödheit, wenn das einzustellen geht 
und das funktioniert, dann ist es doch gut. Die Festplatte war mit den 
13 Mhz deutlich schneller. Ich hatte ja nicht damit gerechnet, daß der 
Hersteller da was freischalten läßt, wo Schäden entstehen können.

@Peter

daß da nur der Pegel eingelesen wird, ist klar. Darum muß ich ja auch so 
oft abfragen.

mfg

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.