Jako, że mam chwilę czasu i mi się nudzi (nie mam weny twórczej) postanowiłem trochę pomóc i przetłumaczyć część programu. Nie będzie tego dużo bo oprócz nudzenia się to mam lenia ale na początek zawsze coś, a potem będę w miarę możliwości tłumaczył dalej
No to od początku
Na początku mamy ustawienie zmiennych, z których korzysta program. Instrukcja asemblera EQU to nic innego jak przypisanie danej cyfry/liczby do zmiennej
np
.EQU jasiu = 400
jest równoznaczne z C
int jasiu=4;
Czyli w tej części mamy przypisanie zmiennych
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Następnie mamy segment danych .DSEG i segment danych EEPROM .ESEG
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
To czas na segment kodu czyli miejsce gdzie znajduje się właściwy program. Na początek zgodnie z opisem datasheeta str 44 tablica wektorów przerwań czyli informacje co powinno się wykonać (w tym wypadku skok do odpowiedniej funkcji ale może też być instrukcja RETI - powrót z przerwania)
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Czyli teraz czas na pierwszą funkcję wywoływaną zgodnie z opisem z PDF po resetowaniu procesora. W tym wypadku jest to funkcja nazwana RESET, a skok do niej mamy ustawiony w tablicy wektorów przerwań.
OBSŁUGA RESET. Czyli co ma się uruchamiać zaraz po reseciejęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ustawienie adresu stosu na koniec programujęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
USTAWIENIE Przerwań i tym podobnych. Zgodnie z opisem obok i na str 64 język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tego nie znalazlem w pdf język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ustawienie przerwań zegara zgodnie z opisem na stronie 70 PDF'ajęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Inicjalizacja Timerajęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Inicjalizacja timera zgodnie z opisem w komentarzach i str 70 pdf
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Inicjalizacja UART str 130 pdf'ajęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ustawienie bitu 4 PORTD oraz bitu 4 DDRD na 1 patrz troche wyżej inicjalizacja zmeinnychjęzyk asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Pozostałe funkcje obsługi przerwań. W tym wypadku tylko powrót bez robienia czegokolwiek (RETI)
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
No i przyszedł czas na opis pętli głównej
main programu. Tym razem opisy daje jako komentarze żeby co chwila nie przerywać listingu.
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na dzisiaj wystarczy. Mam nadzieje, że choć trochę pomogłem. Późno jest, a wczoraj byłem na weselu więc jak ktoś wyłapie jakiś błąd to nie krzyczeć tylko poprawić