>>>>> "Werner" == Werner Almesberger <[email protected]> writes:
> Ron K. Jeffries wrote: >> Is all your code in C, or did you use some assembly language? Or >> maybe this is all assembler? > It's all in C: > http://projects.qi-hardware.com/index.php/p/ben-blinkenlights/source/tree/master/ubb-vga/ubb-vga.c > I cheated a little, though, and looked at the assembler to make sure > the compiler didn't squander too many precious cycles. Hi Werner, just looking over your code. Nice trick, disabling interrupts from userspace (wouldn't have thought that's possible). > Last but not least, it may also be possible to make "single" mode > choose between set and clear, which would provide pixel-accurate > changes but at a (probably slight) timing cost and at the cost of > having to resolve conflicting changes, e.g., if one channel wants to > be turned off while another wants to be turned on, only one can get > its will. Just wondering: why do you have to use pddatc/pddats pairs? I'd imagine that you could read pddat once per line, then update the 6 gpios for every pixel via masking operations (maybe then store the pre-computed values of pddat that line), and output them twice, for the double-scanned line. Won't this possibly double pixel resolution? Side-effect would be that other pins on Port D couldn't be reliably updated by the kernel, but how important is that (when you already disabled interrupts anyway :) cheers, David -- GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40
pgp2Cq6h6xyTF.pgp
Description: PGP signature
_______________________________________________ Qi Hardware Discussion List Mail to list (members only): [email protected] Subscribe or Unsubscribe: http://lists.en.qi-hardware.com/mailman/listinfo/discussion

