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
Interrupt bei Serieller Übertragung
21.06.2016, 14:09
Beitrag #9
RE: Interrupt bei Serieller Übertragung
Hey!

Bei einem Signal von 100Hz werden ziehmlich warscheinlich keine Interrupts ausgelassen. Bei einer Taktfrequenz von 16MHz wird es sich locker ausgehen, rein ohne Berechnungen und viel nachdenken.
Ich habe vor kurzem selbst Hall-Sensoren ausglesen um Motordrehzahlen auszulesen (4 externe Interrupts @16Mhz ATmega2560). Die Frequenz war dabei 1,3kHz und die Ergebnisse haben gepasst.
Da Ergebnisse sowieso Messfehler (hardwaremäßig) beinhalten, werden auch Softwaremessfehler eine geringe Rolle spielen, falls doch ein Interrupt ausgelassen wird. Um "bessere" Ergebnisse zu bekommen könntest du einen einfach Filter einbauen (z.B. Tiefpassfilter).

(20.06.2016 06:11)Bitklopfer schrieb:  ...
Andererseits und da bin ich mir bei den AVR's jetzt absolut unsicher gibt es eine Priorisierung der Interrupts wo dann höher Priore Interrupts solche mit niedriger Prio unterbrechen können.
...
Gibt es tatsächlich, habe ich gerade erst gestern gelesen (Artikel mit Prioritäten jedoch für AVR AT90S2313).
Ich glaube die Vector-Nummer gibt die Prioritäten an, somit wäre bei ATmega328p (laut Datenblatt Seite 65) die externen Interrupts (Nr. 2 & 3) vor USART-RX/TX (Nr. 19 & 21).
Theoretisch könnten also empfangene serielle Daten verloren gehen. Beim Senden sollten keine Verluste durch Interrupts auftreten.

(20.06.2016 06:30)Bitklopfer schrieb:  
(20.06.2016 06:24)tausday schrieb:  ....
Es geht kein Interrupt verloren, wird nur ggf. später bearbeitet

...ich meine zu wissen das wenn der gleiche Interrupt mehrmals hintereinander auftritt bevor der Erste davon abgearbeitet ist dann gehen die noch nicht abgearbeiteten verloren...
lgbk
Es können durchaus welche verloren gehen. Sobald ein "Interrupt" ausgelöst wird, wird ein Flag-Bit in ein Register geschrieben. Das teilt dem Prozessor mit, dass er im nächsten Prozessordurchlauf in eine ISR hüpfen sollen und diese Routine abarbeiten soll. Erst wenn sie fertig ist, wird das Interrupt-Flag-Bit gelöscht. Wenn der gleiche Interupt eintritt, bevor die ISR abgearbeitet worden ist, geht ein Interrupt also verloren.

Wie SoftwareSerial codemäßig geschrieben ist, weiß ich nicht. Aber ich denke, dass Interrupts während der Übertragung ausgeschalten werden, somit können maximal Encoder-Interrupts fehlen.

mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit externem Interrupt manfred474 13 840 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 19 1.791 04.08.2017 08:10
Letzter Beitrag: Binary1
  2 Arduinos Serielle Übertragung mit SPI RFID Kit OE5AMP 18 933 05.05.2017 20:46
Letzter Beitrag: OE5AMP
  Interrupt und Software Serial BennIY 6 554 29.03.2017 22:25
Letzter Beitrag: BennIY
  Sicherheitsformular bei Xbee-Übertragung ElseTU 1 247 26.01.2017 17:55
Letzter Beitrag: Tommy56
  while Schleife nach sleep mode interrupt tklaus 13 925 23.11.2016 17:40
Letzter Beitrag: Tommy56
  NRF24L01 Interrupt MeisterQ 22 1.733 02.11.2016 15:50
Letzter Beitrag: MeisterQ
  Interrupt matthias3579 5 465 15.10.2016 13:23
Letzter Beitrag: hotsystems
  Interrupt und Sicherung der Prozessorregister MKc 5 491 31.08.2016 11:17
Letzter Beitrag: MKc
  Interrupt wenn softwareSerial Daten BennIY 3 746 01.05.2016 18:39
Letzter Beitrag: tiny85fan

Gehe zu:


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