Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/mman.h>
- #include "sense_led.h"
- #define FILESIZE (64 * sizeof(uint16_t))
- uint16_t createRGB(int r, int g, int b) {
- int red = r >> 3;
- int green = g >> 2;
- int blue = b >> 3;
- return (red << 11) | (green << 5) | blue;
- }
- void display_ledgrid(SPGM_RGBTRIPLE* ledgrid) {
- uint16_t framebufferdevice;
- uint16_t *map;
- uint16_t *p;
- framebufferdevice = open("/dev/fb1", O_RDWR);
- map = mmap(NULL, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, framebufferdevice, 0);
- p = map;
- memset(map, 0, FILESIZE);
- uint16_t i;
- for (i = 0; i < 64; i++) {
- uint16_t red = ledgrid->rgbRed;
- uint16_t green = ledgrid->rgbGreen;
- uint16_t blue = ledgrid->rgbBlue;
- printf("index: %d, rood: %d, groen: %d, blauw:%d\n",i,red,green,blue);
- *(p + i) = createRGB(red,green,blue);
- usleep(20000);
- ledgrid++;
- }
- scanf("press enter");
- for (i = 0; i < 64; i++) {
- *(p + i) = createRGB(0,0,0);
- }
- }
- int main(void) {
- SPGM_RGBTRIPLE leds[64];
- int j;
- for (j=0;j<64;j++) {
- SPGM_RGBTRIPLE led;
- leds[j] = led;
- leds[j].rgbRed = 0;
- leds[j].rgbBlue = 0;
- leds[j].rgbGreen = 255;
- }
- display_ledgrid(leds);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement