Witam.
Zastanawiam się czy istnieje coś takiego. Chodzi konkretnie o program na PC, który symulowałby wyświetlacz LCD. Przy czym sygnały sterujące przesyłane koniecznie przez lpt. Nigdzie nie mogę znaleźć czegoś podobnego. Znalazłem jedynie symulator sterowany przy pomocy myszki: http://www.geocities.com/SiliconValley/Circuit/8882/djgfxlcdsim/djgfxlcdsim.html Potrzebuje takiego symulatora po to aby budować system elektroniczny bez rzeczywistego lcd, a lcd kupie dopiero jak wszystko będzie działać.
Pozdrawiam
Zbigel
http://members.lycos.co.uk/azbigel/
PrAli - jaki to ma kontroler? Może masz namiar na pdf?
Mój projekt jest skierowany dla platformy Windows XP, gdzie dostęp do portów jest domyślnie zabroniony (głównie o to chodzi), co daje możliwość przechwycenia rozkazów:
Code:
in al,dx
out dx,al
zastępując je własnym kodem, przeźroczyście dla programu który operuje na portach.
Założyłem że kontrolerem jest HD61202U, port 888 reprezentuje dane, a port 889 linie DI, RW, E, CS1, CS2, CS3, RESET, ADC.
Jestem już w połowie, część odpowiadająca za komunikację wirtualnego kontrolera z portem LPT jest gotowa (flagi BUSY i RESET nie są obsługiwane).
Pozostało wybranie formatu w jakim wirtualny wyświetlacz ma reprezentować siebie - może to być np. automatyczne rysowanie do HDC z zadaną częstotliwością, lub jako uchwyt bitmapy DIB.
Obsługa: Wystarczą dwie funkcje: CreateLCD i DeleteLCD. CreateLCD automatycznie przekieruje instrukcje in/out dla portów 888 i 889 na własny kod. CreateLCD posłuży też do wstępnej konfiguracji:
- numery portów (domyślnie 888, 889)
- przesłanie HDC, pozycji i rozmiaru gdzie rysować wyświetlacz, lub pobranie adresu bajtów matrycy/bitmapy.
DeleteLCD zwolni pamięć i przywróci instrukcje in/out do stanu sprzed użycia ostatniego CreateLCD.
Napisz co o tym sądzisz, może masz jakiś pomysł na graficzną reprezentację danych?
// EDIT
Aktualna wersja demo wyświetla się na desktopie. Poniższy kod jest tymczasowo wbudowany w kontroler:
Docelowo planuję umieścić kontroler w dll, a do funkcji CreateLCD dodać wskaźnik na strukturę z parametry inicjującymi, które w pozyższym kodzie są ustawiane poprzez lcd->x = y;
Jak widać, można ustawić rozmiar pixeli i odstęp pomiędzy nimi, kolor tla i (nie)aktywnego pixela.