全新的VHDL,熟悉一切。
当按下按钮时,我让我的FPGA打开一个LED (下面的代码),但是这个按钮必须按下,LED才能继续工作。当按钮被按下和释放时,我希望LED能打开并保持打开(当再次按下时关闭),但我对这是如何做到的感到困惑。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ButtonLED is Port (BUTTON: in STD_LOGIC:='1';
我有Xilinx Spartan6和next VHDL代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity Switches_Leds is
Port (switch_0: in STD_LOGIC;
LED_0 : out STD_LOGIC);
end Switches_Leds;
architecture Behavioral of Switches_Leds is
begin
LED_0 <= switch_0;
end;
下面是我的用户
我在实习,我的公司希望我学习vhdl为fpga。我正在使用格子菱形编码和编译我的项目和准模拟。我也有一个小板的训练: MachXO3LF按格。
我做了一个项目:当我按下一个按钮,一个led是照明的2s,然后褪色。(工作在模拟,但与卡,因为反弹的效果。
我的导师给了我一个新的项目:写一个代码和一个测试平台,以避免花哨效果,当我按下按钮时,led是2s照明,当我再次按下按钮时,10s就没有动作了。
我不知道如何用我的开始代码来避免弹跳的效果.弹跳效果是误触发或多次触发的结果,如多次按下按钮。
这是我的密码
use ieee.std_logic_1164.ALL;
use ieee.numeric_
我正在学习对VHDL进行编程,并尝试在FPGA (XilinxSpartan-6评估委员会)上实现它。到目前为止,我已经看过“入门”指南,这是无用的-因为它只是告诉我,如果你知道你在做什么(我不知道)一个FPGA的潜力有多大。然后,我看到通过原始的VHDL代码、约束文件和最终通过iMPACT/JTAG对其进行编程。
所以我更进一步,做了一个按钮,当我按住LED时,它也能工作,但是当我按下这个按钮时,我的LED矢量打开,我必须为每个索引声明它们的引脚位置,如下所示;
NET "LED(0)" LOC = "D17";
NET "LED(1)" LO
微控制器: ATmega328P
我遇到了以下代码的问题。它是用来控制发光二极管灯与一个按钮连接到PB0。
有两个州:
state_0 -所有的LED都关了。
state_1 -所有的LED都开着。
#include <avr/io.h>
int main(void)
{
DDRB = 0x00; //set PINB as a input port for receiving PB0 signal
DDRD = 0xFF; //set PORTD as a output port for driving the LEDs
un
我正在尝试让我的树莓派将来自外部传感器的数据打印到显示器上,同时将其保存到.txt中。 当通过ssh在shell中启动脚本时,我所做的一切都运行得很好。但这会在关闭shell后停止脚本。 所以我试着把它放在rc.local文件中,以便在启动时启动它。但这只能起到一半的作用,因为它在显示屏上显示数据,但不会将数据保存到文件中。 import grovepi
from grovepi import *
from grove_rgb_lcd import *
from time import sleep, strftime
from math import isnan
#port defin
我是VHDL的初学者,试着在我的主板上写一段从0000到0099的代码(BASYS-3),这取决于我按下的开关。问题是,我需要一个开关来关闭程序,4个开关用来显示最右边的十进制数字,另外4个开关用来显示“十位数”(就像17个数字中的1个)。电路板上有更多的开关(总共16个),但我认为4是最符合逻辑的,因为十进制的二进制编码(比如9= 1001在二进制中是最大的)。
我不知道该使用什么gates,所以我所做的工作非常有限,很抱歉。
process(bcd_display)
begin
case bcd_display is
when "0000" =>
我正在试着做一个简单的程序,当一个按钮被按下时,打开一个LED。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity TurnOn is
Port ( sig : in STD_LOGIC;
led : out STD_LOGIC);
end TurnOn;
architecture Behavioral of TurnOn is
(Line 39) process(sig)
begin
if sig = '1' then
led <= '1';
(Line 44) else
led
我目前正在做一个迷你项目,让我的按钮切换一个闪烁的LED,意思是:当我按下按钮,我希望LED保持闪烁,直到我再次按下按钮。
我设法不眨眼地切换LED (当我按下按钮时,LED灯亮了,当我再次按下该按钮时,LED开关关闭,但没有闪烁)。
我在下面附加了我的代码,我的逻辑是基于跟踪当前按钮状态和前一个按钮状态,我认为这是正确的逻辑(但是如果我错了,请批评/纠正我!)导致LED输出状态的改变,所以我不确定我的思维/代码有什么问题。我现在遇到的问题是,LED只能闪烁两次(根据我在void循环中编写的代码行),但在我希望它停止之前,它不会一直闪烁(我能做什么来执行这个操作?)
const int led
所以我下午一直忙于处理我的编程作业,而我似乎无法解决下面代码中的问题。
练习是,我需要通过按下一个按钮来切换LED。在我的代码中,当我单击按钮时,LED亮起,但当我再次单击按钮时,LED不会熄灭。
int pinButton = 5;
int LED = 10;
int currentState;
int previousState;
void setup() {
Serial.begin(9600);
pinMode(pinButton, INPUT);
pinMode(LED, OUTPUT);
}
void toggleLed(){
if (previousState
我有一个VHDL实体定义如下:
entity RealEntity is
port(
CLK_50MHZ: in std_logic;
LED : out std_logic_vector(3 downto 0)
);
end RealEntity;
如果我也有LED<0>..LED<3>和CLK_50MHZ的UCF条目,那么我可以直接编译这个实体。
然而,我实际上没有一个50 MHz时钟在我的板上,所以我必须使用时钟管理芯片。为此,我使用了Xilinx工具,它有一个向导来添加DCM核心,然后我将它封装在另一个VHDL实体中,以便于使用:
e
我不是arduino编程的专业人士,我有一个关于草图的问题。我需要代码来控制按钮继电器。我有3个按钮,3个发光二极管和2个继电器。当按下1个按钮时,选择第一个led,如果按两次,则选择第二个led。按下第二个按钮一次,然后选择第一个继电器,如果按两次,则选择第二个继电器,并在结束时选择开始按钮,以启动所有这些命令,然后点亮第三个led。请帮帮我!这是我的代码:
int button1=2;
int button2=3;
int button3=4;
int relay1=8;
int relay2=9;
int led=5;
int led2=6;
int led3=7;
int button
我是vhdl的新手,我正在努力了解我是否可以在项目中使用它。
我创建了一个项目,看看如何实现上拉电阻,并看看它们是如何工作的。我一定是做错了什么。
我对连接的约束条目是
net "rx_i" PULLUP;
net "rx_i" loc="p88";
该项目的流程如下
Process (clk_i)
type state_type is (qInit, qZero, qZero1, qZero2, qZero3, qZero4);
variable state: state_type:= qInit;
Begin
if (rising_ed
所以我有一个蓝牙模块,我已经为它创建了一些代码,所以当我按下按钮1,它打开了led,当我按2,它关闭了led,3应该使led不断闪烁。一切都工作得很好,除了当我推动3 led闪烁一次,然后停止。我能对代码做什么,使它一直闪烁,直到我再次按下按钮1或2?
char LED = 0;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600); // Opens Serial port
}
void loop() {
if (Serial.available()> 0){
LED = Serial
我正在尝试创建一个简单的按钮延迟的树莓派。我有连接到LED的GPIO输出16和作为按钮的输入36。我只想快速地按下按钮,它会让LED保持亮起10秒钟。
代码如下:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
import time
GPIO.setwarnings(False)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(36, GPIO.IN)
while True:
if GPIO.input(36):
GPIO.output(16,False)
else:
G
我创建了一个程序,当端口a上的按钮被按下时,当按下端口a上的按钮时,当led从左向右或从右向左闪烁时,可以根据端口a和端口b上按下的按钮来切换led灯。当按下按钮3时,led开始从左向右弹起,并重新设置,并永远继续执行相同的操作。当按下按钮0时,它反转方向并从右向左移动。当按钮4被按下时,它再次反转方向,现在它从左向右移动。我的问题是,一旦按下按钮4,我就不能通过按下按钮0再次反转方向。我该如何修改代码以使其正常工作?使用PIC16F877A和pic开发板
#include <system.h>
void delay(int j) {
int i;
int x = 8600;
w
const int buttonPin = 4; // the port number of the pushbutton pin
const int green = 13; // the port number of the LED pin
const int red = 12;
const int blue = 11;
void setup() {
pinMode(green, OUTPUT); // initialize the LED pin as an output:
pinMode(red, OUTPUT);
pinM
我正在使用Arduino的esp32。我想做的是:如果我按下按钮一次,它应该按下"I Serial.print once“如果我按两次按钮,它应该按下"I Serial.print Serial.print” 我正在使用attachInterrupt()函数,但是当我按下按钮两次时,我不知道如何告诉代码如何读取它。我的代码还会在检测到我按下按钮时打开LED。 以下是我到目前为止所取得的成果: int boton = 0;
int led = 5;
int valorBoton; //value of the button, if it off(1) or on (0)
u