Hallo Leute, was würd ich nur ohne euch machen ;-) Habe folgendes Problem: Wird ein Interrupt an INT0 ausgelöst, wird er korrekt bearbeitet. Soll er jedoch danach innerhalb weniger Sekunden erneut ausgelöst werden funktioniert es nicht. Erst nach ca 10 Sekunden kann er erneut ausgelöst werden. Der Interrupt Pin1 befindet sich an Bit0 von PORTB Der Interrupt Pin2 befindet sich an Bit1 von PORTB 1. Frage: Bei gewolltem Interrupt Int0 muss doch das dazugehörige TRIS Bit auf 1 gesetzt werden (für Input oder??) -> Es funktioniert aber auch mit 0 ??? 2. Frage: Wenn ich während dem Interrupt das Register TRISB mit clrf auf 0 setze funktionieren x Interrupts hintereinander. Mit movlw 0x00 movf TRISB funktioniert es NICHT ???????? Warum funktioniert es wenn ich das TRISB auf Output setze???? Quellcode: org 0x00 goto Main org 0x18 goto ISR_High ISR_High: btfsc INTCON3,0 goto ISR_High_Int0 btfsc INTCON,1 goto ISR_High_Int1 ISR_High_Int0: bcf INTCON3,0 clrf TRISB ; ???? bcf LED3O bsf LED2O retfie 1 ISR_High_Int1: bcf INTCON,1 clrf TRISB ; ???? bcf LED2O bsf LED3O retfie 1 Main: bsf INTCON,7 ; GIEH bsf RCON,7 ; IPEN bsf INTCON3,3 ; INT1IE bsf INTCON2,5 ; INTEDG1 bsf INTCON3,6 ; INT1IP bsf INTCON,4 bsf INTCON2,6 ....... Hoffe ihr könnt mir mal wieder helfen! Gruß DaHeik
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.