Zaehlervariable springt auf 3442 Kategorie: Programmierung C (von Endress - 8.12.2011 13:35) | ||
| ||
Wenn Counter_KWS auf 59 springt, erhalte ich statt der erwarteten '2' eine '3442' beim zweiten Durchlauf kommen wieder exakt 3400 dazu... Warum ? Manchmal sinds auch 1000 oder 5500 ... dieselbe Zeile steht weiter unten im Code nochmal und da zaehlt er brav 1 dazu !? Port_DataDirBit(24,0); // PortD.0 Eingang Irq_SetVect(INT_0,IRQ_KWS); // IRQ 0 Kurbelwellensensor Ext_IntEnable(0,2); // Interrupt bei fallender Flanke void main(void) { int kw_umdr; kw_umdr=1; while(1) { switch(Counter_KWS) { case 59: { Port_WriteBit(Z1_rot,0); kw_umdr=kw_umdr+1; if(kw_umdr==5) { Zylinderabschaltungsflag=0; } }break; } } void IRQ_KWS(void) { int irq; irq = Irq_GetCount(INT_0); Counter_KWS= Counter_KWS+irq; Msg_WriteText("KWS:"); Msg_WriteInt(Counter_KWS); Msg_WriteText(" "); Msg_WriteInt(kw_umdr); Msg_WriteText(" "); Msg_WriteChar(13); } | ||
Antwort schreiben Antworten: Re: Zaehlervariable springt auf 3442 (von Endress - 8.12.2011 14:00) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum