palettes.ino 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <SPI.h>
  2. #include <GD.h>
  3. void spr(int x, int y, byte pal)
  4. {
  5. static int sprnum = 0;
  6. GD.sprite(sprnum++, x, y, 0, pal, 0);
  7. }
  8. static unsigned int random_color()
  9. {
  10. return RGB(64 + random(192), 64 + random(192), 64 + random(192));
  11. }
  12. void setup()
  13. {
  14. int i;
  15. GD.begin();
  16. GD.ascii();
  17. GD.putstr(0, 0,"Sprite palettes");
  18. for (i = 0; i < 256; i++)
  19. GD.wr(RAM_SPRIMG + i, i);
  20. // Fill all the palettes with random colors
  21. for (i = 0; i < (4 * 256); i++)
  22. GD.wr16(RAM_SPRPAL + (i << 1), random_color());
  23. for (i = 0; i < 16; i++) {
  24. GD.wr16(PALETTE16A + (i << 1), random_color());
  25. GD.wr16(PALETTE16B + (i << 1), random_color());
  26. }
  27. for (i = 0; i < 4; i++) {
  28. GD.wr16(PALETTE4A + (i << 1), random_color());
  29. GD.wr16(PALETTE4B + (i << 1), random_color());
  30. }
  31. GD.putstr(0, 8, "Four 256-color palettes");
  32. for (i = 0; i < 4; i++)
  33. spr(200 + 20 * i, (8 * 8), i);
  34. GD.putstr(0, 12, "Two 16-color palettes");
  35. for (i = 0; i < 2; i++) {
  36. spr(200 + 20 * i, (8 * 12), 0x4 | i);
  37. spr(200 + 20 * i, (8 * 12) + 20, 0x6 | i);
  38. }
  39. GD.putstr(0, 18, "Two 4-color palettes");
  40. for (i = 0; i < 2; i++) {
  41. spr(200 + 20 * i, (8 * 18), 0x8 | i);
  42. spr(200 + 20 * i, (8 * 18) + 20, 0xa | i);
  43. spr(200 + 20 * i, (8 * 18) + 40, 0xc | i);
  44. spr(200 + 20 * i, (8 * 18) + 60, 0xe | i);
  45. }
  46. }
  47. void loop()
  48. {
  49. }