Gast
#39679
Hallo
Vielen Dank für eure bisherige Hilfe. Ich habe ein c Programm
geschrieben das ein Hauptprogramm und eine Interrupt Service Routine
hat, welche über einen Timer Interrupt ausgelöst wird.
Diese Programm habe ich einmal mit IAR Enbedded Workbench und einmal mit
MSPGCC compilen lassen.
1. Festellung MSPCGG generiert 25% mehr Code.
2. Feststellung beim das Programm das mit IAR compiliert wurde läuft so
wie es soll. Das Programm das ich mit MSPGCC compiliert habe läuft auch
aber feherhaft. Mir kommt vor, daß es langsamer läuft.
an was kann das liegen?
Insbesondere diese Routine in der ISR wird feherhaft ausgeführt!
interrupt (TIMERA0_VECTOR) Timer_A(void)
{ .
.
.
if ((schritt>=9)&(schritt<40))
{
for (x=0;x<0x1e;x++)
{
z=P1IN; //K-Spuren ausblenden
z&=0x3f;
if ((P2IN==BitmusterP2[x])&(z==BitmusterP3[x]))
{
if (x==0)schritt=10;
if ((x>0)&(x<0x0f)&(schritt==10))
{
schritt=schritt+x;
c=0x0001;
c=c<<(schritt-11);
fehlern|=c;
}
if (x==0x0f)schritt=10;
if ((x>0x0f)&(schritt==10))
{
schritt=schritt+x;
c=0x0001;
c=c<<(schritt-26);
fehlerp|=c;
}
}
}
}
Warum kann das sein, das diese Routine manchmal richtig arbeitet und
manchmal nicht???
Vielen Dank für eure Hilfe
MfG
Steffen