MPLAB, call/return og interrupts

Nov 30, 2004 4 Replies

Når nu man kun har en stackstørrelse på 8, OG man gerne vil anvende subrutiner BÅDE i hovedprogrammet OG i interruptrutinerne er konklusionen så, at man IKKE anvender call/return ?



Hvis NEJ: Hvordan F..... holder man så styr på stackens størrelse ? Findes der så en smart måde at gemme stacken på ved et interrupt ? Hvad gør man ellers ?



Hvis JA: Det bliver da noget værre rodet kode ! Hvad gør man ellers ?



Mvh KS


Nej, man skriver programmet så hovedprogrammet max. anveder 6 niveauer og intr 2 niveauer.

Det er sjoverer når man kun har 3 niveauer og skal bruge subrutiner i både hovedprogram og intr.

"HKJ" skrev i en meddelelse news:41ac89f2$0$174$ snipped-for-privacy@dtext01.news.tele.dk...

Jeg har nu nøje kontrolleret programmet, og der anvendes max 3 niveauer i hovedprogram og max 2 niveauer i interruptet.

Og vil så verificere dette med følgende:

1) sætte interruptet hhv. hovedprogrammet ud af drift 2) køre programmet 'et stykke tid' - længe nok til alt har været kørt 3) stoppe 4) se hvor mange røde adresser, der er i stack'en

Er det rigtigt opfattet, at disse røde tal viser det maximale antal niveauer, der er 'brugt' ?

HVIS dette er rigtigt - er der noget galt i interruptet, idet dette viser 4 "røde" - og vel dermed 4 niveauer !!! (er det noget med interrupt'et bliver interrupt'et ?) - Der BURDE dog stadig være plads i stack'en.

Sættes hovedprogram og interrupt i drift samtidig får jeg alligevel stackoverflow.

Hvad er det typisk begyndere laver galt her - nogen ideer ?

Mvh KS

Hvor mange stack niveauer bruger du på at starte din interrupt ? Både selve intr call'et og gemmer du nogle registre på stakken?

Jeg kan ikke hjælpe dig med MPLAB da jeg ikke bruger den.

HEJ - Er der ikke en som kender MPLAB der liiiige kan hjælpe med denne her ?

"HKJ" skrev i en meddelelse news:coktdn$ms8$ snipped-for-privacy@news.cybercity.dk...

Hvor mange ????

Jeg mener ikke jeg gemme noget på stack'en - ud over (automatisk) return adresserne

Mvh KS

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required