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
  while Schleife nach sleep mode interrupt tklaus 13 260 23.11.2016 17:40
Letzter Beitrag: Tommy56
  NRF24L01 Interrupt MeisterQ 22 517 02.11.2016 15:50
Letzter Beitrag: MeisterQ
  Interrupt matthias3579 5 221 15.10.2016 13:23
Letzter Beitrag: hotsystems
  Interrupt und Sicherung der Prozessorregister MKc 5 225 31.08.2016 11:17
Letzter Beitrag: MKc
  Interrupt wenn softwareSerial Daten BennIY 3 444 01.05.2016 18:39
Letzter Beitrag: tiny85fan
  Timer Interrupt Anfängerprobleme Fox 4 620 05.03.2016 02:28
Letzter Beitrag: Fox
  Problem mit Pin Change Interrupt in Library Retian 0 321 10.02.2016 23:37
Letzter Beitrag: Retian
  Aus While-Schleife durch Interrupt aussteigen Zill3 10 1.191 08.02.2016 16:28
Letzter Beitrag: ardu_arne
  Servo per Serieller Mointor ansteuern iggy 1 819 03.08.2015 03:08
Letzter Beitrag: yasi
  serieller Monitor friert ein oder Programm hängt sich auf MaHaI976 3 784 22.06.2015 13:45
Letzter Beitrag: MaHaI976

Gehe zu:


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