Ein Roboter mit bürstenlosem Antrieb, differenzial und NRF24L01 Funk. Großflächig gebaut um ein großes Solarpanel aufzunehmen. https://gitlab.informatik.hs-fulda.de/fdai5253/roboter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
2.6 KiB

  1. #include <SPI.h>
  2. #include "PCD8544_SPI.h"
  3. #define USE_FRAME_BUFFER
  4. #ifdef USE_FRAME_BUFFER
  5. PCD8544_SPI_FB lcd;
  6. #else
  7. PCD8544_SPI lcd;
  8. #endif
  9. void setup(void)
  10. {
  11. Serial.begin(9600);
  12. lcd.begin();
  13. lcd.print(F("Preparing benchmark"));
  14. #ifdef USE_FRAME_BUFFER
  15. lcd.renderAll();
  16. #endif
  17. delay(1000);
  18. }
  19. uint8_t bmp[] = {
  20. 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
  21. 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
  22. 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
  23. };
  24. void loop(void)
  25. {
  26. size_t len;
  27. lcd.clear();
  28. unsigned long time = micros();
  29. len = lcd.print(F("012345678901234567890123456789012345678901234567890123456789012345678901234567890123"));
  30. #ifdef USE_FRAME_BUFFER
  31. lcd.renderString(0, 0, len);
  32. #endif
  33. time = micros() - time;
  34. delay(3000);
  35. lcd.clear();
  36. lcd.print(F("The time it took to print 84 chars is: "));
  37. lcd.print(time);
  38. #ifdef USE_FRAME_BUFFER
  39. lcd.renderAll();
  40. #endif
  41. delay(3000);
  42. lcd.clear();
  43. lcd.gotoXY(5,3);
  44. lcd.print(F("Test gotoXY"));
  45. #ifdef USE_FRAME_BUFFER
  46. lcd.renderAll();
  47. #endif
  48. delay(3000);
  49. lcd.clear();
  50. time = micros();
  51. lcd.writeBitmap(bmp, 10, 2, 25, 3);
  52. #ifdef USE_FRAME_BUFFER
  53. lcd.renderAll();
  54. #endif
  55. time = micros() - time;
  56. delay(3000);
  57. lcd.clear();
  58. lcd.print(F("The time it took to draw a 25x3 (25x18) bitmap is: "));
  59. lcd.print(time);
  60. #ifdef USE_FRAME_BUFFER
  61. lcd.renderAll();
  62. #endif
  63. delay(3000);
  64. #ifdef USE_FRAME_BUFFER
  65. lcd.clear();
  66. time = micros();
  67. lcd.writeRect(5, 5, 50, 40);
  68. lcd.writeLine(75, 3, 75, 35);
  69. lcd.writeLine(60, 10, 60, 40);
  70. lcd.writeLine(10, 47, 60, 47);
  71. lcd.renderAll();
  72. time = micros() - time;
  73. delay(3000);
  74. lcd.clear();
  75. len = lcd.print(F("The time it took draw a rect and 3 lines: "));
  76. len += lcd.print(time);
  77. lcd.renderString(0, 0, len);
  78. delay(3000);
  79. lcd.clear();
  80. time = micros();
  81. for (uint8_t row = 0; row < PCD8544_Y_PIXELS; row++)
  82. {
  83. for (uint8_t col = 0; col < PCD8544_X_PIXELS; col++)
  84. {
  85. uint8_t pixel = (col + row) % 2;
  86. lcd.setPixel(col, row, pixel);
  87. }
  88. }
  89. lcd.renderAll();
  90. time = micros() - time;
  91. delay(5000);
  92. lcd.clear();
  93. lcd.print(F("The time it took to run setPixel on all 4032 pixels and render it: "));
  94. lcd.print(time);
  95. lcd.renderAll();
  96. delay(5000);
  97. #endif
  98. }