2161506_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2161506_zh-CN

2161506_zh-CN

使用 i2c 驱动器控制 7 段显示器

早上好、

我有一个问题。我正在使用 i2c pca9956btwy 驱动程序控制两个 3 位 7 段显示器。我在轮询模式下使用带有 i2c_masterTransferBlocking 功能的 i2c 外围设备。在后台,我有一种使用 systick 的调度程序,它使用一些中断作为计时器。问题是,我经常在主程序的 while(1) 内更改显示屏上的文本,因此会丢失一些中断。我的问题是:如果我在等待传输结束时使用阻塞功能保持 i2c 外设处于轮询模式,如果中断触发信号,我就不会错过了,对吗?我是否要执行中断,然后返回等待传输结束?导致中断丢失的原因是通过 12c 进行的连续传输,对吗?

感谢您的答复。

顺祝商祺!

Re: Controlling 7-segment displays with i2c drivers

早上好、

谢谢您的答复、

但我通过自动递增 LED 解决了这个问题。现在,中断几乎从未丢失过。我已经实现了一种方法,可以避免向显示屏连续发送与之前状态相同的信息。不幸的是,我使用 pca9534d 驱动程序每 20 毫秒读取一次按钮状态,我不知道如何减少传输,这意味着我会丢失一些中断。我不能增加阅读时间,否则按钮就不是实时的了。也许我可以通过设置不同的中断优先级来解决这个问题?

再次感谢您。

Re: Controlling 7-segment displays with i2c drivers

你好

请参见 GRPPWM 寄存器(数据表第 7.3.4 节)

https://www.nxp.com/docs/en/data-sheet/PCA9956B.pdf

Re: Controlling 7-segment displays with i2c drivers

谢谢您的答复。
我使用 mcxc242 和 pca9956btwy 控制显示器。关于驱动程序,是否有一条命令可以让我依次选择每个引脚的 PWM 强度,而无需依次为每个引脚发送命令?
再次感谢您。

此致

Re: Controlling 7-segment displays with i2c drivers

Hello

是的,中断仍应执行。不过,可能导致您错过其中一些信息的原因是您正在执行频繁的 I2C 传输。这可能会使 CPU 超载,并延迟中断处理,尤其是在使用阻塞调用的情况下。

顺便问一下,您使用的是哪种微控制器?

Tags (1)
No ratings
Version history
Last update:
‎11-20-2025 01:53 PM
Updated by: