Witam serdecznie,
Od kilku dni przerabiam sobie książkę "Mikrokontrolery PIC w praktycznych zastosowaniach".
Korzystam z najprostszej wersji programatora JDM (wkrótce planuję zakup Pickita albo zrobienie sobie Brennera <jeszcze nie wiem, co będzie lepsze>). Używam aplikacji IC-Prog 1.06C.
Dzisiaj chciałem trochę poeksperymentować z wyświetlaczem LCD (2x16). Niestety podczas 'zabawy' z kodem musiałem jakoś zablokować mikrokontroler. Opiszę dokładnie swoje kroki:
- najpierw przetestowałem oryginalny listing programu z książki - wszystko ładnie śmiga
- później zacząłem eksperymentować:
Jest tam taka funkcja:
Nie bardzo wiem dlaczego do zmiany indeksu tablicy użyto zmiennej typu char. Ba! Nie widziałem nawet, że chary można inkrementować! W związku z czym na próbę zmieniłem typ na int. Dodatkowo, żeby nie męczyć się z ręcznym liczeniem znaków w słowie, zrobiłem taką funkcję:
Wiem, że popełniłem tutaj błąd - źle przekazuję tablicę do funkcji. MPLAB jednak nie wyrzucił błędu.
Ostatecznie, wywołanie funkcji wyświetlającej wyglądało tak:
Tak zmodyfikowany program wgrałem do mikrokontrolera. Na wyświetlaczu jednak nic się nie pojawiało. Cóż, pomyślałem, że te inty jednak tam nie mogą być. Wróciłem więc do pierwotnej wersji programu. Niestety, gdy próbuję go wgrać, to podczas weryfikacji pojawia się 'Błąd weryfikacji przy adresie 0000h'. Co więcej, mam jeszcze jeden, taki sam, czysty mikrokontroler (zamówiłem sobie 3 sztuki u Microchipa
). No i na niego można wgrać program bez problemów.
Pytanie zasadnicze - co się mogło stać? Jak zdiagnozować usterkę? Czy da się to naprawić? (przyda mi się taka wiedza na przyszłość).
PS. Jakby co to załączam cały, oryginalny kod programu.
Od kilku dni przerabiam sobie książkę "Mikrokontrolery PIC w praktycznych zastosowaniach".
Korzystam z najprostszej wersji programatora JDM (wkrótce planuję zakup Pickita albo zrobienie sobie Brennera <jeszcze nie wiem, co będzie lepsze>). Używam aplikacji IC-Prog 1.06C.
Dzisiaj chciałem trochę poeksperymentować z wyświetlaczem LCD (2x16). Niestety podczas 'zabawy' z kodem musiałem jakoś zablokować mikrokontroler. Opiszę dokładnie swoje kroki:
- najpierw przetestowałem oryginalny listing programu z książki - wszystko ładnie śmiga
- później zacząłem eksperymentować:
Jest tam taka funkcja:
Code: c
Nie bardzo wiem dlaczego do zmiany indeksu tablicy użyto zmiennej typu char. Ba! Nie widziałem nawet, że chary można inkrementować! W związku z czym na próbę zmieniłem typ na int. Dodatkowo, żeby nie męczyć się z ręcznym liczeniem znaków w słowie, zrobiłem taką funkcję:
Code: c
Wiem, że popełniłem tutaj błąd - źle przekazuję tablicę do funkcji. MPLAB jednak nie wyrzucił błędu.
Ostatecznie, wywołanie funkcji wyświetlającej wyglądało tak:
Code: c
Tak zmodyfikowany program wgrałem do mikrokontrolera. Na wyświetlaczu jednak nic się nie pojawiało. Cóż, pomyślałem, że te inty jednak tam nie mogą być. Wróciłem więc do pierwotnej wersji programu. Niestety, gdy próbuję go wgrać, to podczas weryfikacji pojawia się 'Błąd weryfikacji przy adresie 0000h'. Co więcej, mam jeszcze jeden, taki sam, czysty mikrokontroler (zamówiłem sobie 3 sztuki u Microchipa

Pytanie zasadnicze - co się mogło stać? Jak zdiagnozować usterkę? Czy da się to naprawić? (przyda mi się taka wiedza na przyszłość).
PS. Jakby co to załączam cały, oryginalny kod programu.