www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 Systick Timer


Autor: erna (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mithilfe der ST Std. Periph. Library den Systick Timer eines 
STM32F103 benutzen. Ich halte mich eigentlich sehr streng an das 
mitgelieferte Beispiel, aber er bleibt immer bei 
while(systick_delay_var!=0); hängen. Kommentiere ich diese Zeile aus, 
läuft das Programm weiter ab (Ein Display wird bei "/* Tue etwas... */" 
aktualisiert etc.).
Was kann ich denn da falsch gemacht haben? (Die Initialisierung des 
Timers sollte doch eigentlich idiotensicher sein..)
/* Auszüge aus meiner main.c: */

void TimingDelay_Decrement(void);

uint8_t systick_delay_var=0;

int main()
{
    SystemInit();
    
    /* Setup SysTick Timer for 1 msec interrupts  */
    if (SysTick_Config((72000000 / 1000)))
    { 
        /* Capture error */ 
        while (1);
    }

    while(1)
    {
        systick_delay_var=100;

        /* Tue etwas... */

        /* Warte */
        while(systick_delay_var!=0);
    }
}

void TimingDelay_Decrement(void)
{
  if (systick_delay_var != 0)
  { 
    systick_delay_var--;
  }
}


/* Auszüge aus meiner stm32f10x_it.c: */

extern void TimingDelay_Decrement(void);

void SysTick_Handler(void)
{
    TimingDelay_Decrement();
}

Gruß erna

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Übliche: volatile fehlt.

Autor: erna (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oha peinlich peinlich, hät ich irgendwie bemerken sollen. Vielen Dank!
Ich hätte ja auch einfach mal nachgucken können, was das __IO vor den 
Variablen in den Beispielen von ST bedeutet..
#define     __IO    volatile

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.