资源简介

STM8单片机通过PC6和PC3引脚输出互补PWM波,PB5口做为刹车控制引脚,当PB5口输入低电平时,定时器自动关断PWM输出。单片机复位后PWM波形恢复输出。

资源截图

代码片段和文件信息

#include “iostm8s103F3.h“
#include “led.h“
#include “pwm.h“

void SysClkInit( void )
{
    CLK_SWR = 0xe1;       //HSI为主时钟源  16MHz CPU时钟频率
    CLK_CKDIVR = 0x00;    //CPU时钟0分频,系统时钟0分频
}


void delay_ms( unsigned int ms )
{
    unsigned char i;
    while( ms != 0 )
    {
        for( i = 0; i < 250; i++ );
        for( i = 0; i < 75; i++ );
        ms--;
    }
}
void delay_us( unsigned int Tus )
{
    __asm( “nop“ );
}

//PB5口设置为输入口 做为刹车控制引脚
void BK_GPIO_Init( void )
{
    PB_DDR &= ~( 1 << 5 );       //PB5 输入模式
    PB_CR1 |= ( 1 << 5 );        //PB5 带上拉电阻输出
}

/*
  PC6为 TIM1_CH1    输出通道
  PC3为 TIM1_CH1N   输出通道
  PB5为 刹车控制端口  当PB5为低电平时 PWM关闭互补波形输出  这个过程为单片机内部硬件自动控制 不需要软件参与
  需要在选项字节中开启 PC6 TIM1_CH1  PC3 TIM1_CH1N  PB5 TIM1_BKIN 功能
*/
void main( void )
{
    SysClkInit();
    __asm( “sim“ );                       //禁止中断
    BK_GPIO_Init();                       //刹车控制输入端
    TIM1_Init();
    __asm( “rim“ );                       //开启中断
    delay_ms( 500 );
  
    TIM1_CH1_OUT(FRE/2);                  //设置占空比为50%
    
    while( 1 )
    {
        LED = 0;                         //LED=0 和 LED=!LED  执行效率差距很大
        __asm( “nop“ );                  //直接调用  __asm(“nop“) 和  delay_us(1)     执行效率差距也很大
        LED = 1;
        __asm( “nop“ );
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-02-20 13:24  STM8_PWM_BKIN\
     文件        2397  2018-05-15 14:52  STM8_PWM_BKIN\BuildLog.log
     目录           0  2019-02-20 12:56  STM8_PWM_BKIN\Debug\
     目录           0  2019-02-20 13:29  STM8_PWM_BKIN\Debug\Exe\
     文件       31600  2019-02-20 13:29  STM8_PWM_BKIN\Debug\Exe\LED.out
     文件        1104  2019-02-20 13:29  STM8_PWM_BKIN\Debug\Exe\PWM.hex
     目录           0  2019-02-20 13:29  STM8_PWM_BKIN\Debug\List\
     文件       12789  2019-02-20 13:29  STM8_PWM_BKIN\Debug\List\LED.map
     目录           0  2019-02-20 13:28  STM8_PWM_BKIN\Debug\Obj\
     文件        6074  2019-02-20 13:07  STM8_PWM_BKIN\Debug\Obj\led.o
     文件      230103  2019-02-13 14:42  STM8_PWM_BKIN\Debug\Obj\LED.pbd
     文件      230103  2019-02-13 14:42  STM8_PWM_BKIN\Debug\Obj\LED.pbd.browse
     文件         199  2019-02-13 14:42  STM8_PWM_BKIN\Debug\Obj\LED.pbd.linf
     文件      224865  2019-02-20 13:06  STM8_PWM_BKIN\Debug\Obj\led.pbi
     文件       11491  2019-02-20 13:06  STM8_PWM_BKIN\Debug\Obj\led.pbi.xcl
     文件       14148  2019-02-20 13:28  STM8_PWM_BKIN\Debug\Obj\main.o
     文件      227351  2019-02-20 13:24  STM8_PWM_BKIN\Debug\Obj\main.pbi
     文件       11483  2019-02-20 13:24  STM8_PWM_BKIN\Debug\Obj\main.pbi.xcl
     文件       16391  2019-02-20 13:22  STM8_PWM_BKIN\Debug\Obj\pwm.o
     文件      228209  2019-02-20 13:28  STM8_PWM_BKIN\Debug\Obj\PWM.pbd
     文件      228209  2019-02-20 13:28  STM8_PWM_BKIN\Debug\Obj\PWM.pbd.browse
     文件         180  2019-02-20 13:28  STM8_PWM_BKIN\Debug\Obj\PWM.pbd.linf
     文件      226483  2019-02-20 13:22  STM8_PWM_BKIN\Debug\Obj\pwm.pbi
     文件       11491  2019-02-20 13:22  STM8_PWM_BKIN\Debug\Obj\pwm.pbi.xcl
     目录           0  2019-02-20 13:22  STM8_PWM_BKIN\HardWare\
     文件         194  2019-02-20 13:06  STM8_PWM_BKIN\HardWare\led.c
     文件         166  2019-02-20 12:56  STM8_PWM_BKIN\HardWare\led.c.orig
     文件         170  2018-05-10 16:18  STM8_PWM_BKIN\HardWare\led.h
     文件        1474  2019-02-20 13:22  STM8_PWM_BKIN\HardWare\pwm.c
     文件        2728  2018-05-16 16:25  STM8_PWM_BKIN\HardWare\pwm.c.orig
     文件         481  2019-02-13 14:56  STM8_PWM_BKIN\HardWare\pwm.h
............此处省略22个文件信息

评论

共有 条评论