mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pinwechselerkennung beim Mega32


Autor: Wolfram Quehl (quehl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: antworter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Ähm.... hä ?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: quehl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geht ISA-BUS nicht nur bis max. 8,33MHz?

Autor: Wolfram Quehl (quehl)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.