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
  2 Arduinos Serielle Übertragung mit SPI RFID Kit OE5AMP 18 481 05.05.2017 20:46
Letzter Beitrag: OE5AMP
  Interrupt und Software Serial BennIY 6 332 29.03.2017 22:25
Letzter Beitrag: BennIY
  Interrupt beim ESP8266 dost0011 9 696 08.03.2017 14:32
Letzter Beitrag: Tommy56
  Sicherheitsformular bei Xbee-Übertragung ElseTU 1 189 26.01.2017 17:55
Letzter Beitrag: Tommy56
  while Schleife nach sleep mode interrupt tklaus 13 645 23.11.2016 17:40
Letzter Beitrag: Tommy56
  NRF24L01 Interrupt MeisterQ 22 1.252 02.11.2016 15:50
Letzter Beitrag: MeisterQ
  Interrupt matthias3579 5 369 15.10.2016 13:23
Letzter Beitrag: hotsystems
  Interrupt und Sicherung der Prozessorregister MKc 5 364 31.08.2016 11:17
Letzter Beitrag: MKc
  Interrupt wenn softwareSerial Daten BennIY 3 631 01.05.2016 18:39
Letzter Beitrag: tiny85fan
  Timer Interrupt Anfängerprobleme Fox 4 821 05.03.2016 02:28
Letzter Beitrag: Fox

Gehe zu:


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