Timeline for Interrupt works only once - PIC16F877a
Current License: CC BY-SA 4.0
11 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jan 22, 2019 at 8:10 | comment | added | mic | @Bouzaid There may be a good reason for having several buttons connected to the same input, but be aware that the wire length may have an impact on reliability. See for instance: arduino.stackexchange.com/questions/13072/… | |
Jan 21, 2019 at 13:33 | answer | added | Lundin | timeline score: 2 | |
Jan 21, 2019 at 12:52 | comment | added | Lundin | @deathismyfriend It is about microcontroller firmware and even has a schematic. It should not be posted on SO where people don't even know the meaning of pull-up, but it should remain here, where it is perfectly on-topic. | |
Jan 21, 2019 at 12:35 | answer | added | Unimportant | timeline score: 2 | |
Jan 20, 2019 at 23:20 | history | edited | Bouzaid | CC BY-SA 4.0 |
deleted 6 characters in body
|
Jan 20, 2019 at 23:13 | comment | added | Bouzaid | @deathismyfriend for simulations purpose, reset button is not needed, and I don't know what do you mean by interrupt call initialized what I am trying to achieve by the code above is described in the text above also, the code is clear and simple, only there's a problem i don't tend to see. ! | |
Jan 20, 2019 at 21:33 | comment | added | Unimportant | Variables that are shared between the ISR and main code should be declared volatile. You should also read up about non-atomic operations such as manipulating a 16-bit int on a 8-bit device. | |
Jan 20, 2019 at 20:57 | comment | added | deathismyfriend | Without seeing the rest of the code I can't really tell what is happening. Were does the above get reset ? Also where is the interrupt call initialized. | |
Jan 20, 2019 at 20:51 | comment | added | Bouzaid | @deathismyfriend, I don't think so, cause the flag should always be cleared, otherwise the interruption routine never ends | |
Jan 20, 2019 at 20:45 | comment | added | deathismyfriend | This should be on stack overflow. Anyways from what it looks like the interrupt is still being triggered after the first press. Your if statements however are stopping it. You never change INTCON.INTF or INTCON.TMR0IF back to initial value. It is always 0. | |
Jan 20, 2019 at 19:36 | history | asked | Bouzaid | CC BY-SA 4.0 |