Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hi, > > > > das folgende Programm verhält sich unterschiedlich beim Starten mit F10 und reset: > > Starte ich mit F10, so wird das Programm (while-loop in main() ) korrekt durchlaufen. > > Starte ich aber mit reset (also ohne USB Kabel), so bleibt das Programm in der > > while-loop hängen. Es sieht so aus, als ob die Interrupts 6 und 7 ihre Arbeit eingestellt > > hätten. > > Wie unterscheidet sich die Arbeitsweise der beiden Starts: F10 und reset? > > > > Gruss > > Fred > > Die Msg_Write() Anweisungen werden natürlich nur durch geführt, wenn die IDE aktiv ist, > sonst mußt Du die RS232 Funktionen nutzen. Woher weißt Du, das er in der while_loop > hängen bleibt? > > Gruss Peter > > > > > > > > > > > #include "servos.h" > > > > int steps_l, steps_r; > > > > > > // Interrupt 7 > > void count_l_isr(void) > > { > > int irq_cnt; > > steps_l++; > > irq_cnt = Irq_GetCount(INT_7); > > } > > > > // Interrupt 6 > > void count_r_isr(void) > > { > > int irq_cnt; > > steps_r++; > > irq_cnt = Irq_GetCount(INT_6); > > } > > > > > > void main(void) > > { > > steps_l = 0; > > steps_r = 0; > > servos_init(); > > > > ENC_LED_ON(); > > DRIVE_ON(); > > > > Timer_T1PWA(200); > > Timer_T1PWB(200); > > > > while(steps_r < 80) > > { > > Msg_WriteInt(steps_l); > > Msg_WriteChar(SPACE); > > Msg_WriteInt(steps_r); > > Msg_WriteChar(13); > > } > > > > DRIVE_OFF(); > > ENC_LED_OFF(); > > > > }