0

我想做一些 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 平滑地改变亮度

4

0 回答 0