问题标签 [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.

0 投票
1 回答
430 浏览

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也非常陌生)。谢谢!

代码片段

0 投票
1 回答
176 浏览

c - 使用 C 控制 Raspberry Pi GPIO 与 74HC595

我正在尝试在我的 Raspberry Pi 项目中使用 Arduino 套件中的 74HC595 移位寄存器;但是,Arduino 套件附带的代码并没有明确说明这是如何完成的,因为在 ArduinoIDE 之外的 C 语言中不存在许多调用的函数。提供的代码是这样的:

Arduino 似乎有以下库,而 C 本身没有:

  • 数字写入
  • 引脚模式
  • 移出
  • LSBFIRST

有没有办法将为 Arduino 设计的库合并到 C 包中?我是否必须编写自己的库才能使设备正常工作?

0 投票
1 回答
547 浏览

verilog - ShiftRegister Verilog HDL 输出给出 xxxxxxx

我正在尝试在 Verilog HDL 中制作一个 64 位移位寄存器。当我在测试台中尝试代码时,我只得到 xxxxxx 作为输出,直到所有位都被移位。我不知道问题是什么。这是我的测试平台代码和结果:

测试台结果

0 投票
1 回答
366 浏览

verilog - Shift Register not working in Verilog HDL

I'm trying to design a 64-bit Shift register in Verilog HDL but when I test the code with a testbench, all the bits are zeros. I don't know where I'm going wrong. Here is my code and the test bench result:

Testbench Result

0 投票
1 回答
658 浏览

c++ - 错误:分配函数 'void digitalWrite(uint8_t, uint8_t)

警告:我是 C++ 新手(以及大多数编程方面的新手),并且正在学习能够为我的 arduino 编写代码的语言

我正在学习如何使用我相信在 C++ 中的 Arduino IDE 使用移位寄存器。

这是代码:

这是错误,我不明白它的含义以及我应该怎么做

0 投票
0 回答
216 浏览

vhdl - VHDL:(数据流和控制单元)计算 log2,表示为无符号 8 位整数

我需要以数据流和控制的形式设计一个数字电路,以计算正数 N 的以 2 为底的对数的整个部分,在 VHDL 中表示为无符号 8 位整数。

基本上我会这样做:

我将使用 8 位整数来表示数字 N,并在右侧错位为 0。那么,位错数减1,等于log2。

我已经创建了实体:

但我在以下过程中苦苦挣扎。

我制作了一个 ASM 图来提供帮助,它是:

设计流程图

而且我也知道我需要一些数据流元素,例如:

  • 对于“reg”,我需要一个移位寄存器,
  • 对于日志,我需要一个计数器寄存器

我只能在理论上看到这一点,我正在努力将所有这些都放入代码中。

有人知道我该如何开始架构吗?

0 投票
1 回答
231 浏览

vhdl - 时钟控制过程中的 1 个周期使能信号

我正在参加 vhdl 在线课程。其中一项实验室工作是:“基于分频器和8位循环移位寄存器实现移位周期为1 s的环形计数器”。

任务说计数器的最高位不能作为移位寄存器的时钟信号(即在ifrising_edge(移位器(MSB))结构中。需要形成使能信号作为选通。

我做了这项工作。结果被接受。

我有一个关于启用移位寄存器的问题。

如果使能信号的持续时间为 1 个周期 clk,那么在上升沿 (clk) 时刻,en 信号电平有可能没有时间变为 = 1。如果是这种情况,则不能保证寄存器移位将在下一秒发生。有没有“正确”的方法来完成这项任务?是这样吗?我的决定正确吗?实验室线索是否具有误导性?

我附上了实现代码、测试台和波形图。

ring_counter.vhd

ring_counter_tb.vhd

测试台波

0 投票
1 回答
543 浏览

verilog - 为什么 Verilog 输出显示 x 和 z 而不是 0 和 1?

我正在建模一个由三个 D 触发器组成的移位寄存器。有三个输入(clk、reset、shiftIn)和一个输出(shiftOut)。复位为同步高电平有效并复位所有触发器。

设计

试验台

当我使用以下模拟它时,我得到以下输出iverilog

为什么我得到 z 和 x 而不是 1 和零?

0 投票
1 回答
42 浏览

arrays - C - 用于显示的 BYTE 操作

这是一个有硬件限制的编程问题。我正在从事“智能”恒温器的逆向工程/黑客项目。(它不是那么聪明,但它能够处理 MQTT 流量。)

我的问题是内置 LED 矩阵显示器。有 5 个 7 段,其中两个也有 DP,显示屏周围有 19 个图标。

通常我会这样解决显示:

但是,这有一个小问题。板上有五个 74HC595 移位寄存器,它们与 LED 相连,如下所示: 在此处输入图像描述

这不是您在设计东西时通常想要做的事情,至少我尝试将其保持为 8 位(1 SR)/ 7 段,并在最后处理其余部分。

正如我已经提到的,这是纯粹的黑客行为,我没有原始代码或原理图。我想就如何操作 7 个字节以将其分解为以下内容寻求一些帮助:

  • 5 个字符
  • 21个布尔变量来设置其他一切

我已经开始考虑一个 56 位长的变量和一个巨大的 switch-case 结构来设置每个字符,但是应该有其他更好的解决方案。

谢谢您阅读此篇!

欢迎所有建议。

0 投票
0 回答
64 浏览

c++ - 在我用我的 arduino 发送一段代码后,移位寄存器停止工作

我已经被这个问题困扰了好几天了,似乎找不到解决办法。问题是,在我向移位寄存器发送命令后,它不再接受更多命令。我正在使用带有 74HC595 移位寄存器的 arduino UNO。问题出现在 manualOverWrite 函数中。

当我运行这段代码时,它会打开一个继电器(引脚 0)并停止。除了移位寄存器之外,我所有的 arduino 代码都可以正常工作。

我为混乱道歉 https://mega.nz/file/NEYFiAAA#Rc4QUpv6cnL-_1NJJrjKe-IaInH_33wGJlHpGlVkySM