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
#1445517
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.
Ja! Ich benutze diese! Ich schaue mal, ob ich etwas finde. Danke!
Sorry! Finde keine Beispiele hierzu!
Gast
#1445656
aus dem Timebase Example
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
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.
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 :-) )
welche Software nimmst du zum Compilieren?
Ich arbeite mit der IDE Ride7 und zum Debuggen nehme ich RLINK von Raisonance.
Ich versuche es mal und melde mich dann wieder! Danke vorerst!
Gast
#1446408
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
Bitte melde dich an, um einen Beitrag zu schreiben.