Re: 10ms-Interrupt mit Timer 2 Kategorie: Verschiedenes (von Hannes - 5.11.2007 7:52) | ||
Als Antwort auf 10ms-Interrupt mit Timer 2 von Jürgen Hooß - 4.11.2007 20:30 | ||
| ||
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 > } > > } > | ||
Antwort schreiben Antworten: Re: 10ms-Interrupt mit Timer 2 (von Jürgen Hoo� - 10.11.2007 18:00) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum