wangjunn 发表于 2021-12-22 11:07

频率计数

请教各位一个问题,就是一个频率为10M的方波输入到一个单片机,怎样从单片机输出一个5M的方波,望各位不吝赐教

ayb_ice 发表于 2021-12-22 11:39

普通单片机很难处理这么高的信号,不如外部直接2分频

xdqfc 发表于 2021-12-22 11:40

用PWM外设,周期数设定4,比较值设定2,10M作为外部输入时钟。比较输出,用示波器看看。

wangjunn 发表于 2021-12-22 13:37

ayb_ice 发表于 2021-12-22 11:39
普通单片机很难处理这么高的信号,不如外部直接2分频

多谢答复,忘了说一句,用ARM 也可以

wangjunn 发表于 2021-12-22 13:41

xdqfc 发表于 2021-12-22 11:40
用PWM外设,周期数设定4,比较值设定2,10M作为外部输入时钟。比较输出,用示波器看看。
...

您好,多谢您的回复(忘了说,用ARM也可以),请问您说的方法哪种单片机或ARM 有这样的功能?

genhe 发表于 2021-12-22 14:34

为啥用单片机,用个触发器不香么?

xdqfc 发表于 2021-12-22 16:38

wangjunn 发表于 2021-12-22 13:41
您好,多谢您的回复(忘了说,用ARM也可以),请问您说的方法哪种单片机或ARM 有这样的功能? ...

GD32跟CH32的定时器都有外部计数功能,比较输出功能,推荐CH32,国产内核。

coody 发表于 2021-12-22 21:12

用一个STC的8位机的定时器对外部信号做2N分频输出,没有任何问题。

wangjunn 发表于 2021-12-23 09:16

xdqfc 发表于 2021-12-22 16:38
GD32跟CH32的定时器都有外部计数功能,比较输出功能,推荐CH32,国产内核。
...

好的,十分感谢您的答复,现在恰好准备用 沁恒 CH32V103C8T6

wangjunn 发表于 2021-12-23 09:22

coody 发表于 2021-12-22 21:12
用一个STC的8位机的定时器对外部信号做2N分频输出,没有任何问题。

感谢您的答复,您说的方法是使用定时器的外部计数功能吗?是否需要用到中断?如果用到中断,会不会中断时间太短,而不能执行其他程序?就像 二楼大哥所说的情形

xch 发表于 2021-12-23 10:12

可能可以用DMA 输出5MHZ。外部输入10MHZ触发DMA,dma 在GPIO上反转输出。一般GPIO输入不能直接触发DMA,需要一个高速可触发外设来转换。比如定时器捕获。

xdqfc 发表于 2021-12-23 10:18

这么一个小要求,居然要用DMA,还要用中断,捕获,是不是夸张了点。定时器比较硬件PWM输出,不香吗。

xch 发表于 2021-12-23 10:57

xdqfc 发表于 2021-12-23 10:18
这么一个小要求,居然要用DMA,还要用中断,捕获,是不是夸张了点。定时器比较硬件PWM输出,不香吗。 ...

不确定定时器能输出1/2分频。

forrest11 发表于 2021-12-23 11:28

用中断处理肯定来不及。只能用定时器比较PWM输出。

lyjian 发表于 2021-12-23 12:53

STC8定时器的频率输出功能,实现非常简单


coody 发表于 2021-12-23 15:22

wangjunn 发表于 2021-12-23 09:22
感谢您的答复,您说的方法是使用定时器的外部计数功能吗?是否需要用到中断?如果用到中断,会不会中断时 ...

不需要中断,设置好了之后,硬件自动分频输出。
比如Timer0,从P3.4输入信号,从P3.5输出分频信号,输出频率 = 输入频率 / 2 / N,N=1~65535,我常用此功能来配合PLL芯片做信号输出。

ayb_ice 发表于 2021-12-23 15:47

比较输出是靠谱的方案,如果软件处理肯定是处理不过来的
页: [1]
查看完整版本: 频率计数