PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei interrupt und sprung im programm. lcd problem??



raptor_79
31.05.2005, 23:55
hallo.

folgendes...
ich hab eine schleife, in der mein programm 2 sensoren abfragen soll.
wenn ich jatzt einen interrupt auslöse, dann soll er in die isr springen, und von da aus in einen weiteren programmteil. kann es jetzt sein, daß er eben diesen sprung macht, und danach die schleife weiter ausführt?? soll er aber nicht, sondern in der sprungadresse weiterarbeiten. kann man das erzwingen??

weil, in der schleife geb ich was auf dem lcd aus, und wenn er den sprung gemacht hat auch wieder in der subroutine.
jetzt seh ich nur irgend ein zahlen/buchstabengewäsch.. was könnte der grund sein??
jemand eine idee??

hilfe ist jetzt echt notwendig...

danke an euch schon mal...

chr-mt
01.06.2005, 00:03
Hi,
wegen des LCDs schau mal hier:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=919

Gruß
Christopher

raptor_79
01.06.2005, 00:09
lcd geht ja... nur nicht bei dem oben beschriebenem problem. eigentlich will ich nur wissen, ob es sein kann, daß sich der interrupt in irgend einer form auf das prg. auswirkt. weil, in einer anderen version des programms OHNE interrupt, geht alles super. nur nicht mit interrupt. wenn ich die andere version verwende, und nichts an der hardware ändere, alles super! übrigens, ich verwende INT0 auf einem ATmega32 bei 4.9152Mhz. wenn das was hilft.

PicNick
01.06.2005, 10:59
Setzte mal Hw-Stack SW-Stack und Frame größer, die default werte sind etwas knapp
Darüber hinaus solltest du dein Programm mal anschauen lassen. Auch der Bascom macht nur das, was man ihm sagt (und nicht das, was man meint)

raptor_79
01.06.2005, 18:21
welche werte sind da empfehlenswert? also für HW-stack und soft-stack??
und framegröße??
verwende eben die defaults.

hab das prog. mal im sim getestet, und der sagt tatsächlich was von wegen stacks.

hab mal an den werten gedreht, und es scheint zu laufen. eine empfehlung des gängigen werte wäre super, bzw. ein leitfaden.
was ist, wenn ich die werte zu hoch ansetze?? also alles auf max?

PicNick
01.06.2005, 20:11
Also ich hab HW 128, SW 256 Frame 64, allerdings für ein recht exzessives Programm.
HELP: BasCom Help--> Index --> $DBG u. STCHECK

raptor_79
01.06.2005, 20:40
was hast du für einen controller??
ich hab einen atmega 32 16mhz

PicNick
02.06.2005, 09:16
Ich hab detto, mit 8 Megaschweinen
Beispiel: Bei einem Interrupt pusht der BasCom alle Register + SREG und vernudelt daher ca 32 Byte vom HW-Stack
Und wenn das darüber steigt, beginnt er den SW-Stack zu vernichten (keine kontrolle)