Hi, ich arbeite mich gerade durch dieses Thema inkl. Code vom zweiten Beitrag durch: Beitrag "CDC für xmega" Der Code läuft problemlos auf einem ATxmega253A3U, und ich versuche nun, daran angelehnt, meine eigene Bibliothek zu schreiben. Erstens, weil ich den Original-Code in wenigen Monaten nicht mehr verstehen werde und zweitens, weil ich eine andere USB-Klasse benutzen möchte. Bei Debuggen ist mir aufgefallen, dass der SoF-Interrupt im Code nie aktiviert wurde (USB_SOFIE_bm im USB.INTCTRLA-Register), aber trotzdem das SOF-Flag gesetzt wird. Wie kann das sein? Das gesamte (Original-)Projekt enthält keine Stelle, in der SOF-Interrupts aktiviert werden, und man sieht ja auch im Screenshot, dass die nicht aktiviert sind. Ist dieses Bit einfach nur "historisch" übriggeblieben, und dieser Interrupt wird trotzdem generiert?
Das ist normal, das nur der Interrupt gesperrt wird, die zugehörigen Flags aber weiterhin gesetzt werden... Hat so seine Vorteile! Aber man sollte sich überlegen, ob man das nicht löschen sollte, bevor man den Int wieder freigibt!
:
Bearbeitet durch User
Ach, so einfach. Danke! Gelöscht werden die Flags trotzdem. Daran hat man da gedacht.
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.