On 2012-01-22, David Woolley <david@ex.djwhome.demon.invalid> wrote: > unruh wrote: > >> I suppose I could turn of the interrupts on the card for 500ms then turn >> them on again to catch the next PPS, but that is a real kludge. > > In the 1970s, level triggering was the norm. > > The response to ACK is supposed to be to load another outgoing byte or > to turn off interrupts on the card. Using it for an open loop PPS > signal is abusing it in a way that only works with edge triggered > interrupts.
well, not necessarily. The interrupt controller on the card could be such that the interrupt line from the card to the computer is switched on when the level becomes high, and stays on as long as the level is high and the the card has not had its "interrupt serviced" flag set. When the line goes low, the interrupt serviced flag is also reset , so that at the next level switch it interrupts again. That is how shareable interrupts are supposed to work. A shareable interupt should not keep interrupting. Now maybe there is such a flag on that chipset, and I just have not understood the documentation well enough. By the way, why should the response be to turn off interrupts on the card? That would mean that you could never again have an interrupt unless you turned them on again, and if you turned them on before the ack went low, you would then again get an immediate interrupt. It really sounds to me that the card is defective (or that I do not understand it, which is at least as possible). Does anyone know how the kernel PPS works? Does it only work with the old edge triggered "single card per interrupt" type parallel cards, or does it work with the modern level triggered interrupts. The pps_parport modules does not seem to have any "card" instructions in it, so it must go through the parport driver, but again that seems to deal only withe the edge triggered cards. _______________________________________________ questions mailing list questions@lists.ntp.org http://lists.ntp.org/listinfo/questions