📄 pmic_tcled.cpp
字号:
if(!DeviceIoControl(hPMI, PMIC_IOCTL_LLA_READ_REG, ¶m, sizeof(param),
&temp, sizeof(temp), NULL, NULL))
{
return PMIC_ERROR;
}
switch(channel)
{
case TCLED_FUN_CHANNEL1:
*dc = CSP_BITFEXT(temp, MC13783_LED_CTL3_LEDR1DC);
break;
case TCLED_FUN_CHANNEL2:
*dc = CSP_BITFEXT(temp, MC13783_LED_CTL3_LEDG1DC);
break;
case TCLED_FUN_CHANNEL3:
*dc = CSP_BITFEXT(temp, MC13783_LED_CTL3_LEDB1DC);
break;
}
DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
return PMIC_SUCCESS;
}
//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightBlendedRamps
//
// This function sets the fun light in Blended Ramps pattern.
// The calling program has to disable the bank before changing to a new
// pattern, if the bank is enabled.
//
//
// Parameters:
// bank
// [in] bank.
// speed
// [in] speed.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightBlendedRamps(FUNLIGHT_BANK bank,
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:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_BLENDED_RAMPS_SLOW);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
case TC_FAST:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_BLENDED_RAMPS_FAST);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
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: PmicTCLEDFunLightSawRamps
//
// This function sets the fun light in Saw Ramps pattern.
// The calling program has to disable the bank before changing to a new
// pattern, if the bank is enabled.
//
// Parameters:
// bank
// [in] bank.
// speed
// [in] speed.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightSawRamps(FUNLIGHT_BANK bank, 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:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_SAW_RAMPS_SLOW);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
case TC_FAST:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_SAW_RAMPS_FAST);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
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: PmicTCLEDFunLightBlendedBowtie
//
// This function sets the fun light in Blended Bowtie pattern.
// The calling program has to disable the bank before changing to a new
// pattern, if the bank is enabled.
//
// Parameters:
// bank
// [in] bank.
// speed
// [in] speed.
//
// Returns:
// PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightBlendedBowtie(FUNLIGHT_BANK bank,
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:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_BLENDED_BOWTIE_RAMPS_SLOW);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
break;
case TC_FAST:
param.data = CSP_BITFVAL(MC13783_LED_CTL0_FLPATTERN,
MC13783_BLENDED_BOWTIE_RAMPS_FAST);
param.mask = CSP_BITFMASK(MC13783_LED_CTL0_FLPATTERN);
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: PmicTCLEDFunLightChasingLightsPattern
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -