ARM Embedded - Timer

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

ARM Embedded - Timer

Beitragvon Mathias » 7. Okt 2018, 18:42 ARM Embedded - Timer

Hat schon jemand mal versucht, einen Timer auf dem STM32 zu nutzen ?

Ich habe mal einen Anfang probiert, aber wie weiter ?
Code: Alles auswählen
const
  TIM_CR1_CEN = 1; //  #define TIM_CR1_CEN   BIT(0)
  RCC_APB1ENR_TIM2EN = 1;
 
procedure Timer1_Interrupt; public Name 'TIM2_interrupt'; interrupt;
begin
  multi;
end;
 
begin
  // Ports einschalten
  RCC.APB2ENR := RCC.APB2ENR or (%111 shl 2);
 
  // Timer
  RCC.APB1ENR := RCC.APB1ENR or RCC_APB1ENR_TIM2EN;
 
  TIM2.PSC := 0;
  TIM2.ARR := $FFFF;
  TIM2.RCR := 0;
 
  TIM2.DIER:=TIM_DIER_UIE;
  TIM2.DIER:=TIM2.DIER or TIM_CR1_CEN;
 
//  TIM2.CR1 := TIM2.CR1 or 1;


Für C++ habe ich ein Beispiel gefunden: https://os.mbed.com/forum/mbed/topic/16 ... ment-38688
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon kupferstecher » 8. Okt 2018, 18:28 Re: ARM Embedded - Timer

Bei dir fehlt noch die aktivierung im NVIC (Nested vector interrupt controller), damit der Interrupt auch ausgelöst wird.

Die Unit im Anhang ist nach der "alten" Nomenklatur, also "Timer2" statt "TIM2", muss geändert werden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
kupferstecher
 
Beiträge: 166
Registriert: 17. Nov 2016, 11:52

Beitragvon Mathias » 8. Okt 2018, 19:11 Re: ARM Embedded - Timer

Danke
Bei dir fehlt noch die aktivierung im NVIC (Nested vector interrupt controller), damit der Interrupt auch ausgelöst wird.

Das dachte ich mir fast, nur wusste ich nicht wie ich dies in Pascal lösen sollte.
Dank deiner Unit läuft der Timer.

Hast du die Units selbst geschrieben oder sind die irgendwo öffentlich ?
Vor allem die stm32F10x_BitDefs.pas .
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon kupferstecher » 9. Okt 2018, 09:52 Re: ARM Embedded - Timer

Die stm32F10x_BitDefs.pas hab ich aus dem C-Header von ST übersetzt, welcher bei der SPL ("Standard peripheral library") dabei ist, müsste man irgendwo sammeln/ bereitstellen.

Es gibt einen teilweise Port der SPL, Datei st32f103fw.pas:
http://j-software.dk/stm32f103.php
Teilweise heißt: RCC, GPIO, UART, NVIC, Systick, SPI, I2S, ADC, DMA, EXTI.

DonAlfredo hat vor kurzem auch von einer Bibliothek berichtet, die mbf ("Microcontroller Board Framework"):
https://github.com/michael-ring/mbf/tree/master/Source
Diese unterstützt sogar verschiedene Controllerfamilien und Hersteller, aber wie ich gesehen habe zumindest für den STM32F1 nur die grundlegendsten Sachen.

Ansonsten bedien ich mich des folgenden C-Tutorials, das die SPL verwendet:
http://diller-technologies.de/stm32.html
Sind die relevanten Funktionen in der st32f103fw.pas nicht vorhanden, dann schau ich mir die Registerzugriffe in den C-Sourcen der SPL an.
kupferstecher
 
Beiträge: 166
Registriert: 17. Nov 2016, 11:52

Beitragvon Mathias » 11. Okt 2018, 16:44 Re: ARM Embedded - Timer

Die stm32F10x_BitDefs.pas hab ich aus dem C-Header von ST übersetzt, welcher bei der SPL ("Standard peripheral library") dabei ist, müsste man irgendwo sammeln/ bereitstellen.

Ich habe deine Unit mal veröffentlicht. Da der stm32f103 mehr als nur ein Timer hat, werde ich die Unit noch ein wenig anpassen.

https://github.com/sechshelme/Lazarus-E ... 103C/units

Wen du noch mehr interessante Sachen hast, würde ich dies auch gerne veröffentlichen. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron
porpoises-institution
accuracy-worried