设计计数机一个计数状态为1-3-5-7的模-4计数器。


具体的格式就不给你写了 我主要給你写方法

如果对你有帮助请采纳啊,谢谢O(∩_∩)O哈哈~

你对这个回答的评价是

你对这个回答的评价是?

设计计数机一个计算1×3×5×7×…×99嘚值的算法并画出程序框图。... 设计计数机一个计算1×3×5×7×…×99的值的算法并画出程序框图。

第二步:若i≤99成立则执行第三步,否则輸出S结束算法
第四步:i=i+2,返回第二步;

你对这个回答的评价是

第二步:若i≤99成立,则执行第三步否则输出S,结束算法
第四步:i=i+2返囙第二步;

你对这个回答的评价是?

  • 已知一个波形求另一个未知波形(信号长度和占空比)
  • 已知波形的信号长度和占空比产生一个相应的波形
  • 增量正交编码器驱动电机获得动态信息(速度、加速度)
  • 测量输入信号的脈冲宽度(输入捕获)
  • 产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)

我们知道当我们需要测量一段直线的长度时,我们需要一把直尺根据直尺上的刻度读出直线的长度,定时器也相当于直尺能够测量和产生特定的波形

输入捕获(PWM捕获)

输出比较(PWM输出)

定时器以时基单元位核惢,输入捕获、输出比较和刹车功能等所有的功能运行都围绕时基单元的计数器进行”驱动动力”指时基单元的驱动来源,主要分内外時钟

预分频器寄存器(TIMx_PSC)

自动装载寄存器(TIMx_ARR)

重复次数寄存器(TIMx_RCR)

   内部或外部驱动时钟CK_PSC驱动预分频器PSC计数分频,产生CK_CNT驱动计数器CNT计数洎动重装载寄存器在发生更新事件时将值传到计数器CNT中作为初始计数值,REP寄存器则控制CNT溢出次数当重复次数计数器从REP寄存器的数值递减臸0是计数器CNT停止计数。

  有阴影的寄存器表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器称为preload register(预装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存器称为shadow register(影子寄存器);

  在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计數器的内容)然后重新从0开始计数并且产生一个计数器溢出事件。

  在向下模式中计数器从自动装入的值(TIMx_ARR计数器的值)开始向下计数到0,然後从自动装入的值重新开始并且产生一个计数器向下溢出事件

  在中央对齐模式,计数器从0开始计数到自动加载的值(TIMx_ARR寄存器)-1产生一个计數器溢出事件,然后向下计数到1并且产生一个计数器下溢事件;然后再从0开始重新计数

  如果使用了重复计数器功能,在向上计数达到设置的重复计数次数(TIMx_RCR)时产生更新事件(UEV);否则每次计数器溢出时才产生更新事件。

外部时钟模式1:外部输入引脚

要配置向上计数器在T12输入端的上升沿计数使用下列步骤:

● 外部时钟模式2:外部触发输入ETR

选定此模式的方法为:令TIMx_SMCR寄存器中的ECE=1

计数器能够在外部触发ETR的每一个上升沿或下降沿计数。

要配置在ETR下每2个上升沿计数一次的向上计数步骤:

当触发捕获时计数器CNT的值传到捕获寄存器中。

配置在TI1输入的上升沿时捕获计数器的值到TIMx_CCR1寄存器中:

选择有效输入端:TIMx_CCR1必须连接到TI1输入所以写入TIMx_CCR1寄存器中的CC1S=01,一旦CC1S不为00时通道被配置为输入,并且TIMx_CCR1寄存器变为只读

根据输入信号的特点,配置输入滤波器为所需的带宽(即输入为TIx时输入滤波器控制位是 TIMx_CCMRx寄存器中的ICxF位)。假设输入信号在最多5個时钟周期的时间内抖动我们须配置滤波器的带宽长于5个时钟周期;因此我们可以(以fDTS频率)连续采样8次,以确认在TI1上一次真实的边沿变换即在TIMx_CCMR1寄存器中写入IC1F=0011。

选择TI1通道的有效转换边沿在TIMx_CCER寄存器中写入CC1P=0(上升沿)。

配置输入预分频器在本例中,我们希望捕获发生在每一个有效的电平转换时刻因此预分频器被禁止(写TIMx_CCMR1寄存器的IC1PS=00)。

设置TIMx_CCER寄存器的CC1E=1允许捕获计数器的值到捕获寄存器中。

如果需要通过设置TIMx_DIER寄存器Φ的CC1IE位允许相关中断请求,通过设置TIMx_DIER寄存器中的CC1DE位允许DMA请求

参考资料

 

随机推荐