>>>>> "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

Attachment: 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

Reply via email to