Witam!
Korzystam z kodu programu z płyty dołączonej do niebieskiej książki pana Mirka. Napotkałem przedziwny problem przy próbie wypisania na wyświetlacz znaków zdefiniowanych w pamięci DDRAM. Otóż komenda:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
nie działa, tzn. na wyświetlaczu nie wyświetla się żaden znak. Natomiast komenda:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wyświetla prawidłowo znak "ó", z czego wniosek że znak został prawidłowo zapisany w pamięci DDRAM.
Aby sprawdzić jakie adresy mają znaki wysyłane na wyświetlacz, zmodyfikowałem funkcję lcd_char w ten sposób, aby wyświetlała ona prawidłowy znak tylko dla tych zdefiniowanych przez użytkownika, a dla pozostałych znak zapytania. Po wielu próbach ciało funkcji wygląda tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jak widać adresy są ujemne i zaczynają się od -128 dla znaku "Ł", który powinien mieć przecież adres 0x00. Dodam że korzystam z ATmegi644PA i AtmelStudio.