Commit Graph

  • 87bc3d6d8e Rebuild for use as library with PlatformIO master Michel 2023-11-03 18:47:32 +01:00
  • 87417ee974 Grayscale fading and brightness changes. jprodgers 2015-05-29 16:16:29 +02:00
  • 04f8c1ad87 Added PCB files jprodgers 2015-05-28 19:33:27 +02:00
  • 061225f87a Demo Mode Added jprodgers 2015-05-28 18:27:22 +02:00
  • fa3573bc7d Revert "Demo Mode Added" jprodgers 2015-05-28 18:17:16 +02:00
  • 355805478f Demo Mode Added jprodgers 2015-05-28 18:15:58 +02:00
  • 082e478a74 Lots of fixes. jprodgers 2015-05-28 18:09:48 +02:00
  • e5141bfbea Migration and reorganization post google code. jprodgers 2015-05-28 14:45:21 +02:00
  • b069f9a130 Migrating wiki contents from Google Code wiki Google Code Exporter 2015-05-28 07:29:25 -04:00
  • 1a36288d00 Minor cleanup. root 2013-09-06 09:00:36 +00:00
  • 2d33a35a6c On the 328, et al, use additional scaler steps to get more precision in the frame rate. root 2013-09-01 07:41:07 +00:00
  • 1cd202c3ff Allow a frame rate to be set with a #define. Most of the timing goo is determined at compile time, so no extra code is added. Previously the frame rate was totally erratic across CPU speeds. root 2013-09-01 06:27:55 +00:00
  • ac1214d0c4 Finally found a solution to make the display 100% glitch free. Works on all platforms, though code bloat is least on the 328/168. root 2013-08-31 15:31:44 +00:00
  • 6e376721ce Atomic access to the PORT registers on Mega and Leonardo. root 2013-08-31 14:43:42 +00:00
  • 23990a42e3 Use fixed point arithmetic in SetBrightness(). Saves nearly 1K of code if the application doesn't use floating point. root 2013-08-31 01:29:10 +00:00
  • 59256a6115 Remove outdated comment about the lowercase section being incorrect. root 2013-08-31 00:18:59 +00:00
  • 9cd0d31d11 Refine the characters: CEFGNQRSWaksw Add the characters: yz TODO: These could use more work: egs root 2013-08-31 00:18:03 +00:00
  • 0e1084373b Simple hack that saves another 230 bytes. root 2013-08-30 22:55:29 +00:00
  • 2688dd8738 Make sure all PROGMEM data is const. root 2013-08-30 22:46:36 +00:00
  • e208b08fe0 Fix rotation of the long bar. Use the Sega scoring algorithm. TODO: Currently there is no way to drop a piece. root 2013-08-30 12:18:59 +00:00
  • 300f9daa9c Size redux. root 2013-08-30 10:11:01 +00:00
  • c69ec1c17c Make the pieces rotate the same as the original game. Also make them start at the top of the screen. root 2013-08-30 10:09:43 +00:00
  • 246d97edab Size redux, and fix a few bugs in Scroll90(). root 2013-08-30 08:49:06 +00:00
  • 26638bb958 Compress the figure data and move it to PROGMEM. root 2013-08-30 07:59:49 +00:00
  • 594ac11810 Remove all the dynamic allocation. Randomize the starting orientation of the piece. root 2013-08-30 07:43:00 +00:00
  • 0ca4b0790e Size redux. root 2013-08-30 07:08:48 +00:00
  • d69584a697 Use const. root 2013-08-30 06:33:44 +00:00
  • e60385b6c6 Move the font table into PROGMEM. Compress the column and row into a single byte. Fix up some of the problems with the lowercase characters, though they're not enabled by default. root 2013-08-30 05:58:15 +00:00
  • 70485a5154 Eliminate a display glitch. root 2013-08-30 05:57:52 +00:00
  • d3c0154dcd Don't call randomSeed() on every reseed; this was confining us to only 256 sequences ever displayed. root 2013-08-30 03:28:03 +00:00
  • e9673ef446 If nothing has changed for a few cycles, reseed. root 2013-08-30 03:19:45 +00:00
  • 9bf17aebf5 Reduce another int to uint8_t. root 2013-08-30 03:00:37 +00:00
  • a570bd9546 The video buffer is already pre-cleared by virtue of being in the BSS, so don't bother to do it in Init(). It's harmless to allow a Flip() in single-buffer mode. Saves another 62 bytes of code. root 2013-08-30 02:31:32 +00:00
  • 1d80dc2d45 Fix off by one error. root 2013-08-30 02:10:49 +00:00
  • 7f6902380c Minor cleanup, including: * If DOUBLE_BUFFER is commented out, don't bother to use extra pointer for the display buffer. * There's no need to wait for a buffer flip when starting up. It's fine to display the first (blank) frame indefinitely. * Don't bother using delay() while waiting for flips. All it does is bloat the code. root 2013-08-30 02:06:28 +00:00
  • 7ee75f9a7c Since the prescalers are determined at compile time, make them const variables. root 2013-08-30 01:27:59 +00:00
  • 6dd8c97bb1 A few more consts reduces code size further. root 2013-08-30 01:02:20 +00:00
  • 5c69e1d924 Whoops, the font code uses negative coordinates to draw characters partially off the screen. root 2013-08-30 00:53:38 +00:00
  • e4f49abb82 Reduce some type sizes, use DISPLAY_ROWS/DISPLAY_COLS more uniformly. root 2013-08-30 00:38:09 +00:00
  • e088707272 Slight performance improvement, more noticeable at 8MHz. root 2013-08-29 04:02:34 +00:00
  • 4c7776655a Replace some of the math in SetBrightness() with a simpler, but exactly equivalent, formula. Interestingly, this doesn't change the compiled code size--perhaps the compiler is smarter than I thought. At least it's easier to understand now. root 2013-08-27 04:24:51 +00:00
  • b323909c49 For SHADES==2 or 8, use precomputed exponents. Saves 716 bytes of code for SHADES==8; the compiler already optimized to ~the same code for SHADES==2, so there is no change there. root 2013-08-27 03:43:29 +00:00
  • 72c03d0a77 Fix another integer overflow on 328 chips. Still needs work on others. root 2013-08-27 03:00:21 +00:00
  • 6ccc8712cd Leonardo support from Wharn Cliff. root 2013-08-26 17:50:02 +00:00
  • 32cda6dc2c Minor cleanup: reindent, use _BV(). root 2013-08-26 17:44:24 +00:00
  • 75d3cae798 Purge prog_uchar, for compatibility with GCC 4.7. root 2013-08-26 17:32:52 +00:00
  • 655c9934f8 Strobe the array in 12 cycles rather than 24, doubling the strobe rate. This has the nice side effect of greatly simplifying the ISR code (especially for the Mega). root 2013-08-24 03:33:40 +00:00
  • c0b3b2c663 Clean up the previous a bit. root 2013-08-21 18:10:29 +00:00
  • 8cd7f6f0d0 Modified the algorithm so it can scroll text continuously with no funky end condition. root 2013-08-21 18:03:32 +00:00
  • c03aa14156 The display wasn't properly updated during a reseed, sometimes leaving weird glitches like a single apparently alive cell. root 2013-08-21 07:14:52 +00:00
  • 0d7daf3b9c Experimental: Allow commenting out DOUBLE_BUFFER and/or GRAYSCALE to remove the relevant code. In particular, turning off both reduces the video buffer RAM from 336 bytes to 24. root 2013-08-20 18:28:46 +00:00
  • 2853bbb288 Also fix the last row for Draw90(). root 2013-08-20 17:59:43 +00:00
  • 134730bfd4 Move ledMap[] into PROGMEM, saving precious RAM. root 2013-08-20 17:44:47 +00:00
  • b2b335ce0e Undef MEASURE_ISR_TIME. root 2013-08-20 07:36:25 +00:00
  • 5067125687 Change the grayscale curve to something that seems subjectively better. root 2013-08-20 06:54:34 +00:00
  • 99638f81c5 Remove unneeded Serial.Begin(). root 2013-08-20 06:43:24 +00:00
  • 796e2e6b15 Fix drawing in the last row (per issue 28). root 2013-08-20 06:19:14 +00:00
  • 8ba1f20048 More cleanup to LedSign::SetBrightness(). Reduces code size another 82 bytes. root 2013-08-20 06:03:03 +00:00
  • c4198ad518 Make these run in double buffer mode. root 2013-08-20 05:56:27 +00:00
  • 1cd3d973ba Rename these so that the Arduino IDE shows them in the examples. root 2013-08-20 05:49:47 +00:00
  • ef824cdf00 Make this actually compile again. root 2013-08-20 05:48:18 +00:00
  • 7f827f214e Patch from issue 34 (updated from issue 16). root 2013-08-20 05:41:32 +00:00
  • c96d9da167 Patch from issue #33. root 2013-08-20 05:38:46 +00:00
  • c36882dfa2 Patch from Issue #32. root 2013-08-20 05:35:53 +00:00
  • 7d9cd5726b Added two grayscale examples: DoubleHelix and Plasma. zkarcher 2012-08-14 21:03:19 +00:00
  • d69e8f9227 Move LoLShield remote control tool into lolcomm sketch dir thilo.alexander 2012-01-15 05:30:26 +00:00
  • 9ef886788e Introducing LoLcomm - set LEDs via the serial port. thilo.alexander 2012-01-13 19:33:53 +00:00
  • e9dea8b2b7 Removed unnecessary serial initialisation. thilo.alexander 2012-01-13 17:54:37 +00:00
  • db05a29ac7 Grayscale enhancements, PLEASE REVIEW; see issue #20. thilo.alexander 2012-01-07 22:37:32 +00:00
  • af145d3e13 Add grayscale test to LoLShield_BasicTest; implements issue #19 thilo.alexander 2012-01-07 07:43:41 +00:00
  • fadb4edd52 Fix memory corruption in LedSign::Init; issue #18 thilo.alexander 2012-01-07 07:33:26 +00:00
  • fee46dddaf Make the source compile with Arduino 1.0; fix issue #17 thilo.alexander 2012-01-07 07:24:41 +00:00
  • 358f3c89c8 Add preliminary grayscale support to the library. There are still some issues: - Backwards compatibility mode for b&w should take fewer cycles - Brightness doesn't get dark enough (minimum timer length issues) - Only Atmega328 is probably going to work (timing not determined by clock speed) matt.mets 2010-08-21 17:56:59 +00:00
  • 22086d9ba3 Add gif converter, sample art matt.mets 2010-08-19 03:43:54 +00:00
  • b24ace7799 Add font generator utility, and a few sample fonts. This allows one to draw a font in a graphics program, and turn it into program code automatically. Note that fonts can currently only be 8 pixels high. matt.mets 2010-07-21 08:56:59 +00:00
  • cdf10abb87 Bugfix: Set() couldn't turn off pixels. Remove stray comment matt.mets 2010-07-21 06:45:07 +00:00
  • bddd7c885d Bugfix: fix syntax error, remove debug signal on analog pin 5 matt.mets 2010-07-21 05:29:52 +00:00
  • a8c74859a0 Halve prescaler values for atmega48/88/168/328, to get better timing resolution matt.mets 2010-07-21 05:18:42 +00:00
  • 4e64faf719 Fix issue 1: Fewer LEDs lit at a time matt.mets 2010-07-21 04:57:21 +00:00
  • e07ce62ddf Add brightness control, to vary the intensity of the entire display. matt.mets 2010-07-21 02:07:26 +00:00
  • 8a3adf743c Bugfix: Forgot to rename pong2 during last update matt.mets 2010-07-20 03:49:27 +00:00
  • b1fcdfc4c3 Rename all of the example files to standardize matt.mets 2010-07-20 02:35:16 +00:00
  • 301b2949af Add Matt Mets to the authors list matt.mets 2010-07-19 23:27:09 +00:00
  • 9ff1983bf2 Move example programs into lib/examples, to make packaging easier. matt.mets 2010-07-19 23:24:14 +00:00
  • d9f0159843 Move fonts to progmem, to lower ram usage. (Issue 8) Fix mis-handling of last row (Issue 9) matt.mets 2010-07-19 06:45:40 +00:00
  • c5ecf11730 Add Font and Figure keywords matt.mets 2010-05-28 07:21:20 +00:00
  • ed2293c62e Enumerate the keywords from the Charliplexing library, so that the Arduino IDE can highlight them. matt.mets 2010-05-28 07:18:58 +00:00
  • 3083aa20d1 Update pong2 game to use the double-buffering features of the Charliplexing library matt.mets 2010-05-28 06:59:45 +00:00
  • 4d1c6797fb Add double-buffer support to the Charliplexing library matt.mets 2010-05-28 06:58:47 +00:00
  • 455a684335 Adding initial code source BenjaminSonntag 2010-01-07 16:19:43 +00:00