本帖最后由 entepino 于 2013-3-7 18:17 编辑
RecData: Process
variable TagRecData : std_logic_vector (3 downto 0);
begin
TagRecData(3 downto 0) := axi_gpio_0_GPIO_IO_O_pin(31 downto 28);
case TagRecData is
when "0001" => FixData1(9 downto 0) <= axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
when "0010" => FixData2(9 downto 0) <= axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
when "0011" => FixData3(9 downto 0) <= axi_gpio_0_GPIO_IO_O_pin(9 downto 0);
when "0000" => EnPulseCNT <= '0';
when "1111" => EnPulseCNT <= '1';
when others => null;
end case;
--the data is should be judeged suitable.
end process RecData;
INPulseCNT:process
Begin
IF EnPulseCNT = '0' THEN
清零;
Else
脉冲计数;
If 脉冲数〉0 and 脉冲数〈FixData1 then
Do something1;
If 脉冲数〉FixData1 and 脉冲数〈FixData2 then
Do something2;
If 脉冲数〉FixData2 and 脉冲数〈FixData3 then
Do something3;
Else null;
End if;
end process INPulseCNT;
在sdk中写
GPIO_WriteTest(&Gpio_o,0x10000024); //给FixData1赋值
xil_printf("GPIO_WriteDATA1\r\n");
GPIO_WriteTest(&Gpio_o,0x2000002A); //给FixData2赋值
xil_printf("GPIO_WriteDATA2\r\n");
GPIO_WriteTest(&Gpio_o,0x30000046); /给FixData3赋值
xil_printf("GPIO_WriteDATA3\r\n");
while (1)
{
GPIO_WriteTest(&Gpio_o,0xF0000000); //start
xil_printf("trigger start\r\n");
}
为何FixData1、FixData2、FixData3值接受不到?
|