lcdnumber信号和插槽

时间:2017-05-10 15:59:41

标签: pyqt4 raspbian raspberry-pi3

我已经放在一起(有很多来自本网站的研究问题,谢谢)一些代码,它们将在我的qt creator gui中显示qlcdnumber小部件上的覆盆子pi输入引脚电压。代码运行完美,gui弹出,引脚电压打印到端子(临时),按钮在gui中起作用,其他引脚变为高电平和低电平。我没有得到任何错误,但问题是信号不会显示在gui lcd上。我已经研究了所有我没有成功的东西,我觉得好像我现在在猜它。我很感激任何输入和指导。我学到了很多,但还有很长的路要走,所以任何帮助都会很棒。我正在使用Raspbian和Qt4 / Qt Creator 3.2.1

以下是整个代码,再次感谢您的任何指示:

  // selecting operation of ALU:
reg [3:0] aluop;
  always @(opc)
    begin
      if (opc==0)         aluop = 0; // HLT
      else if (opc==1)    aluop = 1; // ADD
      else if (opc==2)    aluop = 2; // SUB
      else if (opc==3)    aluop = 3; // AND
      else if (opc==4)    aluop = 4; // XOR
      else if (opc==5)    aluop = 5; // SHL
      else if (opc==6)    aluop = 6; // SHR
      else if (opc==7)    aluop = 0; // LDA
      else if (opc==8)    aluop = 0; // LD
      else if (opc==9)    aluop = 0; // ST
      else if (opc=='hA)  aluop = 7; // LDI
      else if (opc=='hB)  aluop = 7; // STI
      else if (opc=='hC)  aluop = 0; // BZ
      else if (opc=='hD)  aluop = 0; // BP
      else if (opc=='hE)  aluop = 0; // JR
      else if (opc=='hF)  aluop = 7; // JL
    end
  // #TODO
  // ALU: 
  //reg [15:0] alu;

  wire [15:0] outputwire;
  finalbitshifter bitshifter(alu_A, outputwire, alu_B[3:0]);

  always @(alu_A or alu_B or aluop)
    begin

    if      (aluop==0)    alu <= alu_A;
    else if (aluop==1)    alu <= alu_A + alu_B;
    else if (aluop==2)    alu <= alu_A - alu_B;
    else if (aluop==3)    alu <= alu_A & alu_B;
    else if (aluop==4)    alu <= alu_A ^ alu_B;   
    else if (aluop==5)    alu <= alu_A << alu_B[3:0];
    else if (aluop==6)    alu <= outputwire;
    else if (aluop==7)    alu <= alu_B;

    $display("OutW: OW %b, ALU %b, ALUA %b, ALUB %b, OPC %b", outputwire, alu, alu_A, alu_B, aluop);

    end  
   endmodule



module finalbitshifter(input1, output1, selector);

  input [15:0] input1;
  input [3:0] selector;

  output [15:0] output1;

  wire [15:0] output_to_second;
  wire [15:0] output_to_third;
  wire [15:0] output_to_fourth;

  wire aolout_to_second;
  wire aolout_to_third;
  wire aolout_to_fourth;

  //bitshift1(in_to_mux, mux_to_out, sel0, aolout);
  bitshift1 bit1(input1, output_to_second, selector[0], aolout_to_second);
  //bitshift2(aolin, in_to_mux, mux_to_out, sel0, aolout);
  bitshift2 bit2(aolout_to_second, output_to_second, output_to_third, selector[1], aolout_to_third);
  //bitshift4(aolin, in_to_mux, mux_to_out, sel0, aolout);
  bitshift4 bit4(aolout_to_third, output_to_third, output_to_fourth, selector[2],aolout_to_fourth);
  //bitshift8(aolin, in_to_mux, mux_to_out, sel0);
  bitshift8 bit8(aolout_to_fourth, output_to_fourth, output1, selector[3]);


endmodule 

1 个答案:

答案 0 :(得分:0)

在一个不同的帖子中,eyllanesc为我设置了信号和插槽,我需要向我的gui lcd显示信号,但我不太了解它,知道他做了什么。过去几天我一直在读这篇文章,最后看看他做了什么。一切都有效,就像我想要的那样。

对于任何可能有同样困惑的人,这是我的主要问题:

def onChangeValue(self, values):
o2_volts = values

我是如此陌生,以至于我没有意识到我需要实际用我的指定值代替&#34;值&#34;在上面的代码中。有点尴尬,但我想是学习的一部分。另一个问题是:

o2_concentration = QtCore.pyqtSignal(int)

我没有意识到这一点,但是在我修正了&#34;值&#34;之后,液晶显示器正在工作但读数为0,我认为它不起作用。使用光电管来获得电压,当打印到终端时我得到.25但是对于液晶显示器来说是0。再次成为新人,我没有想到(int)对我想要的不正确。将其更改为(浮动)修复了问题。一切都很好。

我的剧本自原始帖子以来一直在增长,但如果有人想看到它,我会很乐意发布它。

这是一个很棒的网站。谢谢你的一切。