Cortex M3 Timer programmieren

OP (Firma: TU Wien) #1445496
Möchte bei meinem ersten kleinen Projekt eine Timerinterrupt 
programmieren (in C) der alle 100us eine Interruptserviceroutine 
anspringt und abarbeitet. Kann mir jemand prinzipiell das Gerüst 
erklären. Ich finde derzeit nichts brauchbares im Internet. Hat 
vielleicht jemand eine gute Buchempfehlung die den Einstieg erleichtert?
Als Hardware dient mir das Olimex STM32-P103. GPIO und RCC 
Programmierung habe ich geübt und klappt auch.
Gast
Nutzt du die FW Library von ST? (www.st.com -> stm32 -> downloads)
Da sind auch Beispiele zum Timer dabei. Die 100 Mikrosekunden bekommst 
die mit entsprechenden Werten für "Periode" und "Prescaler" hin. Ist 
aber alles genau in den Beispielen erklärt.
Gast
aus dem Timebase Example
1
  /* Time base configuration */
2
  TIM_TimeBaseStructure.TIM_Period = 65535;
3
  TIM_TimeBaseStructure.TIM_Prescaler = 0;
4
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
5
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
6

7
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

Hier: Prescaler = 0 => TimerFreq = 36 MHz => IRQ wird alle 1,82 ms 
(1/36MHz * Period) aufgerufen.  Du kannst Period und Prescaler 
entsprechend anpassen damit du auf 0,1 ms bekommst. Aufgerufen wird der 
TIM2_IRQHandler.
Persönliche Seite
ooooha :-) Driverlib...

Such mal nach CMSIS, da drin ist ein feriges Example für den Cortex-M3 
internen SysTick Timer.

Ausserdem kannste den STM32 viel kompakter & lesbarer programmieren, 
wenn du die DL nciht verwendest, sondern ins Manual schaust ^^


Ansonsten: Wenn spezielle Fragen --> her damit! **g**


VG,
/th. (<-- der kein Fan von risesn DLs ist :-) )
Gast
Lad dir doch ne Trial Version von SEGGER embOS runter, die haben da in 
der RTOSInit.c immer einen Timerinitialisierung für den OS Systemtick 
drin (1 msec). Kann dort aber leicht durch ein define in 100usec 
abgeändert werden.
Klasust du dir halt daraus den entsprechenden Code ;-).

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.