Hallo,
ich verwende einen Lattice ECP2 mit integriertem Mico32 Kern sowie ein
LCD mit HD44780 Controller.
Ich habe bis jetzt mit delays gearbeitet, möchte nun allerdings auf die
Abfrage des Busy Flags umsteigen.
Ich habe im Mico32 in der Platform ein Signal "DB7" als "Both Input and
Output" definiert, dann bekomme ich zwei Signale
1 | ; DB7PIO_BOTH_IN : in std_logic_vector(0 downto 0)
|
2 | ; DB7PIO_BOTH_OUT : out std_logic_vector(0 downto 0)
|
die ich so an meinen physikalischen Ausgangspin DB7 am FPGA verdrahte.
1 | ,DB7PIO_BOTH_IN(0) => DB7
|
2 | ,DB7PIO_BOTH_OUT(0) => DB7
|
Nun möchte ich das BusyFlag abfragen, die Enable Leitung wird getoggelt,
RW ist auf high und RS ist auf low:
1 | while (busy_flag)
|
2 | {
|
3 | *((volatile unsigned char *)(lcd_E->base)) = 1;
|
4 | busy_flag = *((volatile unsigned char *)(lcddb7->base));
|
5 | *((volatile unsigned char *)(lcd_E->base)) = 0;
|
6 | }
|
allerdings bleibt das Programm hier stehen.
Muss ich die Richtung des Pins umschalten um ihn lesen zu können, oder
bin ich hier komplett auf dem Holzweg?
Vielen Dank
Peter