Tekkis järgmine probleem - kui katkestus tekib ajal, kui täidetakse programmimälu teisel leheküljel asuvaid alamprogramme, sattub program counter kuhugi teise lehekülje esimese alamprogrammi algusesse.
MCU (PIC16F690i) töö ühtlustamiseks ja kella-rakenduse lihtsustamiseks on põhiprogrammtsükli alustamise tingimuseks ühe biti seadmine üheks. Iga 1 ms järel saab TMR2 täis, kutsutakse katkestuse alamprogramm, milles seatakse bitt üheks ja põhiprogrammi täitmine võib alata.
Kõik toimis, kuni lisasin programmimälu teisele leheküljele (h '0900'...) alamprogrammi USART-i kaudu andmete saatmiseks. Keset selle täitmist saab 1 ms täis.
Kuidas saaks teiselt leheküljelt katkestuse teenindamise alamprogrammini?
Proovisin ,,org 0x0004" ja ,,goto ISR" vahele mahutada ,,pagesel ISR", kuid kompilaator andis veateate (,,could not fit into absolute section").
MCU (PIC16F690i) töö ühtlustamiseks ja kella-rakenduse lihtsustamiseks on põhiprogrammtsükli alustamise tingimuseks ühe biti seadmine üheks. Iga 1 ms järel saab TMR2 täis, kutsutakse katkestuse alamprogramm, milles seatakse bitt üheks ja põhiprogrammi täitmine võib alata.
Kõik toimis, kuni lisasin programmimälu teisele leheküljele (h '0900'...) alamprogrammi USART-i kaudu andmete saatmiseks. Keset selle täitmist saab 1 ms täis.
Kuidas saaks teiselt leheküljelt katkestuse teenindamise alamprogrammini?
Proovisin ,,org 0x0004" ja ,,goto ISR" vahele mahutada ,,pagesel ISR", kuid kompilaator andis veateate (,,could not fit into absolute section").
Comment