mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernet Timer Performance


Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei meinem aktuellen Projekt, kommen Daten über die Ethernet 
Schnittstelle an, und müssen möglichst schnell weiterverarbeitet werden. 
Gleichzeitig hab ich noch ein Touch-Tft angeschlossen.

Bis jetzt hab ich in den ISR Routinen für die Ethernet Schnittstelle 
etc. globale Variablen gesetzt, die in der while(1) Schleife der main 
Routine bekannt geben ob z.B. daten angekommen sind.

Die Routinen für das Touch (zeichnen der Buttons etc.) sind jedoch etwas 
langsam, so dass der Datenstrom (Ethernet) dadurch ins Stocken gerät 
(weil dann GuiEvent() etwas zu lange dauert, ausgeführt zu werden)... 
wie kann ich das verhindern, bzw. wie kann ich gewährleisten, dass der 
Ethernet-Daten-Strom flüssig läuft?

In die eigentliche ISR der Ethernet-Schnittstelle wollte ich jetzt nicht 
die ganze Verarbeitung der Daten durchführen, da ich nicht sicher 
stellen kann, dass die Daten innerhalb dieser kurzen Zeit auch wirklich 
abgearbeitet werden können.
main(void)
{

//...some declaration etc...

 while(1)
 {
   if(EthRxAvail == 1)
       EthPktRx(); 
   
   //polling method (touch, encoder...)
   GuiEvent();
 }
}

Gruß
Bernd

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RTOS

Billigversion davon: Wenn der Controller frei priorisierte und per 
Software auslösbare Interrupts hat: Den eiligen Kram in einen 
Software-Interrupt niedrigster Priorität auslagern und diesen im höher 
priorisierten Ethernet-Interrupt auslösen.

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.