static portTASK_FUNCTION(AppTask, pvParameters) { (void)pvParameters; /* not used */ RTC1_TTIME time; RTC1_TDATE date; if (RTC1_GetRTCTimeDate(&time, &date)==ERR_OK) { TmDt1_SetDate((uint16_t)date.year+2000, date.month, date.day); TmDt1_SetTime(time.hour, time.min, time.sec, 0); } else { for(;;) {} /* error */ } (void)NEO_ClearAllPixel(); (void)NEO_TransferPixels(); #if HAS_CLOCK (void)NEOL_PixelTrail(0x00, 0x00, 0xFF, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 8, 25, 20); (void)NEOL_PixelTrail(0x00, 0xff, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 16, 25, 15); (void)NEOL_PixelTrail(0x00, 0x50, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 16, 25, 10); CLOCK_Init(); #endif for(;;) { #if HAS_ELEVATOR Elevator(); FRTOS1_vTaskDelay(1000/portTICK_RATE_MS); #else CLOCK_Update(); FRTOS1_vTaskDelay(50/portTICK_RATE_MS); #endif } /* for */ }
static void Elevator(void) { NEO_PixelIdxT i; (void)NEO_ClearAllPixel(); (void)NEO_TransferPixels(); for(i=NEO_PIXEL_FIRST; i<=NEO_PIXEL_LAST; i++) { NEO_SetPixelRGB(i, 0xff/2, 0xff/2, 0xff/2); (void)NEO_TransferPixels(); FRTOS1_vTaskDelay(20/portTICK_RATE_MS); } }
static void InitTransmitBuf(void) { uint32_t i; for(i=0;i<NEO_NOF_PRE;i++) { transmitBuf[i] = 0; /* pre sequence */ } NEO_ClearAllPixel(); for(i=NEO_NOF_PRE+(NEO_NOF_PIXEL*NEO_NOF_BITS_PIXEL);i<sizeof(transmitBuf)/sizeof(transmitBuf[0]);i++) { transmitBuf[i] = 0; /* post sequence */ } }
uint8_t NEO_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) { uint8_t res = ERR_OK; uint32_t color; int32_t tmp, x, y; const uint8_t *p; if (UTIL1_strcmp((char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((char*)cmd, "neo help")==0) { CLS1_SendHelpStr((unsigned char*)"neo", (const unsigned char*)"Group of neo commands\r\n", io->stdOut); CLS1_SendHelpStr((unsigned char*)" help|status", (const unsigned char*)"Print help or status information\r\n", io->stdOut); CLS1_SendHelpStr((unsigned char*)" clear all", (const unsigned char*)"Clear all pixels\r\n", io->stdOut); CLS1_SendHelpStr((unsigned char*)" set all <rgb>", (const unsigned char*)"Set all pixel with RGB value\r\n", io->stdOut); CLS1_SendHelpStr((unsigned char*)" set <x> <y> <rgb>", (const unsigned char*)"Set pixel with RGB value\r\n", io->stdOut); *handled = TRUE; return ERR_OK; } else if ((UTIL1_strcmp((char*)cmd, CLS1_CMD_STATUS)==0) || (UTIL1_strcmp((char*)cmd, "neo status")==0)) { *handled = TRUE; return PrintStatus(io); } else if (UTIL1_strcmp((char*)cmd, "neo clear all")==0) { NEO_ClearAllPixel(); NEO_TransferPixels(); *handled = TRUE; return ERR_OK; } else if (UTIL1_strncmp((char*)cmd, "neo set all", sizeof("neo set all")-1)==0) { p = cmd+sizeof("neo set all")-1; res = UTIL1_xatoi(&p, &tmp); /* read color RGB value */ if (res==ERR_OK && tmp>=0 && tmp<=0xffffff) { /* within RGB value */ color = tmp; NEO_SetAllPixelColor(color); NEO_TransferPixels(); *handled = TRUE; } } else if (UTIL1_strncmp((char*)cmd, "neo set", sizeof("neo set")-1)==0) { p = cmd+sizeof("neo set")-1; res = UTIL1_xatoi(&p, &x); /* read x pixel index */ if (res==ERR_OK && x>=0 && x<NEO_NOF_X) { res = UTIL1_xatoi(&p, &y); /* read y pixel index */ if (res==ERR_OK && y>=0 && y<NEO_NOF_Y) { res = UTIL1_xatoi(&p, &tmp); /* read color RGB value */ if (res==ERR_OK && tmp>=0 && tmp<=0xffffff) { color = tmp; NEO_SetPixelColor((NEO_PixelIdxT)x, (NEO_PixelIdxT)y, color); NEO_TransferPixels(); *handled = TRUE; } } } } return res; }
static void PONG_InitGame(void) { int i; NEO_ClearAllPixel(); /* background */ for(i=0;i<PONG_NOF_PIXELS;i++) { NEO_SetPixelColor(i, PONG_DEFAULT_BACKGROUND_RGB); } NEO_TransferPixels(); for(i=0;i<PONG_NOF_BALLS;i++) { PONG_InitBall(&PONG_Balls[i]); } POING_InitLimiter(&PONG_LeftLimiter); POING_InitLimiter(&PONG_RightLimiter); }
static portTASK_FUNCTION(AppTask, pvParameters) { (void)pvParameters; /* not used */ RTC1_TTIME time; RTC1_TDATE date; if (RTC1_GetRTCTimeDate(&time, &date)==ERR_OK) { TmDt1_SetDate((uint16_t)date.year+2000, date.month, date.day); TmDt1_SetTime(time.hour, time.min, time.sec, 0); } else { for(;;) {} /* error */ } (void)NEO_ClearAllPixel(); (void)NEO_TransferPixels(); CLOCK_Init(); for(;;) { CLOCK_Update(); FRTOS1_vTaskDelay(50/portTICK_RATE_MS); } /* for */ }
static void InitTransmitBuf(void) { NEO_ClearAllPixel(); }
static portTASK_FUNCTION(NeoTask, pvParameters) { int i; #define DIMM 0x50 (void)pvParameters; /* parameter not used */ #if 0 NEO_ClearAllPixel(); for(i=0;i<10;i++) { NEO_SetPixelRGB(0, 0xff, 0x00, 0x00); NEO_TransferPixels(); FRTOS1_vTaskDelay(100/portTICK_RATE_MS); } #endif #if 0 NEO_SetPixelRGB(0, 0xff, 0x00, 0x00); NEO_SetPixelRGB(1, 0x00, 0xFF, 0x00); NEO_SetPixelRGB(2, 0x00, 0x00, 0xff); NEO_SetPixelRGB(3, 0x40, 0x50, 0x80); NEO_SetPixelRGB(4, 0x60, 0x00, 0xA0); NEO_SetPixelRGB(5, 0x40, 0x20, 0x80); NEO_SetPixelRGB(6, 0x20, 0x40, 0xFF); NEO_SetPixelRGB(7, 0xff, 0x60, 0x30); NEO_TransferPixels(); for(i=0;i<7;i++) { NEO_DimmPercentPixel(i,50); } NEO_TransferPixels(); #endif for(;;) { #if 0 for(i=0;i<=NEO_PIXEL_LAST;i++) { NEO_SetPixelRGB(i, 0xff, 0x00, 0x00); if (i>0) { NEO_SetPixelRGB(i-1, 0x00, 0x00, 0x00); } else if (i==0) { NEO_SetPixelRGB(NEO_PIXEL_LAST, 0x00, 0x00, 0x00); } NEO_TransferPixels(); FRTOS1_vTaskDelay(50/portTICK_RATE_MS); } #endif #if 0 NEOL_PixelTrail(0xff, 0x00, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, TRUE, FALSE, FALSE); NEOL_PixelTrail(0xff, 0xff, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, FALSE, TRUE, FALSE); NEOL_PixelTrail(0x00, 0xff, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, FALSE, FALSE, TRUE); NEOL_PixelTrail(0x00, 0xff, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, FALSE, TRUE, TRUE); NEO_ClearAllPixel(); NEOL_PixelTrail(0x00, 0x00, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, TRUE, FALSE, TRUE); NEO_ClearAllPixel(); NEOL_PixelTrail(0xff, 0x00, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10); DimmColor(NEO_PIXEL_FIRST, NEO_PIXEL_LAST, TRUE, TRUE, TRUE); #endif LED1_Neg(); FRTOS1_vTaskDelay(1000/portTICK_RATE_MS); //NEO_TransferPixels(); } }
void APP_Run(void) { int i; uint8_t red, green, blue; uint8_t dimmPercent = 50; NEO_Init(); for(;;) { GPIO_DRV_TogglePinOutput(LEDRGB_BLUE); if (start) { NEO_ClearAllPixel(); NEO_TransferPixels(); for(i=0;i<NEO_NOF_PIXEL;i++) { red = 0x10+(i*0x10); if (red==0) { red = 0x10; } green = 0x20+(i*0x20); if (green==0) { green = 0x10; } blue = 0x30+(i*0x30); if (blue==0) { blue = 0x10; } NEO_SetPixelRGB(i, red, green, blue); NEO_TransferPixels(); OSA_TimeDelay(50); } NEO_ClearAllPixel(); NEO_TransferPixels(); for(i=0;i<=7;i++) { NEO_SetPixelRGB(i, 0x00, 0x00, (i+1)*10); NEO_DimmPercentPixel(i, i*10); } for(i=8;i<=15;i++) { NEO_SetPixelRGB(i, 0x00, i-7*10, 0x00); NEO_DimmPercentPixel(i, (i-8)*10); } for(i=16;i<=23;i++) { NEO_SetPixelRGB(i, i-15*10, 0x00, 0x00); NEO_DimmPercentPixel(i, (i-16)*10); } for(i=24;i<=31;i++) { NEO_SetPixelRGB(i, 0x00, 0x00, (i-23)*10); NEO_DimmPercentPixel(i, (i-23)*10); } for(i=32;i<=39;i++) { NEO_SetPixelRGB(i, 0x00, i-31*10, 0x00); NEO_DimmPercentPixel(i, (i-31)*10); } for(i=40;i<=47;i++) { NEO_SetPixelRGB(i, i-40*10, 0, 0x00); NEO_DimmPercentPixel(i, (i-39)*10); } for(i=48;i<=55;i++) { NEO_SetPixelRGB(i, 0, 0, i-47*10); NEO_DimmPercentPixel(i, (i-47)*10); } for(i=56;i<=63;i++) { NEO_SetPixelRGB(i, 0, 0, i-55*10); NEO_DimmPercentPixel(i, (i-55)*10); } NEO_TransferPixels(); for(i=0;i<NEO_NOF_PIXEL;i++) { green = 0x5+(i*0x10); if (red==0) { red = 0x5; } blue = 0x5+(i*0x15); if (green==0) { green = 0x5; } red = 0x5+(i*0x20); if (blue==0) { blue = 0x5; } NEO_SetPixelRGB(i, red, green, blue); NEO_DimmPercentPixel(i, dimmPercent); } NEO_TransferPixels(); NEOL_PixelTrail(0xff, 0x00, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); NEOL_PixelTrail(0xff, 0xff, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); NEOL_PixelTrail(0x00, 0xff, 0x00, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); NEOL_PixelTrail(0x00, 0xff, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); NEO_ClearAllPixel(); NEOL_PixelTrail(0x00, 0x00, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); NEO_ClearAllPixel(); NEOL_PixelTrail(0xff, 0x00, 0xff, NEO_PIXEL_FIRST, NEO_PIXEL_LAST, 12, 50, 10*2); } } }