Hi folks, schimpft mich nicht, aber ich bräuchte ein einfaches Beispiel für eine ISR, die von einem internen Timer im BF537 ausgelöst wird. Also, im Endeffekt eine Funktion, die alle 20 ms ausgeführt wird. Das hab ich bisher per polling einer clock()-Funktion realisiert, das ist aber so alles andere als schön. Leider ist die Blackfin-Doku für mich alles andere als gut lesbar, muss halt den Blackfin verwenden und Beispiele finde ich im Netz kaum. Ich arbeite mit VirtualDSP++ und scheitere schon daran, den Interrupt zu initialisieren und in C zu benutzen, also an der C-Syntax. Habt ihr was da? Viele Grüsse, vielen Dank Johannes
Ich hab jetzt versucht die Datenblätter zu verstehen und die erforderlichen Schritte für einen Timer nachzuvollziehen, siehe Anhang. Der Blackfin hat drei Timermodi: -Pulse Width Modulation (PWM_OUT) Mode -Pulse Width Count and Capture (WDTH_CAP) Mode -External Event (EXT_CLK) Mode Beim xc164 haben wir immer den capture/compare-modus für solche Zwecke (eine ISR alle 20ms aufrufen) verwendet. Welcher der obigen ist dafür denn am sinnvollsten?
Habs jetzt fast gelöst, im Anhang eine Datei, die egtl einen bei jedem Interruptaufruf einen counter hochzählen sollte. Leider klappt das grade nicht, sollte aber schon fast vollständig sein. Ich habe Schwierigkeiten, Informationen über das Register IMASK (0xFFE02104) im Datenblatt zu finden. Hat jemand mehr Infos? Das Register wird ua. in diesem Beispiel benutzt: http://www.mikrocontroller.net/attachment/highlight/39330 viele Grüsse Johannes
Hi, guck mal hier: http://www.section5.ch/forum/viewtopic.php?f=2&t=118 (irqhandler.asm, irq.c, etc.) gruss, - Strubi
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.