ubb-vga "double" mode

David Kuehling dvdkhlng at gmx.de
Mon Apr 25 03:10:32 EDT 2011


>>>>> "Werner" == Werner Almesberger <werner at almesberger.net> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.en.qi-hardware.com/pipermail/discussion/attachments/20110425/53dfb879/attachment.pgp>


More information about the discussion mailing list


interactive