nRF Timer Interrupt Bug

13 Dec 2014

Hello folks,

I've got a program that uses two pin interrupts (falling edge) for data input and a timeout timer to signal the program when data input is complete.

The program is really simple, one line is data 0 and one line is data 1. Whenever there is a falling edge on one of the pins it's either a 0 or 1, and when 3ms is up the data transmission has stopped and then I need to process the data.

My code works on TWO other platforms (FRDM K64F and LPC Xpresso 1549) but for some reason the Timeout never triggers on the nRF. I know that the pin interrupts are working fine because I've put debug serial print statements in there to check and sure enough they are working fine.

I'm a bit of a noob, and don't really know where to start debugging this issue, otherwise I'd try to figure out the issue myself. So I was hoping that someone could take a look at this code:

Import programWiegand_Test

This code works on FRDM but not on nRF boards.

There is even a function in this code to simulate the signal I'm trying to process. Wiegand is very simple, typically about 26 bits with a max of 2ms between bits (hence the 3ms timeout). If you require any clarification please let me know, or if you have any tips for me to go bug hunting I'm all ears.

Thanks, Mark

10 Jan 2015

Ok, out of curiosity I also added a ticker to my program because I wanted to see if it worked.

The ticker has a 1sec timeout, and works fine. In fact, the Timeout starts to work when I have the ticker in the program! It seems to be delayed however, and fires when the ticker does instead of 3ms like it should.

Very strange. This has to be a bug...

Edit: I'm kinda surprised that this bug has been ignored for so long. Not sure why a dev hasn't taken a look.