Hallo, kennt sich hier jemand mit dem ISD51 Debugger von der Fa. Keil aus? Ich versuche meinen Mikrokontroller AT89C51AC3 mit dem ISD51 zu debuggen, aber in dem Debugging-Modus bleibt mein Programm stehen und will nicht aus der Funktion „ISDwait()“ raus springen. Auf diese Weise funktioniert das Debuggen: main(){ … initUART(); ISDinit(); … while(1){ ISDcheck(); … } } Problem: Auf diese Weise funktioniert das Debuggen nicht: main(){ … initUART(); ISDwait(); // hier bleibt das Prog. immer stehen!!! … while(1){ … } } In der Funktion „ISDwait()“ wird (über die RS232 Schnittstelle) der Wert 0xA5 von meiner IDE (Keil Debugger) erwartet, diesen konnte ich mit Hyperterminal empfangen. Wenn dieser HEX-Wert vom Mikrokontroller empfangen wird, muss folgendes passieren: - Die Kommunikation mit der IDE ist aufgebaut - ISD wird initialisiert - Programm muss weiter laufen In meinem Fall wird 0xA5 wird empfangen, aber das Programm läuft nicht weiter. (Info: MON51 kann ich als Alternative nicht verwenden) Vielen Dank im Voraus. Gruß Denis
ist ISDwait() eine Lib-Funktion oder gibts den Sourcecode? Ralf
Hallo Ralf, diese Funktion liegt in der ISD51.H Headerdatei, welche im Verzeichnis „C:\Keil\C51\ISD51“ liegt. Dateiausschnitt: ... define ISDinit() \ if (ES == 0) { /* Is ISD51 UART already initialized? */ \ __isd_init (); /* Init ISD51 core & enable ISD interrupt */ \ } #define ISDwait() \ while (1) { \ if (RI) { /* wait until Debugger sends 0xA5 */ \ if (SBUF == 0xA5) break; \ RI = 0; \ } \ } \ __isd_init (); /* Init ISD51 core & enable ISD interrupt */ #define ISDcheck() \ if (ES == 0) { /* Is ISD51 UART already initialized? */ \ if (RI) { /* wait until Debugger sends 0xA5 */ \ if (SBUF != 0xA5) RI = 0; \ else __isd_init (); /* Init core & ISD interrupt */ \ } \ } ... Diese wird in mein Programm eingebunden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.