This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How can I get GPIO0 interrupt to occur in rising edge on DM6446?

To configure a GPIO interrupt to occur on rising edge only:

1) Write a logic 1 to the corresponding bit in CLR_FAL_TRIG

2) Write a logic 1 to the corresponding bit in SET_RIS_TRIG

Please note that reading back these registers give you the state of the GPIO of interest and not the actual value of the registers.

  • "Please note that reading back these registers give you the state of the GPIO of interest and not the actual value of the registers."

     

    I don't see in the data sheet where it says this.  I am not doubting you.  But I am having trouble getting my ISR to be called.  It would seem that you would want to read the state of these registers and only modify the bit you want?

  • The registers are divided in to one to set and one to clear, so you never need to actually read them back, you just set the bit in the set register you want to set, or set the bit in the clear register that you want to clear. The idea is that you do not have to read the register to know you are only effecting your own bit, any bits in the registers that you do not attempt to set will not have an effect on the state of the GPIO. In other words writing a 0 to a bit in the CLR or SET registers will not do anything to the bit.

    If you are having ISR trouble you may want to look at the rest of the signal chain to see where your interrupt is not making it, assuming your GPIO is available from a PINMUX standpoint and you toggle it after setting up the edge triggering, you should see the status in INTSTAT change for your particular bit as a first step.