en-us--EC_M0A23_GPIO_ARGB_LED_Control_V1.00 (1).zip
(5.25 MB)
使用 GPIO 控制 ARGB LED,主要透过 NOP() 命令让高低电平往后延迟一段时间,程序中设定系统时钟 HIRC 为 48MHz,执行一个命令时间约 1 / 48MHz ( 20.83ns ),由执行命令时间即可得到需要执行几次 NOP() 命令。
void ARGB_sendBIT0()
{
Dout_Pin = 1;
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
Dout_Pin = 0;
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
}
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] Send BIT1
* @param None
* @retval None
*/
void ARGB_sendBIT1()
{
Dout_Pin = 1;
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
Dout_Pin = 0;
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
__NOP();
}
/**
* @brief Send Trst
* @param None
* @retval None
*/
void ARGB_sendReset()
{
int i = 0;
Dout_Pin = 0;
for (i = 0; i < 3200; i++)
{
__NOP();
}
}
应了那句话:天下武功,为快不破。
|