Forum: Mikrocontroller und Digitale Elektronik stm32f103 Timer Input Capture Interrupt


von Roland H. (blacksmoke)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

Ich bin gerade dabei mich mit den Timern des stm32 zu befassen. Später 
möchte ich damit einen DHT22 auswerten. Als erstes Versuche ich nun eine 
Flanke zu erkennen und daraufhin in der ISR eine Uart-Meldung 
auszuspucken.

Habe mir dafür etwas Code zusammen gebastelt. Beim Testen sehe ich auch 
die Uart-Message. Leider dauerhaft sobald ich den pin ziehe. Leider bin 
ich in den IRQ und Timergeschichten beim stm32 relativ neu. Daher weiß 
ich natürlich nicht ob ich was vergessen habe.

Die Vermutlich einfachste erkärung wäre vermutlich einen Fehler in der 
Initialisierung des Timer (da ich das vorher so auch noch nicht gemacht 
habe) oder ich in der ISR noch irgend ein bit manuell zurücksetzen muss.

Dass das manuell über registerzugriffe gemacht ist, ist absicht, da ich 
das mal von unten rauf verstehen möchte. Habe vorher einiges mit AVR 
gemacht und bin der HAL nicht gerade zugetan. Ich neige dazu das eher 
selbst zu Implementieren.

Den aktuellen Stand seht ihr in den angehängten Dateien.


Danke schon mal. Falls noch Angaben benötigt werden, gebe ich natürlich 
gern

von Marc Horby (Gast)


Lesenswert?

Welche IDE benutzt du?

von Roland H. (blacksmoke)


Lesenswert?

Ich benutze keine IDE, ich benutze nur einen Texteditor meiner Wahl und 
ein Makefile. Habe nun herausgefunden woran es erst mal lag. Man muss 
wohl entweder zurücksetzen oder den Wert aus CCR lesen (Ich habe CCR1 
statt CCR2 gelesen). Das was ich jetzt noch für eine problem habe, dass 
bei jedem IRQ der Zählwert höher wird.

Das heißt wohl, dass ich den Zählerwert irgendwie wieder auf null setzen 
muss. Ich muss als nächstes dann überprüfen, ob die Zählwerte sinn 
machen (dafür werde ich dann einen Frequenzgenerator ran hängen und als 
timertakt irgendwas ganzzahliges nehmen 1us, 1ms )

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.