Gast
#1791998
Hallo zusammen!!! Ich hoffe mal, dass sich hier jemand mit meiner Problematik auskennt und mir vielleicht den einen oder anderen Tip geben kann, weil ich schon fast am verzweifeln bin. Bei einem C-Programm (C30 Compiler von Microchip) für PIC24FJ32GA004 spinnt noch ganz gewaltig etwas. Jedoch denke ich, dass ich jetzt das Problem gefunden habe, bin mir aber nicht ganz sicher! 1.) Frage: In einem zeitkritischen Programmteil muss ich für kurze Zeit alle Interrupts ausschalten. Also setze ich alle InterruptEnable Bits der verwendeten Hardwarekomponenten auf 0. Nach dem zeitkritischen Programmteil kann ich sie wieder zulassen und Enable die Interrupts wieder. Meine Frage ist nun, was passiert, wenn während der Zeit, in welcher die Interrupts gesperrt sind eigentlich ein Interrupt ausgelöst werden müsste. Wird dieser dann "pending" und wird nach dem Enablen dann ausgeführt oder wird dieser komplett "verschluckt"??? Meine Vermutung ist, dass er wohl verschluckt wird und einfach nie ausgeführt wird. Erst beim nächsten Interruptevent dieser Hardwarekomponente wird der Interrupt dann wieder ausgeführt. Leider habe ich bei Microchip auch nach stundenlangem Durchsuchen der Datenblätter zu diesem Verhalten nichts gefunden. 2.) Frage: Wenn meine Vermutung richtig ist, wie kann ich dies anstellen, dass die Interrupts kurzzeitig den Programmablauf nicht unterbrechen dürfen, jedoch nicht vergessen werden sollten? Würde mir in meiner Studienarbeit echt wahnsinnig weiterhelfen, wenn mir hier jemand einen Tip geben würde... MfG Flo