To przynajmniej dobrym tropem szedem
Jak sprawdzic wyświetlacz 3310 ?
To znaczy tylko w swojej procedurze wyślij tą dodatkowa komendę (&h05) podczas inicjacji wyświetlacza i tyle. U mnie ta procedura to po prostu programowy SPI.
Kod: Zaznacz cały
'Ta procedura to właściwie nic innego jak programowy SPI.
Sub Lcd_out(byval Dane As Byte)
Local I As Byte
Reset Lcd_clk ' zero na CLK
For I = 1 To 8
Lcd_data = Dane.7 'wystaw Bit 7 Na Port
Set Lcd_clk 'ustaw CLK
Waitus Lcd_speed 'odczekaj, LCD_speed to stała określająca czas miedzy zboczem narastającym a opadającym sygnału CLK.
Reset Lcd_clk 'zeruj CLK
Shift Dane , Left , 1 'przesun dane o 1 w lewo
Next I
Reset Lcd_clk 'tu musi być rst lini CLK.
End Sub
Ostatnio zmieniony 02 lip 2010, 16:48 przez kayron, łącznie zmieniany 1 raz.
Nie wiem, czy idziemy tym samym tokiem rozumowania, ale o odnajdywanie drogi tutaj chodzi, więc próbujmy dalej
:
Moje procedura inicjalizacji:
Już po niej samej wyświetlacz powinien wyświetlić jakieś przypadkowe wartości z pamięci, bo nie przeprowadzam jeszcze czyszczenia. Oczywiście je wyświetla, ale zaraz znikają. Nie wywołuje jeszcze żadnej funkcji, która wysyła na LCD przez programowe SPI cokolwiek. Mam samą inicjalizaję i podobno powinno to dać jakiś statyczny obraz czegokolwiek
Przy sprzętowym SPI sprawa wygląda identycznie - ten sam problem. Próbowałem zmieniać sposób multipleksowania, ale nic to nie dało :\ Może wizja wyrzucenia go do śmietnika zmusi go do działania :]
Mam nadzieje, że nie zakręciłem za bardzo.
Moje procedura inicjalizacji:
Kod: Zaznacz cały
// Inicjacja LCD
void lcd_Init(void)
{
// Zerowanie. Według dokumentacji wystarczy 100ns. Na wszelki wypadek niewielkie opóźnienie.
PORT(LCD_PORT) &= ~(1<<LCD_RES);
asm volatile("nop\n\t nop\n\t"::);
PORT(LCD_PORT) |= 1<<LCD_RES;
// Wysyłanie sekwencji startowej
lcd_Command(LCDC_FS|LCDC_FS_EXTENDED); // Komendy rozszerzone
lcd_Command(LCDC_VOP|72); // Kontrast
lcd_Command(LCDC_TEMP|2); // Korekcja temperaturowa
lcd_Command(LCDC_BIAS|3); // Tryb multipleksowania
lcd_Command(LCDC_FS|LCDC_FS_BASIC|LCDC_FS_HORADDR); // Komendy standardowe, tryb adresowania
lcd_Command(LCDC_DC|LCDC_DC_NORMAL); // Włączenie trybu normalnego
lcd_GoTo(0,0);
}
Mam nadzieje, że nie zakręciłem za bardzo.
Na C to akurat słabo się znam więc ciężko mi będzie doradzić jak to wstawić. Musisz sam pokombinować, albo doczytać w kursie jak to działa.
Prawie na pewno jest to brak tej jednej dodatkowej komendy. Ja też miałem różne dziwi z wyświetlaczem. Natomiast nie jest powiedziane że cokolwiek się wyświetl, bo matrycę można programowo wyłączać, wtedy będzie pusta. Może to być jakiś błąd w programie, nie ta wartość czy coś.
Prawie na pewno jest to brak tej jednej dodatkowej komendy. Ja też miałem różne dziwi z wyświetlaczem. Natomiast nie jest powiedziane że cokolwiek się wyświetl, bo matrycę można programowo wyłączać, wtedy będzie pusta. Może to być jakiś błąd w programie, nie ta wartość czy coś.
Witaj kayron.
Napisałeś, że programujesz w Bascomie, więc mam do Ciebie prośbę czy możesz wysłać mi, na priv jakikolwiek kod źródłowy na Atmega8 i LCD 3310 w Bascom. Szukałem w sieci czegokolwiek, ale nie znalazłem nic pewnego. W prawdzie jest coś, ale pod Atmega128, w którym trzeba parę linijek zmienić itp. Ja potrzebuję sprawdzonego działającego kodu, który wyeliminuje mi możliwość błędu programowania i pozwoli sprawdzić poprawność schematu. Dlaczego proszę o źródłowy? Ponieważ chciałbym, kiedy już mi się uda coś wyświetlić na LCD pozmieniać coś i zrozumieć, co i jak. Oczywiście kod może być jakikolwiek było by super gdyby był prosty.
Pozdrawiam
Tomek
Napisałeś, że programujesz w Bascomie, więc mam do Ciebie prośbę czy możesz wysłać mi, na priv jakikolwiek kod źródłowy na Atmega8 i LCD 3310 w Bascom. Szukałem w sieci czegokolwiek, ale nie znalazłem nic pewnego. W prawdzie jest coś, ale pod Atmega128, w którym trzeba parę linijek zmienić itp. Ja potrzebuję sprawdzonego działającego kodu, który wyeliminuje mi możliwość błędu programowania i pozwoli sprawdzić poprawność schematu. Dlaczego proszę o źródłowy? Ponieważ chciałbym, kiedy już mi się uda coś wyświetlić na LCD pozmieniać coś i zrozumieć, co i jak. Oczywiście kod może być jakikolwiek było by super gdyby był prosty.
Pozdrawiam
Tomek
Proszę, nie pamiętam co wyświetli, chyba znaki, ale powinien działać. A i zmień sobie na początku definicje procesora na M8. A tak przy okazji to macie tu od razu polskie znaki, a tablica ASCII jest modyfikacja tej z wyświetlacza alfanumerycznego opartego na układzie HD, Europa środkowa więc i Rosyjski tam jest. Pierwotnie było to szykowane na elektroniczny notatnik (ściągę) na N3310 i z kartą MMC. Ale nigdy tego nie skończyłem.
PS. Usunąłem kod bo był za długi, ale nie wiem czemu nie chce mi się wysłać załącznik

PS. Usunąłem kod bo był za długi, ale nie wiem czemu nie chce mi się wysłać załącznik