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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.