示例#1
0
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 */
}
示例#2
0
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);
  }
}
示例#3
0
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 */
  }
}
示例#4
0
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;
}
示例#5
0
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);
}
示例#6
0
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 */
}
示例#7
0
static void InitTransmitBuf(void) {
  NEO_ClearAllPixel();
}
示例#8
0
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();
  }
}
示例#9
0
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);
    }
  }
}