mikrocontroller.net

Forum: Compiler & IDEs Cortex M3 Timer programmieren


Autor: Joerg Miehle (Firma: TU Wien) (pinning)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Joerg Miehle (Firma: TU Wien) (pinning)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja! Ich benutze diese! Ich schaue mal, ob ich etwas finde. Danke!

Autor: Joerg Miehle (Firma: TU Wien) (pinning)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry! Finde keine Beispiele hierzu!

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aus dem Timebase Example
  /* Time base configuration */
  TIM_TimeBaseStructure.TIM_Period = 65535;
  TIM_TimeBaseStructure.TIM_Prescaler = 0;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

  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.

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :-) )

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche Software nimmst du zum Compilieren?

Autor: Joerg Miehle (Firma: TU Wien) (pinning)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit der IDE Ride7 und zum Debuggen nehme ich RLINK von 
Raisonance.

Autor: Joerg Miehle (Firma: TU Wien) (pinning)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche es mal und melde mich dann wieder! Danke vorerst!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

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.