问题标签 [shift-register]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
while-loop - 周期性地在LabVIEW中运行一个循环一段时间
我正在使用 LabVIEW 来操作和记录来自废水反应器的数据。我目前设置了一个程序来连续监测 pH 值,然后使用 pH 数据打开酸泵或碱泵。
我的问题是我想监测和记录 24/7 的 pH 数据,但我只希望我的酸/碱泵每三个小时激活一小时。理想情况下,我想将这些操作时间与计算机的时钟联系起来。
例如,从上午 10:05 到上午 11:05,我希望我的酸泵和碱泵使用来自 pH 传感器的数据,根据测量的 pH 值打开或保持关闭。我的目标 pH 值为 7.0 +/- 0.3。例如,如果测得的 pH 值为 6.5,则基础泵将打开,直到 pH 达到 6.7。如果测得的 pH 值为 7.5,酸泵将打开,直到达到 7.3 的 pH 值。如果 pH 值为 7,则两个泵都将保持关闭状态。到目前为止,我的代码是这样做的,但是泵会不断地打开和关闭。
在 11:05,两个泵都将“停用”并关闭,但应继续测量 pH 值。然后,在初始泵启动时间后 3 小时(上午 10:05 后 3 小时 = 下午 1:05,或上午 11:05 停止时间后 2 小时)此循环将再次开始,再次运行一小时。我希望这个循环一遍又一遍地继续(即每 3 小时响应 1 小时的 pH 测量值)。
是否可以在 LabView 中执行此操作?(我对LabVIEW也非常陌生)。谢谢!
c - 使用 C 控制 Raspberry Pi GPIO 与 74HC595
我正在尝试在我的 Raspberry Pi 项目中使用 Arduino 套件中的 74HC595 移位寄存器;但是,Arduino 套件附带的代码并没有明确说明这是如何完成的,因为在 ArduinoIDE 之外的 C 语言中不存在许多调用的函数。提供的代码是这样的:
Arduino 似乎有以下库,而 C 本身没有:
- 数字写入
- 引脚模式
- 移出
- LSBFIRST
有没有办法将为 Arduino 设计的库合并到 C 包中?我是否必须编写自己的库才能使设备正常工作?
verilog - ShiftRegister Verilog HDL 输出给出 xxxxxxx
我正在尝试在 Verilog HDL 中制作一个 64 位移位寄存器。当我在测试台中尝试代码时,我只得到 xxxxxx 作为输出,直到所有位都被移位。我不知道问题是什么。这是我的测试平台代码和结果:
c++ - 错误:分配函数 'void digitalWrite(uint8_t, uint8_t)
警告:我是 C++ 新手(以及大多数编程方面的新手),并且正在学习能够为我的 arduino 编写代码的语言
我正在学习如何使用我相信在 C++ 中的 Arduino IDE 使用移位寄存器。
这是代码:
这是错误,我不明白它的含义以及我应该怎么做
vhdl - 时钟控制过程中的 1 个周期使能信号
我正在参加 vhdl 在线课程。其中一项实验室工作是:“基于分频器和8位循环移位寄存器实现移位周期为1 s的环形计数器”。
任务说计数器的最高位不能作为移位寄存器的时钟信号(即在ifrising_edge(移位器(MSB))结构中。需要形成使能信号作为选通。
我做了这项工作。结果被接受。
我有一个关于启用移位寄存器的问题。
如果使能信号的持续时间为 1 个周期 clk,那么在上升沿 (clk) 时刻,en 信号电平有可能没有时间变为 = 1。如果是这种情况,则不能保证寄存器移位将在下一秒发生。有没有“正确”的方法来完成这项任务?是这样吗?我的决定正确吗?实验室线索是否具有误导性?
我附上了实现代码、测试台和波形图。
ring_counter.vhd
ring_counter_tb.vhd
verilog - 为什么 Verilog 输出显示 x 和 z 而不是 0 和 1?
我正在建模一个由三个 D 触发器组成的移位寄存器。有三个输入(clk、reset、shiftIn)和一个输出(shiftOut)。复位为同步高电平有效并复位所有触发器。
设计
试验台
当我使用以下模拟它时,我得到以下输出iverilog
:
为什么我得到 z 和 x 而不是 1 和零?
arrays - C - 用于显示的 BYTE 操作
这是一个有硬件限制的编程问题。我正在从事“智能”恒温器的逆向工程/黑客项目。(它不是那么聪明,但它能够处理 MQTT 流量。)
我的问题是内置 LED 矩阵显示器。有 5 个 7 段,其中两个也有 DP,显示屏周围有 19 个图标。
通常我会这样解决显示:
但是,这有一个小问题。板上有五个 74HC595 移位寄存器,它们与 LED 相连,如下所示:
这不是您在设计东西时通常想要做的事情,至少我尝试将其保持为 8 位(1 SR)/ 7 段,并在最后处理其余部分。
正如我已经提到的,这是纯粹的黑客行为,我没有原始代码或原理图。我想就如何操作 7 个字节以将其分解为以下内容寻求一些帮助:
- 5 个字符
- 21个布尔变量来设置其他一切
我已经开始考虑一个 56 位长的变量和一个巨大的 switch-case 结构来设置每个字符,但是应该有其他更好的解决方案。
谢谢您阅读此篇!
欢迎所有建议。
c++ - 在我用我的 arduino 发送一段代码后,移位寄存器停止工作
我已经被这个问题困扰了好几天了,似乎找不到解决办法。问题是,在我向移位寄存器发送命令后,它不再接受更多命令。我正在使用带有 74HC595 移位寄存器的 arduino UNO。问题出现在 manualOverWrite 函数中。
当我运行这段代码时,它会打开一个继电器(引脚 0)并停止。除了移位寄存器之外,我所有的 arduino 代码都可以正常工作。
我为混乱道歉 https://mega.nz/file/NEYFiAAA#Rc4QUpv6cnL-_1NJJrjKe-IaInH_33wGJlHpGlVkySM