|
楼主 |
发表于 2010-1-14 10:41:41
|
显示全部楼层
RDDATA: process(RD_int,Clk50M,ADDRESSREG)
begin
if (RD_int='1') then
RdAddress_int<="00000000000";
elsif rising_edge(Clk50M) then
IF (ADDRESSREG="00000010" ) THEN
DataToMCU<=ErrData_R;
IF (RdAddress_int(9 downto 0)=PixelCnt_int ) THEN
RdAddress_int(10 downto 0)<=(others=>'0');
ELSE
RdAddress_int<=RdAddress_int+1;
END IF;
END IF;
--NULL;
--END CASE;
END IF;
--END IF;
END process RDDATA;
在这个语句中我用逻辑仪看了下RdAddress_int地址累加不到PixelCnt_int设定的地址。
单片机的程序为:
/*********************MCU Read FPGA Registers*************************/
unsigned char RFPGA(unsigned char nPort)
{
unsigned char nVal;
unsigned char xdata *exAddress;
exAddress=0xff00+nPort;
nVal = *exAddress;
return nVal;
}
/*********************MCU Write FPGA Registers*************************/
void WFPGA(unsigned char nPort, unsigned char nVal)
{
unsigned char xdata *exAddress;
exAddress=0xff00+nPort;
*exAddress = nVal;
}
/*********************LocSetting**************************************/
void LocSetting(void)
{
RegData =(char)PixelCnt;
WFPGA(0xff,RegData);
RegData =(char)(PixelCnt>>8);
WFPGA(0xff,RegData);
}
.
.
. |
|