INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Interrupts mit Arduino Due
23.09.2015, 10:51
Beitrag #1
Interrupts mit Arduino Due
Hallo,
ich möchte gerne mit einem arduino due einige externe interrupts erzeugen und hoffe das mir hier jemand helfen kann.
Ich würde gerne 35 digitale signale auf einen pegelwechsel per interrupt überwachen.
Ich habe die attachInterrupt() Funktion gesehen. Aber ist es nicht möglich den Interrupts prioritäten zuzuordnen? Laut datenblatt "SAM3X / SAM3A" sollte dies doch möglich sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 10:59 (Dieser Beitrag wurde zuletzt bearbeitet: 23.09.2015 11:06 von HaWe.)
Beitrag #2
RE: Interrupts mit Arduino Due
ARM-IRQs gehen sicher, leider kenne ich mich damit aber nicht aus.
Was ich selber aber stattdessen schon lange erfolgreich nutze, ist die Lib
<DueTimer>
Die kann alles, was auch die AVR-Timer können. Ich nutze sie gerade im Rahmen 100µs-250µs, es geht aber i.P. ntl jeder Wert:
https://github.com/ivanseidel/DueTimer
http://forum.arduino.cc/index.php?topic=144446.30

HTH!

ps,
in anderen Fällen ist auch die Lib
<Scheduler>
sehr zu empfehlen, wenn man viele recht kurze Parallel-Tasks hat (kooperatives Multitasking)
http://playground.arduino.cc/Code/Scheduler

oder Babix für preemptives (!) Multitasking, das auch bei sehr langen Einzel-Tasks einen reibungslosen Timeslice-Switch zulässt:
<Babix>
http://forum.arduino.cc/index.php?topic=318084.0
http://francois.pessaux.perso.sfr.fr/arduino.html#Babix
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 11:12
Beitrag #3
RE: Interrupts mit Arduino Due
Wenn nun an allen Pins nahezu gleichzeitig ein ereignis stattfindet gibt es dann die möglichkeit ein register auszulesen an welchen pins überall ein ereignis stattgefunden hat?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 11:17
Beitrag #4
RE: Interrupts mit Arduino Due
ich weiß nicht was alles in den Libs steht, und ich nutze auch nur Timer IRQs, keine Pinchange IRQs.
Aber die TimerIRQs sind sehr exakt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 11:29
Beitrag #5
RE: Interrupts mit Arduino Due
(23.09.2015 11:12)chhec schrieb:  Wenn nun an allen Pins nahezu gleichzeitig ein ereignis stattfindet gibt es dann die möglichkeit ein register auszulesen an welchen pins überall ein ereignis stattgefunden hat?
Hi,
wahrscheinlich gibt es das, aber wozu? Ist Deine Anwendung tatsächlich so zeitkritisch? Der Due läuft mit 84MHz. D.h. in einer Millisekunde kann man schon eine ganze Menge machen. Selbst wenn jetzt alle der 35 Interrupts ausgelöst würden, wäre die Abarbeitung nach 35 Millisekunden vorbei.
...oder was genau ist Deine Anforderung?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 11:56
Beitrag #6
RE: Interrupts mit Arduino Due
Also ich möchte die unteren Zeitgrenzen ermitteln und untersuchen. Sprich die minimal zu erfassenden Signale. Wie kommst du auf die 35 Millisekunden? Oder war das nur so daher gesagt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 12:33
Beitrag #7
RE: Interrupts mit Arduino Due
(23.09.2015 11:56)chhec schrieb:  Also ich möchte die unteren Zeitgrenzen ermitteln und untersuchen. Sprich die minimal zu erfassenden Signale.
Das müsstest Du mal genauer erklären...
Der Arduino bekommt alle Signale mit, auch wenn sie alle gleichzeitig reinkommen. Sie werden nur nacheinander abgearbeitet. Wenn die Signale natürlich schneller reinkommen, als die Interrupt-Routinen abgearbeitet werden, dann dürfte auch mal was verloren gehen.

Zitat:Wie kommst du auf die 35 Millisekunden? Oder war das nur so daher gesagt?
Das war nur so eine Beispielrechnung. Ich denke mal, dass auf einem Due eine Interrupt-Handler-Routine nie länger als 1 Millisekunde dauern sollte. (HaWe arbeitet ja sogar mit Timer-Interrupts alle 250 Mikrosekunden und macht sogar in der Zeit noch etwas sinnvolles.)
Natürlich kommt das ganze auf die konkrete Anforderung an.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.09.2015, 12:49
Beitrag #8
RE: Interrupts mit Arduino Due
Also ich plane einen versuchsaufbau in dem zunächst 35 Signale per Interrupt erfasst werden und per SPI an einen anderen Controller mitgeteilt werden. Die 35 Signale sind jedoch nur testweise und sollen auf bis zu 50 signale erweiterbar sein.

Die Signale sollen per Zufall generiert werden (hab ich keinen einfluss drauf) und können auch für kurze Zeit <10µs auftreten. Diese möchte ich nun nach möglichkeit alle erfassen. Dabei soll es egal sein wie viele der Signale gleichzeitig auftreten.

Und da möchte ich herausfinden wo hier die technische Grenze liegt.
Wo kann ich die notwendigen Informationen hierzu finden? Ist es möglich das sagen wir 35-50 Signale gleichzeitig auftreten und der µC diese Information in der gleichen Anzahl an ISR abarbeitet?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.118 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 3.144 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf
  Interrupts für eine bestimmte Zeit unterbrechen?? kai.l 5 1.326 13.10.2014 14:34
Letzter Beitrag: kai.l
  [gelöst:] Hardware-Timer-Interrupts beim Mega HaWe 1 917 26.09.2014 22:11
Letzter Beitrag: HaWe
  Frage zu Interrupts schnutzkurt 3 1.751 17.02.2014 10:47
Letzter Beitrag: Bitklopfer
  Zwei Zeitkritische Interrupts gleich verarbeiten subseven 12 5.908 09.01.2014 19:17
Letzter Beitrag: rkuehle
  Interrupts oder nicht? AtroCty 4 2.202 21.06.2013 16:16
Letzter Beitrag: Tobii

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste