我想做一些 rc5 发射器项目。
我已经有一个带有 stm8s003 的电路来发送数据和一个 ne555 来产生 38khz 的频率。将它们连接在一起并发送特定数据,我的 rc5 发射器工作正常,而且没有任何消息。
但我想删除 ne555 并且只使用 stm8s003 来做这两个工作。
我只需要一个代码就可以让 TIMER_1 发送 38khz 频率。
这是一个示例代码,但我不知道。
void TIM1_setup(void)
{
TIM1_DeInit();
TIM1_TimeBaseInit(16, TIM1_COUNTERMODE_UP, 1000, 1);
TIM1_OC1Init(TIM1_OCMODE_PWM1,
TIM1_OUTPUTSTATE_ENABLE,
TIM1_OUTPUTNSTATE_ENABLE,
1000,
TIM1_OCPOLARITY_LOW,
TIM1_OCNPOLARITY_LOW,
TIM1_OCIDLESTATE_RESET,
TIM1_OCNIDLESTATE_RESET);
TIM1_CtrlPWMOutputs(ENABLE);
TIM1_Cmd(ENABLE);
}
void main(void)
{
int j;
signed int i = 0;
clock_setup();
GPIO_setup();
TIM1_setup();
while(TRUE)
{
for(i = 0; i < 1000; i += 1)
{
TIM1_SetCompare1(i);
for(j=1;j<0x5FFF;j++);
}
for(i = 1000; i > 0; i -= 1)
{
TIM1_SetCompare1(i);
for(j=1;j<0x5FFF;j++);
}
};
}
似乎这段代码可以使 LED 平滑地改变亮度