Hallo zusammen,
arbeite gerade mit dem R8C und dem HEW. Leider habe ich das Problem,
dass funktionen zwar aufgrufen werden, allerdings am Ende der Fkt nicht
mehr in die Main-Routine zurueckgesprungen wird...
Beispiel
void main(void)
{
test();
//hier kommt man nicht mehr an
}
void test(void)
{
//Bis hier läuft alles
}
jemand ne idee woran das liegen könnte?
Gast
#578806
Vermute mal du hast dir irgendwie deinen Stack vergurkt. Olaf
Gast
#580041
Hallo Andreas,
du hast aber schon eine Endlosschleife eingebaut??
Etwa so:
void main (void)
{
while(1)
{
test();
}
}
void test(void)
{
//Bis hier läuft alles
}
...ansonsten läuft der Programmzeiger 'theoretisch' ins unendliche....
Rudi
vielleicht solltest du beim Beenden deiner Funktion ein return; hinsetzen. weiss nicht, ob das einen Unterschied macht, sollte eigentlich nicht, aber probieren geht ja bekanntlich über studieren. viel spass, gruss Tobias
hatte ich au mal versucht... beim anlegen des projects "use heap memory" raus und schon funktionierts...
Gast
#580394
Tu mal test() über main().
Gast
#580409
Hi, ich habe habe auch so ein seltsames Verhalten feststellen können. Interessanterweise funktioniert ein Rücksprung im Simulator-Mode einwandfrei, verwende ich aber den E8-Emulator im Debugger Mode erfolgt nach Beendigung der "ersten" Funktion (zu einer zweiten bin ich im Emulator-Mode nie gekommen!!!) ein Rücksprung auf eine ILLEGAL INSTRUCTION mit der Bezeichnung UND im Disassembler. Habe es mit der HEW x.42 und x.43 getestet, beide zeigten ein gleiches Verhalten.
Gast
#580419
Moin moin, ich würde mal die sect30.inc untersuchen. Klingt so als wenn der Stackpointer keinen RAM mehr unter seinen Füssen hat. C-Compiler für MCUs erzeugen eigentlich automatisch eine while(1)-Schleife in der main() aufgerufen wird, d.h. wenn main() verlassen wird, wird main() neu gestartet. Und wech...