Persistence of Vision (POV) made easy.
Dependencies: m3pi mbed-rtos mbed
m3pi_pov.cpp
- Committer:
- Samson Danziger
- Date:
- 2016-05-27
- Revision:
- 1:38b399821b54
File content as of revision 1:38b399821b54:
#include "m3pi_pov.h" #include "alphabet.h" #define SPIN_SPEED 1.0 #define PIXEL_TIME 0.002 BusOut _leds; m3pi m3pi; int pov_display = 1; // flag for pov display while loop pov::pov(PinName l1, PinName l2, PinName l3, PinName l4, PinName l5, PinName l6, PinName l7, PinName l8) { _leds(l8, l7, l6, l5, l4, l3, l2, l1); } pov:::pov() { _leds(p20, p19, p18, p17, p16, p15, p14, p13); } void pov::init(void) { m3pi.right(SPIN_SPEED); } void pov::init(int spin) { if (spin < 0) { m3pi.left(); } else { m3pi.right(); } } void pov::stop(void) { pov_display = 0; m3pi.stop(); } void pov::display(char* text) { pov_display = 1; while (pov_display) { for (char* it = text; *it; ++it) { char[] arr = _get_char_arr(it); for (int i = 0; i < 6; i++) { char a = arr[i]; _leds = (int) a; wait(PIXEL_TIME); } } } } char[] pov::_get_char_arr(char c) { int arr_loc = c - 32; return font[arr_loc]; }