Då är frågan vad som orsakar denna skillnad? Som sagt koden identisk (nedan) i båda projekt, maskinkoden ser också identisk ut så långt jag kan se.
Ett mysterium är vad som sker över den USB-anslutning som är till kortet. Jag har inte inkluderat några debuggninggrejjer (db_utils.h).
Kod: Markera allt
#include <plib.h>
#define CORE_TIMER_PERIOD 2000000
// Håll koll på vilken LED som lyser för tillfället
int cnt=5;
int main(void)
{
// Initiera LED på kretskortet
mPORTDSetPinsDigitalOut(BIT_0);
mPORTDClearBits(BIT_0);
mPORTDSetPinsDigitalOut(BIT_1);
mPORTDClearBits(BIT_1);
mPORTDSetPinsDigitalOut(BIT_2);
mPORTDClearBits(BIT_2);
// Sätt upp avbrottsvektor
OpenCoreTimer(CORE_TIMER_PERIOD);
mConfigIntCoreTimer((CT_INT_ON | CT_INT_PRIOR_2 | CT_INT_SUB_PRIOR_0));
INTEnableSystemMultiVectoredInt();
return 0;
}
void __ISR(_CORE_TIMER_VECTOR, ipl2) CoreTimerHandler(void)
{
cnt++;
cnt%=6;
mCTClearIntFlag(); // nolla avbrottsflagga
switch(cnt)
{
case 0:
case 1:mPORTDToggleBits(BIT_2); break;
case 2:
case 3:mPORTDToggleBits(BIT_0); break;
case 4:
case 5:mPORTDToggleBits(BIT_1); break;
}
UpdateCoreTimer(CORE_TIMER_PERIOD);
}