目录
- 一、main函数
- 二、点灯函数
一、main函数
int main(void)
{
/* Write your local variable definition here */
iseledInitType.crcEnable = 1;
iseledInitType.firstLedAdr = 1;
iseledInitType.tempCmpEnable = 0;
iseledInitType.voltSwing = 0;
/*** End of Processor Expert internal initialization. ***/
/* Write your code here */
/* For example: for(;;) { } */
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT, g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_FORCIBLE);
/*Initialize timing pal instance used by the ISELED Driver for the timeout mechanism*/
TIMING_Init(&timing_pal1_instance, &timing_pal1_InitConfig);
digLED_Init_Interface(NUMBER_OF_INTERFACES, iseled1_InitConfig);
digLED_Init_Strip(&iseledInitType, &digLEDResultStrip1, strip);
while(1)
{
switch(buttontime)
{
case 0 :
MarqueSymcenter();
default :
break;
}
if(buttontime < 2)
buttontime++;
else
buttontime = 0;
/*每个效果间隔1秒钟*/
OSIF_TimeDelay(1000);
}
①*digLED_ReturnType digLED_Init_Interface(uint8_t nrOfInterfaces, const digLED_ConfigType configStruct);
主要是进行ISELED接口的配置,如选择Flexio还是SPI,控制多少路ISELED,选用哪些引脚,外设的超时时间,使用中断还是DMA等。
②digLED_ReturnType digLED_Init_Strip(const digLED_InitType* ChainInitPtr, digLED_ReadDataResultType* ChainInitResultPtr, uint8_t StripNr);
主要是针对具体某一路ISELED的通信协议进行配置,如首ISELED的地址,是否进行CRC校验,差分电压幅值,是否进行相位偏移等。
二、点灯函数
/*对称流水,流水完成一次变换一次颜色*/
void MarqueSymcenter(void)
{
uint8_t ledNr;
uint8_t r, g, b;
r = rand() % 256;
g = rand() % 256;
b = rand() % 256;
for(ledNr=(NUM_OF_LED/2+1); ledNr<=NUM_OF_LED; ledNr++)
{
digLED_Set_RGB(r, g, b, ledNr, strip);
OSIF_TimeDelay(1);
digLED_Set_RGB(r, g, b, NUM_OF_LED+1-ledNr, strip);
OSIF_TimeDelay(100);
digLED_Set_RGB(0, 0, 0 , ledNr, strip);
OSIF_TimeDelay(1);
digLED_Set_RGB(0, 0, 0, NUM_OF_LED+1-ledNr, strip);
OSIF_TimeDelay(1);
}
for(ledNr=1; ledNr<=(NUM_OF_LED/2+1); ledNr++)
{
digLED_Set_RGB(r, g, b, ledNr, strip);
OSIF_TimeDelay(1);
digLED_Set_RGB(r, g, b, NUM_OF_LED+1-ledNr, strip);
OSIF_TimeDelay(100);
digLED_Set_RGB(0, 0, 0 , ledNr, strip);
OSIF_TimeDelay(1);
digLED_Set_RGB(0, 0, 0, NUM_OF_LED+1-ledNr, strip);
OSIF_TimeDelay(1);
}
}
digLED_ReturnType digLED_Set_RGB(uint8_t Red, uint8_t Green, uint8_t Blue, uint16_t Address, uint8_t StripNr);
实现灯效。其中Red,Green,Blue用于设置灯颜色的RGB值,Address代表要设置的ISELED芯片地址(0代表设置所有ISElED),StripNr代表要设置第几路ISELED。