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 > Hallo, > > fCount++; geht glaub ich nicht. Muss heissen > > fCount = fCount + 1.0; > > Gruss > > > > > > Hallo, > > > > ich mache mich gerade mit der CC-Pro vertraut um ihr Potenzial für einen industriellen > > Einsatz abzuklopfen und habe ein Problem mit dem 10ms-Interrupt über den Timer2. > > Nach meinem Verständnis sollte das untere Programm so funktionieren, > > dass es zunächst einmal in die while(1)-Schleife in main() hineinläuft und > > dort solange bleibt bis es durch den Interrupt unterbrochen wird. > > Dann wird die Interrupt-Routine abgearbeitet und dann geht es an der Stelle weiter > > wo der Interrupt das Programm unterbrochen hat, usw. . > > So hat es auf jeden Fall in allen meinen bisherigen Assembler-Projekten > > (68000, 8051, 68HC08) funktioniert. Hier funktioniert es leider nicht so. > > In dem Moment wo in main() die Zeile > > Irq_SetVect(INT_TIM2COMP,INT_10ms); // Interrupt Service Routine definieren > > erreicht wird, wartet das Programm wohl auf das Auftreten des Interrupts. > > Die while-Schleife wird nicht mehr abgearbeitet, sonst müsste in der zweiten Zeile > > vom LCD-Display der Zählerstand von fCount angezeigt werden. > > > > Was läuft hier falsch? > > > > Besten Dank im voraus für die Unterstützung. > > > > float fCount; > > word wCount; > > byte bCount; > > > > void INT_10ms(void) > > { > > int irqcnt; > > char cStr[9]; > > > > wCount++; > > if(wCount>=50) > > { > > LCD_ClearLCD(); > > LCD_CursorPos(0x00); // Den Cursor in die erste Zeile setzen > > cStr="T: "; > > Str_WriteWord(bCount, 10, cStr, 3, 0); > > LCD_WriteText(cStr); > > LCD_CursorPos(0x40); // Den Cursor in die zweite Zeile setzen > > Str_WriteFloat(fCount, 0, cStr, 0); > > LCD_WriteText(cStr); > > > > bCount++; > > wCount=0; > > } > > irqcnt=Irq_GetCount(INT_TIM2COMP); // Interrupt Request Counter > > } > > > > > > void main(void) > > { > > > > bCount=0; > > wCount=0; > > fCount=7; > > LCD_Init(); > > LCD_ClearLCD(); > > Irq_SetVect(INT_TIM2COMP,INT_10ms); // Interrupt Service Routine definieren > > while(1) > > { > > fCount++; > > // ... und weitere Zeilen Programmcode > > } > > > > } > >