STM32 IC mit DMA

#5689844
Lesenswert?

Hi,

Ich habe bereits Input Capture mit Interrupts erfolgreich programmiert 
und will nun IC mit dem DMA auf einem STM32F405 probieren. Nun kann ich 
mit folgender HAL Funktion beginnen, welche mir die Periode gibt, wenn 
ich Sample[i+1]-Sample[i] subtrahiere:

1
HAL_TIM_IC_Start_DMA(tim1,TIM_CHANNEL_4,ic_buf,IC_BUF_SIZE);

Jedoch brauche ich ja wie bei der Interrupt Methode die Periodendauer, 
als auch den Duty. Doch wie bekomme ich nun den Duty Cycle mit dem DMA, 
wenn ich wie oben das ganze in einen Buffer lese?
#5690036
Lesenswert?

pegel schrieb:
> Der Handler tim1 für den jeweiligen Timer wird ganz normal
> initialisiert,
> oder wie meinst du das?

Das schon, aber ich habe Probleme die Periode und den Duty Cycle des PWM 
input Signals zu rekonstruieren.

Ich habe nun raus gefunden, dass ich auf rising und falling edge 
triggern kann und so diese Punkte mit dem DMA in einen Buffer einlesen 
kann. Nun weiss ich aber nicht wirklich, ob die eingelesenen Punkte nun 
für die rising oder die falling edge waren und somit ist unter Umständen 
der berechnete Duty Cycle gerade 1-Duty Cycle.
Gast #5690106
Lesenswert?

Moin,

nimm doch 2 CCR. Die Input Filter & Edge Detection hat 2 Ausgänge.
Den einen auf IC1 den anderen auf IC2. Dann braucht es zwar 2 DMA
Kanäle, aber einer kriegt immer die steigende Flanke und der andere
immer die Fallende.
Ich hab das allerding bisher nur beim F746 gemacht, wo ich zwei Pulse
ausmessen muss, in Länge und Lage zueinander -> 2 Eingangspins auf 4
IC mit 4 DMA Kanäle. Muss man allerdings vorher checken, ob die Kanäle
nicht anderweitig gebraucht werden.
Aber im F4xx Ref Man sehen die Timer eigentlich ziemlich genauso aus.
#5690245
Lesenswert?

Darth Moan schrieb:
> Moin,
>
> nimm doch 2 CCR. Die Input Filter & Edge Detection hat 2 Ausgänge.
> Den einen auf IC1 den anderen auf IC2. Dann braucht es zwar 2 DMA
> Kanäle, aber einer kriegt immer die steigende Flanke und der andere
> immer die Fallende.
> Ich hab das allerding bisher nur beim F746 gemacht, wo ich zwei Pulse
> ausmessen muss, in Länge und Lage zueinander -> 2 Eingangspins auf 4
> IC mit 4 DMA Kanäle. Muss man allerdings vorher checken, ob die Kanäle
> nicht anderweitig gebraucht werden.
> Aber im F4xx Ref Man sehen die Timer eigentlich ziemlich genauso aus.

Ok, danke, ich denke das ist genau das was ich machen sollte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren