Trochę tła. Używam MPLABx z PicKit2 do programowania różnych typów zdjęć. W tej chwili jest to 16F887. Staram się trzymać łańcucha narzędzi Hi-Tech PICC Lite, ale coraz bardziej jestem niezadowolony z tego, jak niektóre rzeczy się składają. Operacje, które powinny być względnie szybkie (biorąc pod uwagę cykl instrukcji 500ns przy 8 MHz), ukończenie zajmuje do 20us. Zacząłem więc wstawiać własny kod ASM, aby sobie z tym poradzić.
Mam jednak trudności ze zrozumieniem mapy pamięci zawartej w arkuszu danych na stronie 20.
Pamięć programu rozpoczyna się o 0005 godz. Jednak strona 23 pokazuje adresy plików rejestrów specjalnego przeznaczenia, takich jak na przykład port A. Adres portu A jest wyświetlany jako „05h”.
Nie wiem, jak odróżnić lokalizację pamięci 0005h od rejestru specjalnego przeznaczenia, który znajduje się o godzinie 05h. Jak odwołać się do rejestrów specjalnego przeznaczenia?
Zrobiłem dość obszerne programowanie asemblera dla starszych układów HC11, ale to moje pierwsze przedsięwzięcie w kodowaniu PIC asm. Każda pomoc tutaj będzie mile widziana.
Co powiedział Dave, ale chcę również zauważyć, że pamięć programu zaczyna się od 0, a nie 5. Po zresetowaniu procesor ustawia komputer na 0 i zaczyna działać. W przypadku przerwania procesor skutecznie wywołuje połączenie do lokalizacji 4 i wyłącza bit włączania globalnego przerwania. Lokalizacja pamięci programu 5 nie jest wyjątkowa, poza tym będzie to druga instrukcja procedury przerwania, jeśli masz procedurę przerwania.
źródło