mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen zum Stack FreeModbus


Autor: Owen Senmeis (senmeis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

ich benutze den FreeModbus Stack für den MSP430: 
http://freemodbus.berlios.de/.

Die Initialisierung der seriellen Schnittstelle sieht folgendermaßen 
aus:
if( bInitialized )
{  
    ENTER_CRITICAL_SECTION(  );
    
    EXIT_CRITICAL_SECTION(  ); 
}
wobei
void EnterCriticalSection( void )
{
    USHORT usOldSR;
    if( ucCriticalNesting == 0 )
    {
#if defined (__GNUC__)
        usOldSR = READ_SR;
    _DINT( );
    #else
        usOldSR = _DINT( );
#endif
        ucGIEWasEnabled = usOldSR & GIE ? TRUE : FALSE;
  }
    ucCriticalNesting++;
}
Frage 1: Dieser Prozess sieht kompliziert aus. Kann man diese 
if-Anweisung und die Methode ENTER_CRITICAL_SECTION() wegmachen? Sowieso 
geschieht die Initialisierung nur einmal am Anhang!

Frage 2: Die Methode ENTER_CRITICAL_SECTION() ist auch kompliziert. Kann 
man diese vereinfachen:

In EnterCriticalSection(): globale Interrupts deaktivieren
In ExitCriticalSection(): globale Interrupts aktivieren?

Viele Grüße
Senmeis

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.