📄 pmic_tcled.cpp
字号:
// This function sets the fun light in Chasing Lights RGB pattern.
//
// Parameters:
// bank
// [in] bank.
// pattern
// [in] pattern.
// speed
// [in] speed.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightChasingLightsPattern(FUNLIGHT_BANK bank, CHASELIGHT_PATTERN pattern, TCLED_FUN_SPEED speed)
{
PMIC_PARAM_LLA_WRITE_REG param;
DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));
param.addr = MC13783_LED_CTL0_ADDR;
switch(speed)
{
case TC_OFF:
switch(bank)
{
case TCLED_FUN_BANK1:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK1, MC13783_LED_CTL0_FLBANK_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK1);
break;
case TCLED_FUN_BANK2:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK2, MC13783_LED_CTL0_FLBANK_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK2);
break;
case TCLED_FUN_BANK3:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK3, MC13783_LED_CTL0_FLBANK_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK3);
break;
}
goto callioctl;
break;
case TC_SLOW:
switch(pattern)
{
case RGB:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN, MC13783_CHASING_LIGHTS_RGB_SLOW);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
case BGR:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN, MC13783_CHASING_LIGHTS_BGR_SLOW);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
}
break;
case TC_FAST:
switch(pattern)
{
case RGB:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN, MC13783_CHASING_LIGHTS_RGB_FAST);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
case BGR:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN, MC13783_CHASING_LIGHTS_BGR_FAST);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
}
break;
}
if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, ¶m,
sizeof(param), NULL, 0, NULL, NULL))
return PMIC_ERROR;
switch(bank)
{
case TCLED_FUN_BANK1:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK1, MC13783_LED_CTL0_FLBANK_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK1);
break;
case TCLED_FUN_BANK2:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK2, MC13783_LED_CTL0_FLBANK_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK2);
break;
case TCLED_FUN_BANK3:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLBANK3, MC13783_LED_CTL0_FLBANK_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLBANK3);
break;
}
callioctl:
if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, ¶m,
sizeof(param), NULL, 0, NULL, NULL))
return PMIC_ERROR;
DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
return PMIC_SUCCESS;
}
//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightRampUp
//
// This function starts LEDs Brightness Ramp Up function. Ramp time is fixed at 1 second.
//
// Parameters:
// bank
// [in] bank.
// channel
// [in] the channel to ramp up.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightRampUp(FUNLIGHT_BANK bank, FUNLIGHT_CHANNEL channel)
{
PMIC_PARAM_LLA_WRITE_REG param;
DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));
param.addr = MC13783_LED_CTL1_ADDR;
switch(bank)
{
case TCLED_FUN_BANK1:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPDOWN);
break;
}
break;
case TCLED_FUN_BANK2:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPDOWN);
break;
}
break;
case TCLED_FUN_BANK3:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_ENABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPDOWN);
break;
}
break;
}
if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, ¶m,
sizeof(param), NULL, 0, NULL, NULL))
return PMIC_ERROR;
DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
return PMIC_SUCCESS;
}
//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightRampDown
//
// This function starts LEDs Brightness Ramp Down function. Ramp time is fixed at 1 second.
//
// Parameters:
// bank
// [in] bank.
// channel
// [in] the channel to ramp down.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightRampDown(FUNLIGHT_BANK bank, FUNLIGHT_CHANNEL channel)
{
PMIC_PARAM_LLA_WRITE_REG param;
DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));
param.addr = MC13783_LED_CTL1_ADDR;
switch(bank)
{
case TCLED_FUN_BANK1:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPDOWN);
break;
}
break;
case TCLED_FUN_BANK2:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPDOWN);
break;
}
break;
case TCLED_FUN_BANK3:
switch(channel)
{
case TCLED_FUN_CHANNEL1:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPDOWN);
break;
case TCLED_FUN_CHANNEL2:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPDOWN);
break;
case TCLED_FUN_CHANNEL3:
param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_ENABLE);
param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPUP)|
CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPDOWN);
break;
}
break;
}
if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, ¶m,
sizeof(param), NULL, 0, NULL, NULL))
return PMIC_ERROR;
DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
return PMIC_SUCCESS;
}
//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightRampOff
//
// This function stop LEDs Brightness Ramp function.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -