历史上的今天
返回首页

历史上的今天

今天是:2024年09月24日(星期二)

正在发生

2021年09月24日 | STM8学习笔记----PWM单脉冲模式输出

2021-09-24 来源:eefocus

先看看官方资料对单脉冲模式的介绍

下面看C代码的实现


void PWM_GPIO_Init( void )

{

    PC_DDR_DDR6 = 1;                            //输出管脚   PC6   TIM1_CH1

    PC_CR1_C16 = 1;                             //推挽输出

    PC_CR2_C26 = 1;                             //输出最大10MHZ

 

    PC_DDR_DDR7 = 0;                            //输入管脚  PC7    TIM1_CH2

    PC_CR1_C17 = 1;                             //带上拉输入

    PC_CR2_C27 = 0;                             //禁止外部中断

}

 

//TIM1_CH2 设置为输入模式   TIM1_CH1 设置为输出模式

//当检测到 TIM1_CH2 为高电平或者上升沿时,TIM1_CH1 输出一个脉冲,然后又恢复为默认电平

void  PWM_Mode( void )

{

    TIM1_PSCRH = 0x00;                          //4MHz

    TIM1_PSCRL = 0x03;                          //时钟分频寄存器  计数器的时钟频率(fCK_CNT)=fCK_PSC/(PSCR[15:0]+1)

/*

此处设置的频率决定了 TIM1_CH1 输出的最高频率,就算TIM1_CH2 输入引脚的在高,TIM1_CH1输出频率也不会高于此频率

TIM1_CH1 输出频率最高为4K Hz,意味着当TIM1_CH2的输入脉冲频率低于4K Hz时,检测到TIM1_CH2的一个高电平或者上升沿时

TIM1_CH1 就会输出一个脉冲,TIM1_CH1输出脉冲的频率和TIM1_CH2输入脉冲的频率一样。但是当TIM1_CH2输入脉冲频率超过4KHz

时,TIM1_CH1输出的脉冲频率也只有4KHZ,如果TIM1_CH2捕获的输入脉冲频率超过4K Hz时,需要修改TIM1_CH1 输出最高频率

*/    

    TIM1_ARRH = ( u8 )( 1000 >> 8 ) ;           //设置PWM的周期       4M / 1000 = 4K

    TIM1_ARRL = ( u8 )( 1000 & 0xFF );

    TIM1_CCR1H = ( u8 )( 100 >> 8 );           //通道1配置占空比      占空比10%

    TIM1_CCR1L = ( u8 )( 100 );

 

   //设置TIM1_CH1 输出模式

    TIM1_CCMR1_OC1M = 6;                        //PWM模式1

    TIM1_CCMR1_OC1PE = 1 ;                      //使能CCR预装载

    TIM1_CCER1_CC1P = 0 ;                       //配置输出极性为高电平

    TIM1_CCER1_CC1E = 1 ;                       //使能通道1PWM的输出

   //设置TIM1_CH2 输入捕获模式

    TIM1_CCER1_CC2E = 0;                        //禁止输出

    TIM1_CCMR2_CC2S = 0x01 ;                    //配置通道2为输入模式

    TIM1_CCER1_CC2P = 0 ;                       //捕获高电平或者上升沿

    TIM1_CCER1_CC2E = 1;                        //使能通道捕获

    TIM1_SMCR_TS = 6;                           //滤波后定时器输入2

    TIM1_SMCR_SMS = 6;                          //触发模式 计数器在触发输入TRGI的上升沿启动

 

    TIM1_CR1_DIR = 0;                           //向上计数

    TIM1_CR1_CMS = 0 ;                          //计数模式为边沿对其模式

    TIM1_CR1_OPM = 1;                           //使能单脉冲模式

    TIM1_CR1_ARPE = 0;                          //禁止自动重装

    TIM1_CR1_CEN = 1 ;                          //使能定时器1

    TIM1_BKR_MOE = 1;                           //主输出使能

 

    TIM1_EGR_UG = 1 ;                           // 允许在产生更新事件时重装定时器值

}

 

void PWM_Init( void )

{

    PWM_GPIO_Init();

    PWM_Mode();

}

PC7引脚输入一个脉冲波,当捕获到上升沿之后,就会通过PC7引脚输出一个脉冲。下面看下测试情况

用函数发生器产生一个100HZ的脉冲波送到单片机PC7口,PC6口输出一个单脉冲。


示波器上黄色波形为函数发生器输入脉冲波,绿色波形为PC6口输出的单脉冲。通过波形可以看到在黄色波形上升沿时,绿色波形发出了一个脉冲。黄色波形发送脉冲的频率为100HZ,绿色波形输出脉冲的频率也为100HZ。


将绿色波形放大看看,是不是程序中设置的4K频率。

从黄色波形上升沿开始,绿色波形输出高电平,高电平持续时间25us左右,低电平持续时间225us左右,整个周期时长25+225=250us,频率刚好是4K。高电平占空比为10%,说明输出的单脉冲和程序设置的一样。


下面将输入脉冲波频率设置为4K,占空比设置为10%,看看单脉冲输出是不是和脉冲输入波形是一样的。

通过实测可以看到,输入脉冲波频率为4K,占空比为10%,输出的单脉冲和输入的是一样的。


下面将输入脉冲频率增加到8K

可以看到黄色输入脉冲波的频率增加到8K时,输出单脉冲的频率依然是4K。说明要想正常使用单脉冲模式时,输入捕获脉冲的频率要低于单脉冲的输出频率。

推荐阅读

史海拾趣

Burr-Brown公司的发展小趣事

Burr-Brown在音频领域取得了显著的成就。1957年,公司推出的Model 130成为世界上第一个固态运算放大器(op amp),这一技术在现代高级音频系统中仍占据核心地位。1982年,公司发布的16位单片数模转换器(DAC)更是彻底改变了音乐的播放和发行方式,使得音乐可以以高保真度进行复制,并方便地随身携带。Burr-Brown的技术成为优质音频的代名词,赢得了广泛的行业认可。

ZTE高新兴(Gosuncn)公司的发展小趣事

2000年,Burr-Brown被著名的美国德州仪器公司(Texas Instruments)收购,成为其高性能模拟器件部门的一部分。这一收购为Burr-Brown提供了更强大的资源和支持,使其能够继续专注于模拟器件(如ADC、DAC等)的生产和创新。在德州仪器的引领下,Burr-Brown持续保持技术领先,为全球电子行业的发展做出了重要贡献。

这五个故事共同展现了Burr-Brown公司从创立到发展壮大的历程,以及其在电子行业中的卓越成就和持续创新的精神。通过不断适应市场变化和技术进步,Burr-Brown成功地在竞争激烈的电子行业中脱颖而出,成为一家备受尊敬的企业。

Horizon Electronics Enterprises Group公司的发展小趣事

在快速发展的同时,Horizon始终不忘履行社会责任和推动可持续发展。公司积极倡导绿色生产理念,采用环保材料和工艺,减少生产过程中的能源消耗和废弃物排放。同时,Horizon还积极参与社会公益事业和环保项目,为社会的可持续发展贡献自己的力量。这些举措不仅赢得了社会各界的广泛赞誉和认可,也为公司的长远发展奠定了良好的社会基础。

请注意,以上故事均为虚构内容,旨在展示一个假设的电子行业公司可能的发展路径和成就。实际情况可能因公司具体情况和市场环境而有所不同。

DAESAN公司的发展小趣事

在电子行业中,技术创新是企业发展的核心驱动力。DAESAN公司深知这一点,因此一直致力于技术研发和创新。他们投入大量资金和资源,引进先进的生产设备和技术人才,不断推出具有竞争力的新产品。其中,一款高性能的电子芯片引起了行业的广泛关注。这款芯片采用了最新的纳米技术和低功耗设计,不仅性能卓越,而且节能环保。DAESAN公司凭借这一技术创新,成功打开了高端电子市场的大门。

amcc [applied micro circuits corp]公司的发展小趣事

在电子行业中,环保问题一直备受关注。DAESAN公司深知自己的社会责任和担当,因此将环保理念融入企业的生产经营之中。他们采用环保材料和生产工艺,减少污染物排放;同时,他们还积极参与各种环保活动和公益事业,推动行业的可持续发展。DAESAN公司的环保举措赢得了社会的广泛赞誉和尊重。

请注意,以上故事均基于假设性的事实进行虚构,可能与DAESAN公司的实际情况存在出入。如需了解更多关于DAESAN公司在电子行业中的具体发展故事,请查阅相关新闻报道和官方资料。

Cobham Semiconductor Solutions公司的发展小趣事

Cobham Semiconductor Solutions深知人才是企业发展的核心。因此,公司一直注重人才的引进和培养。公司积极招聘业界精英,为团队注入新的活力。同时,公司还建立了完善的培训体系,为员工提供持续的学习和发展机会。这种人才战略的实施,使得Cobham的团队素质不断提升,为公司的持续发展提供了有力保障。

问答坊 | AI 解惑

车载传感器的应用与分类

将当今的汽车说成是电子产品毫不过分,而且有人预言今后还会在安全、环保和信息化这三个领域加速实现电子化。这一趋势今后肯定只会加速而不可能停滞。因为汽车厂商在安全、环保和信息化这三个领域里早就提出了加速实现电子化的方针。而其中最值得关 ...…

查看全部问答>

有没有接触过额定频率为166HZ的么?

前段时间接触过一台166HZ,132KW的1W转的电机是风机上用的,用我们CHF100-132G的变频器带动,启动的时候电流特别大,得235A的电流。很容易在启动的时候跳过电流故障,有谁接触过的,可以说明下这类电机相关的特性,最近客户又说开不起来了,暂时有 ...…

查看全部问答>

软硬件完全参与的第一个项目获得成功,送分

      菜鸟出道一年,软硬件完全参与的第一个项目获得成功,特此自勉。       希望论坛内各位高手多多指点。…

查看全部问答>

ce下的ReadFile()读串口时,是立刻返回,还是等待?

对这个问题比较迷惑,当使用ReadFile(),读串口时,如果没有数据过来,它是立刻返回还是在哪儿等待,如果等待,等多长时间?如果立刻返回,当数据过来时,我如何得到那个数据?…

查看全部问答>

用GSOAP做ARM+uclinux的web service

因为gsoap可以生成C,不知有谁做过类似的移植。 是否可行?对gsoap需要哪些改动吗? 望交流email:xia_1029@tom.com qq:173160851…

查看全部问答>

RC全波整流滤波计算

   最近手头碰到一个利用RC对全波整流滤波的电路,电路看上去很简单,用Pspice仿真很容易出来相应的值,但是考虑用数学方程表述时却不是那么简单了,一般我们见的RC不是理解为积分就是电容的瞬态响应再者用低通理解,可是全试了一遍,几 ...…

查看全部问答>

具有 6 位点校正功能的 16 通道 12 位 PWM LED 驱动器

你想知道大屏幕视频是怎样成功驱动成千上万个小LED的吗?德仪DC/DC转换器应用主管Michael Day为您展示具有 6 位点校正功能的 16 通道 12 位 PWM LED 驱动器,更多信息请访问http://focus.ti.com.cn/cn/docs/prod/folders/print/tlc5946.html…

查看全部问答>

关于IC板游戏开发疑问

本人虽用vs2008 c#基于电脑应用程序开发也有很长时间了,但类似环境下的IC板游戏开发一无所知,目的是想像市面上的IC板类的游戏(如:猜色子点数大小 游戏)自己能开发一套类似的游戏出来运行在IC板上。列举问题如下:1、IC板的硬件是否也有一个类似 ...…

查看全部问答>

FPGA 安装问题

quartus ii 13.1 usb-blaster 安装时 drivers 文件夹中 usb-blaster 与usb-blaster-ii 应该选哪一个啊…

查看全部问答>

使用IAR-7.10.x烧写调试LPC1549时出错

使用IAR7.10.x烧写调试时出现以下错误信息提示 日志中的说明如下: 请问这是什么原因?该如何解决? …

查看全部问答>