UP in gleichen Abständen aufrufen

Gast #1220933
Hallo,

ich programmiere noch nicht lange den MSP430 in C.

Nun will ich das Programmm PWM() in gleichen Abständen aufrufen.
Das Prog funktioniert nur hab ich es noch nicht geschafft dass es immer 
gleich kommt.

Ich hab folgendes "main" Prog:
1
 
2
void main (void)
3
  { 
4
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
5
    Init_Clocking();
6
    SETWDT1S;
7
    Init_Address();
8
    Init_UART();
9
    Init_IO();
10
    Init_ADC();
11
    Init_Timer();
12
    Init_LEDS();
13
    //P6OUT |= 0x40;  
14
    DataInLow = 0x00;
15
    DataInHigh = 0x00;
16
    DataOut = 0x00;
17
//    Set_Fresh_Data ();
18
//    P3DIR |= 0x10;              // P3.4 output direction TXD
19
    _BIS_SR(GIE);         //normaler Betrieb ohne Stromsparmodus
20
//    P1DIR |= 0x01;              // Set P5.1 to output direction
21
    
22
    while (1)
23
    {
24
      CLRWDT;//
25
      SETGIE;
26
      STATUS_Byte();
27
//      P1OUT ^= 0x01;      //nicht initialisiert 600ms ein 600ms aus
28
        ShowAdress();
29
            
30
      UARTCmdHndlr();
31

32
    }
33
  }

Das Prog PWM() soll im while (1) teil immer in gleichen Abständen 
aufgerufen werden. Wie kann ich das machen. Das Problem ist, dass die 
anderen Programme unterschiedlich lange brauchen.

Marc
Gast #1220941
Sollen die anderen Codeteile in der while(1) genau einmal pro Aufruf von 
PWM() aufgerufen werden (also in bestimmter Reihenfolge), oder so oft 
wie es der Controller in der Zwischenzeit schafft.

Im ersteren Fall: Im Timerinterrupt ein Flag setzen (global oder 
modulglobal ["static"] als volatile definiert!), in der Hauptschleife 
vor dem Aufruf ein
1
while (!bTimer)
2
    ;

Im letzteren Fall PWM() aus der Interruptroutine aufrufen. Ist nur 
sinnvoll möglich, wenn der Aufruf von PWM() nicht zu lange dauert.

Übrigens: PWM() ist kein "Prog", sondern eine "Funktion".

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.