From: Sebastian K. <se...@hi...> - 2008-08-13 20:17:37
|
John Kasunich wrote: > Kenneth Lerman wrote: >> Why not do the GPIO from the fast thread, but not do all of it every >> time through the thread? If there are 16 GPIOs, do a different one each >> time through the thread. (I seem to remember some stuff on the Lunar >> Module doing things like this.) >> >> In effect, you would be creating a new type of slow thread that was >> synchronized with the fast thread. > > This whole thing started because of a desire to be able to send fast > signals (step pulses or encoder signals) through those GPIO pins. If > each individual pin is only updated every 16th time through the fast > thread, that isn't much different than accessing all of them in the slow > thread. Kenneth's suggestion is like Jon Elson's suggestion. With HostMot2 the minimum number of GPIOs that make sense to read at one time is 24. The Anything I/O boards have 24 I/O pins on each I/O connector, and each connector is accessed through one 32-bit register (with 8 unused bits at the top). Reading GPIOs starts with two address cycles, followed by some integer multiple of 4 data cycles (4 data cycles per group of 24 gpios). Making more smaller reads means doing more address cycles, slowing things down. And EPP is already so painfully slow, i think this doesnt work well. -- Sebastian Kuzminsky Cryogenic travel has improved since then... I woke screaming in a translucent box. “There, there,” said the box. “Everything will be all right. Have some coffee.” -- Ken Macleod, "Who's afraid of Wolf 359" <http://outofthiseos.typepad.com/blog/files/KenMacleodWhosAfraidofWolf359.htm> |