I am using a TM4C1231D5PM.
Is the hibernation module wake pin setting edge or level setting?
My program logic is:
- Has the user been inactive for >500msec?
- Yes, then it is time go hibernate, wake on pin, but first save some data off to EE (about 20msec).
- Now, go to sleep.
When interacting with the keys on the target devices, and the user moves from one key to another, there appears to be a small window during where the device calls HibernateRequest, but then does not come out of hibernation even though a key is being pressed. All keys trigger the wake pin on the TM4C.
My suspicion is that in the 20msec EE update window the user moves to a new key, HibernateRequest is called with the wake pin already asserted. If the wake function is on transition, then a transition is not seen until the user releases the key and pushes on a key again. And indeed that is what happens.
I monitor behavior on the CAN bus. So I know I am enterring the HibernateRequest code, but not enterring main again until I release all keys, the push any key.