mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 50 IO´s pollen?


Autor: Spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich wollte mal fragen, ob es SICHER möglich ist, 50 IO-Pins zu pollen, 
wenn ein Mega2560 eigentlich nichts anderes macht als auf ein PIN-Change 
an den 50 IO´s zu warten und dann ein wenig auf der seriellen klimpern.
Der Controller arbeitet mit 7.3728MHz und die minimale Impulslänge an 
den Eingängen die sicher detektiert werden sollen, kann 1ms betragen. 
Ist das möglich? Wie rechnet man sowas? In Main() werden also einfach 
nur 6 PORTs gepollt eingelesen und mit einer Referenz verglichen. Wie 
lange dauert sowas? Ich glaube die Frage richtet sich an die ASM-Gurus

Danke und Gruß
Spice

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll denn genau detektiert werden? Nur ob ein Pin für mindestens 
1msec seinen Pegel wechselt oder das Anliegen einer speziellen 
Impulsfolge?

Beim Tastenentprellen gibt es doch das Verfahren mit den vertikalen 
Zählern. Damit könnte man immer 8 Eingänge auf einmal untersuchen.

Kai Klaas

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
willst du denn auch informationen über die impulslänge?
wenn nicht, gilt einfach nur das abtasttheorem und deine minimale 
polling-frequenz ist 2/(1ms*).
das schafft dein µC locker.

probleme kriegst du erst, wenn ein burst an pulsen auf verschiedenen 
eingängen kommt, der dann deine uart verstopft.

Autor: Spice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal,

ist einfach nur ein Puls, bzw. ein kurzzeitiges Wechseln von High auf 
Low...
Entprellen wollte ich eigentlich nicht. Wenn sich an den Pins was ändert 
setze ich ein flag und lese die Ports nicht mehr ein, solange ich mit 
der seriellen Ausgabe durch bin. Das sollte die eventuellen störer 
vermeiden. Informationen über die Impulslänge brauche ich nicht. Ich 
muss nur wissen, welcher Pin sich geändert hat.
Danke nochmal und Gruß
Spice

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Entprellen wollte ich eigentlich nicht.

Es ging mir nicht ums Entprellen, sondern vielmehr um eine Methode 8 
Eingänge gleichzeitig und zuverlässig auf eine Pegeländerung hin zu 
untersuchen.

Kai Klaas

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spice schrieb:
> In Main() werden also einfach
> nur 6 PORTs gepollt eingelesen und mit einer Referenz verglichen. Wie
> lange dauert sowas?

2  Takte Referenz Port 1 in Register
1  Takt  I/O-Port 1 in 2. Register
1  Takt  XOR beide Register
2  Takte Ergebnis speichern oder Jump zur Behandlungsroutine

das ganze 6 mal = 36 Takte = 5 us bei 7,3 Mhz
Du brauchst für die Abfrage der Pins also weniger als 1% Rechenzeit.

Gruß Anja

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anja schrieb:
> 2  Takte Referenz Port 1 in Register
> 1  Takt  I/O-Port 1 in 2. Register
2 takte für latch und einlesen.
> 1  Takt  XOR beide Register
> 2  Takte Ergebnis speichern oder Jump zur Behandlungsroutine
hin- und rücksprung in die ISR inkl retten und wiederherstellen der 
register: ~20 takte.

die änderung um eine größenordnung ist trotzdem nicht problematisch.

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.