This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28335: PI controller (F28335) Error: identifier "pi1" is undefined

Part Number: TMS320F28335
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Hi,

I am trying to implement PI controller for a dc -dc converter. I have follow the instruction from C2000WARE doc file.

The error showing is

However, I have defined the pi1.

Here is the header files and src files. I also have allocated the controller functions in the linker command file

Anyone can help me out?

  • Hello,

    All your screenshots did not get uploaded correctly. Can you try posting them again?

    Thanks

    ki

  • Hi,

    I am trying to implement PI controller for a dc -dc converter. I have follow the instruction from C2000WARE doc file.

    The error showing is

    Line 253

    However, I have defined the pi1.

    Here is the header files and src files. I also have allocated the controller functions in the linker command file

    Anyone can help me out?

  • The screenshots have still not posted. Perhaps try zipping the images and attach the zip file to the thread.

  • Thanks Ki. It was my bad. I didn't see the instructions how to upload images in this forum. It is my first post. Thanks for stepping up.

  • I think the issue is "DCL_runPI_C1" declared implicitly" . But dont know how to solve it. I got this one from error message.

  • Are you including the header file (via #include) in DefaultIsr_nonBIOS.c?

  • Hi Ki,

    No. I have included header file in Main_nonBIOs.c

  • Try also adding it to DefaultIsr_nonBIOS.c

  • My main file:

    /**********************************************************************
    * File: DefaultIsr_nonBIOS.c
    * Devices: TMS320F2833x
    * Author: David M. Alter, Texas Instruments Inc.
    * History:
    *   12/18/07 - original (D. Alter)
    **********************************************************************/
    #include "F28335_example.h"                // Main include file


    //---------------------------------------------------------------------
    interrupt void INT13_ISR(void)                    // 0x000D1A  INT13 (XINT13 or CPU Timer1)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void INT14_ISR(void)                    // 0x000D1C  INT14 (CPU Timer2)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DATALOG_ISR(void)                // 0x000D1E  DATALOG (CPU data logging interrupt)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void RTOSINT_ISR(void)                // 0x000D20  RTOSINT (CPU RTOS interrupt)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EMUINT_ISR(void)                 // 0x000D22  EMUINT (CPU emulation interrupt)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void NMI_ISR(void)                    // 0x000D24  NMI (XNMI interrupt)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ILLEGAL_ISR(void)                // 0x000D26  ILLEGAL (Illegal operation trap)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER1_ISR(void)                    // 0x000D28  USER1 (Software interrupt #1)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER2_ISR(void)                    // 0x000D2A  USER2 (Software interrupt #2)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER3_ISR(void)                    // 0x000D2C  USER3 (Software interrupt #3)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER4_ISR(void)                    // 0x000D2E  USER4 (Software interrupt #4)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER5_ISR(void)                    // 0x000D30  USER5 (Software interrupt #5)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER6_ISR(void)                    // 0x000D32  USER6 (Software interrupt #6)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER7_ISR(void)                    // 0x000D34  USER7 (Software interrupt #7)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER8_ISR(void)                    // 0x000D36  USER8 (Software interrupt #8)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER9_ISR(void)                    // 0x000D38  USER9 (Software interrupt #9)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER10_ISR(void)                    // 0x000D3A  USER10 (Software interrupt #10)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER11_ISR(void)                    // 0x000D3C  USER11 (Software interrupt #11)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void USER12_ISR(void)                    // 0x000D3E  USER12 (Software interrupt #12)
    {
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SEQ1INT_ISR(void)                // PIE1.1 @ 0x000D40  SEQ1INT (ADC SEQ1)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SEQ2INT_ISR(void)                // PIE1.2 @ 0x000D42  SEQ2INT (ADC SEQ2)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE1.3 @ 0x000D44 reserved

    //---------------------------------------------------------------------
    interrupt void XINT1_ISR(void)                    // PIE1.4 @ 0x000D46  XINT1
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void XINT2_ISR(void)                    // PIE1.5 @ 0x000D48  XINT2
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ADCINT_ISR(void)                    // PIE1.6 @ 0x000D4A  ADCINT
    {
    static volatile Uint16 GPIO32_count = 0;        // Counter for pin toggle
    static Uint16 *AdcBufPtr = AdcBuf;                // Pointer to buffer

        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    //--- Manage the ADC registers
        AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;            // Reset SEQ1 to CONV00 state
        AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;            // Clear ADC SEQ1 interrupt flag

    //--- Read the ADC result
        *AdcBufPtr++ = AdcRegs.ADCRESULT0 >> 4;        // Read the result

    //--- Brute-force the circular buffer
        if( AdcBufPtr == (AdcBuf + ADC_BUF_LEN) )
            AdcBufPtr = AdcBuf;                        // Rewind the pointer to beginning

    //--- Example: Toggle GPIO32 and GPIO34, one of which is connected to the LED on the board

        if(GPIO32_count++ > 12500)                  // Toggle slowly to see the LED blink
        {
            GpioDataRegs.GPBTOGGLE.bit.GPIO32 = 1;  // Toggle the pin
            GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;  // Toggle the pin
            GPIO32_count = 0;                       // Reset the counter
        }

        EPwm1Regs.TBPRD = 75000/(90);  //210 FOR THE 3PH CIRCUIT
        EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.35);  //0.2 FOR THE 3PH CIRCUIT

        EPwm2Regs.TBPRD = 75000/(150);  //210 FOR THE 3PH CIRCUIT
           EPwm2Regs.CMPA.half.CMPA = EPwm2Regs.TBPRD*(1-0.35);  //0.2 FO

    //EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-d);  // where d is the duty cycle.
    //   EPwm3Regs.TBPRD =  75000/(200);                  //GPIO08
    //   EPwm3Regs.CMPA.half.CMPA = EPwm3Regs.TBPRD*(1-0.30);

       //MPPT CODE
    yk=((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7);
    uk= DCL_runPI_C1(&pi2, rk, yk);





    //yk = ((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7);
    //uk=DCL_runPI_C1(&pi1, rk, yk);


    //Voltage = ((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7);
    Current = ((AdcRegs.ADCRESULT0>>4)*3.3/4096)/0.5;
    Power = Voltage*Current;

    if(outputCounter >= 100)
    {

        if((Power-oldPower) > 0)
        {
            if((Voltage - oldVoltage) >= 0)
            {
                if (fcounter >=freqMax)
                    fcounter = freqMax;
                else
                    fcounter = fcounter + x;
            }
            else
            {
                if (fcounter <= freqMin)
                    fcounter = freqMin;
                else
                    fcounter = fcounter - x;
            }

            outputCounter = 1;
        }
        else
        {
            if((Voltage - oldVoltage) <= 0)
            {
                if (fcounter >=freqMax)
                    fcounter = freqMax;
                else
                    fcounter = fcounter + x;
            }
            else
            {
                if (fcounter <= freqMin)
                    fcounter = freqMin;
                else
                    fcounter = fcounter - x;
            }

            outputCounter = 1;
        }
        outputCounter = 1;
           // a = (1/((counter)*1000))/(0.01/(10*10*10*10*10*10));
            oldVoltage = Voltage;
            oldCurrent = Current;
            oldPower = Power;

    }

    else
    {
        outputCounter = outputCounter+1;
            EPwm3Regs.TBPRD =  75000/(fcounter);                  //GPIO08
            EPwm3Regs.CMPA.half.CMPA = EPwm3Regs.TBPRD*(1-0.30);
    }













    /*if (ccounter < 500000)
    {
        EPwm1Regs.TBPRD = 75000/(280);  //210 FOR THE 3PH CIRCUIT
        EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.3);  //0.2 FOR THE 3PH CIRCUIT
       ccounter = ccounter + 1;
    }


    else
    {
        EPwm1Regs.TBPRD = 75000/(260);  //210 FOR THE 3PH CIRCUIT
        EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.3);  //0.2 FOR THE 3PH CIRCUIT

    }

    */
    /*    if((AdcRegs.ADCRESULT0 >> 4) > 500)
        {
            EPwm5Regs.TBPRD =  75000/(300);                  //GPIO08
            EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-0.5);
        }
        else
        {
            EPwm5Regs.TBPRD =  75000/(100);                  //GPIO08
            EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-0.5);
        }
    */
        //if(test < counter)
    //    {
    //        if(test<dc)
    //            GpioDataRegs.GPASET.bit.GPIO16 = 1;
    //        else
    //            GpioDataRegs.GPACLEAR.bit.GPIO16 = 1;
    //        test = test + 1;
    //    }
    //    else
    //        test = 0;
    }

    //---------------------------------------------------------------------
    interrupt void TINT0_ISR(void)                    // PIE1.7 @ 0x000D4C  TINT0 (CPU TIMER 0)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void WAKEINT_ISR(void)                // PIE1.8 @ 0x000D4E  WAKEINT (LPM/WD)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;        // Must acknowledge the PIE group
     
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM1_TZINT_ISR(void)            // PIE2.1 @ 0x000D50  EPWM1_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM2_TZINT_ISR(void)            // PIE2.2 @ 0x000D52  EPWM2_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM3_TZINT_ISR(void)            // PIE2.3 @ 0x000D54  EPWM3_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group
     
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM4_TZINT_ISR(void)            // PIE2.4 @ 0x000D56  EPWM4_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group
     
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM5_TZINT_ISR(void)            // PIE2.5 @ 0x000D58  EPWM5_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM6_TZINT_ISR(void)            // PIE2.6 @ 0x000D5A  EPWM6_TZINT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE2.7 @ 0x000D5C reserved
                                                    // PIE2.8 @ 0x000D5E reserved
         
    //---------------------------------------------------------------------
    interrupt void EPWM1_INT_ISR(void)                // PIE3.1 @ 0x000D60  EPWM1_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM2_INT_ISR(void)                // PIE3.2 @ 0x000D62  EPWM2_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM3_INT_ISR(void)                // PIE3.3 @ 0x000D64  EPWM3_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM4_INT_ISR(void)                // PIE3.4 @ 0x000D66  EPWM4_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM5_INT_ISR(void)                // PIE3.5 @ 0x000D68  EPWM5_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EPWM6_INT_ISR(void)                // PIE3.6 @ 0x000D6A  EPWM6_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE3.7 @ 0x000D6C reserved
                                                    // PIE3.8 @ 0x000D6E reserved

    //---------------------------------------------------------------------
    interrupt void ECAP1_INT_ISR(void)                // PIE4.1 @ 0x000D70  ECAP1_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group
        ECap1Regs.ECCLR.bit.INT = 1;                // Clear the ECAP1 interrupt flag
        ECap1Regs.ECCLR.bit.CEVT3 = 1;                // Clear the CEVT3 flag

    // Compute the PWM duty period (rising edge to falling edge)
        PwmDuty = (int32)ECap1Regs.CAP2 - (int32)ECap1Regs.CAP1;

    // Compute the PWM period (rising edge to rising edge)
        PwmPeriod = (int32)ECap1Regs.CAP3 - (int32)ECap1Regs.CAP1;
    }

    //---------------------------------------------------------------------
    interrupt void ECAP2_INT_ISR(void)                // PIE4.2 @ 0x000D72  ECAP2_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAP3_INT_ISR(void)                // PIE4.3 @ 0x000D74  ECAP3_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAP4_INT_ISR(void)                // PIE4.4 @ 0x000D76  ECAP4_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAP5_INT_ISR(void)                // PIE4.5 @ 0x000D78  ECAP5_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAP6_INT_ISR(void)                // PIE4.6 @ 0x000D7A  ECAP6_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE4.7 @ 0x000D7C reserved
                                                    // PIE4.8 @ 0x000D7E reserved

    //---------------------------------------------------------------------
    interrupt void EQEP1_INT_ISR(void)                // PIE5.1 @ 0x000D80  EQEP1_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP5;        // Must acknowledge the PIE group
     
    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void EQEP2_INT_ISR(void)                // PIE5.2 @ 0x000D82  EQEP2_INT
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP5;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE5.3 @ 0x000D84 reserved
                                                    // PIE5.4 @ 0x000D86 reserved
                                                    // PIE5.5 @ 0x000D88 reserved
                                                    // PIE5.6 @ 0x000D8A reserved
                                                    // PIE5.7 @ 0x000D8C reserved
                                                    // PIE5.8 @ 0x000D8E reserved

    //---------------------------------------------------------------------
    interrupt void SPIRXINTA_ISR(void)                // PIE6.1 @ 0x000D90  SPIRXINTA (SPI-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SPITXINTA_ISR(void)                // PIE6.2 @ 0x000D92  SPITXINTA (SPI-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void MRINTB_ISR(void)                    // PIE6.3 @ 0x000D94  MRINTB (McBSP-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void MXINTB_ISR(void)                    // PIE6.4 @ 0x000D96  MXINTB (McBSP-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void MRINTA_ISR(void)                    // PIE6.5 @ 0x000D98  MRINTA (McBSP-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void MXINTA_ISR(void)                    // PIE6.6 @ 0x000D9A  MXINTA (McBSP-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP6;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE6.7 @ 0x000D9C reserved
                                                    // PIE6.8 @ 0x000D9E reserved

    //---------------------------------------------------------------------
    interrupt void DINTCH1_ISR(void)                // PIE7.1 @ 0x000DA0  DINTCH1 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DINTCH2_ISR(void)                // PIE7.2 @ 0x000DA2  DINTCH2 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DINTCH3_ISR(void)                // PIE7.3 @ 0x000DA4  DINTCH3 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DINTCH4_ISR(void)                // PIE7.4 @ 0x000DA6  DINTCH4 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DINTCH5_ISR(void)                // PIE7.5 @ 0x000DA8  DINTCH5 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void DINTCH6_ISR(void)                // PIE7.6 @ 0x000DAA  DINTCH6 (DMA)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE7.7 @ 0x000DAC reserved
                                                    // PIE7.8 @ 0x000DAE reserved

    //---------------------------------------------------------------------
    interrupt void I2CINT1A_ISR(void)                // PIE8.1 @ 0x000DB0  I2CINT1A (I2C-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP8;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void I2CINT2A_ISR(void)                // PIE8.2 @ 0x000DB2  I2CINT2A (I2C-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP8;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE8.3 @ 0x000DB4 reserved
                                                    // PIE8.4 @ 0x000DB6 reserved

    //---------------------------------------------------------------------
    interrupt void SCIRXINTC_ISR(void)                // PIE8.5 @ 0x000DB8  SCIRXINTC (SCI-C)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP8;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SCITXINTC_ISR(void)                // PIE8.6 @ 0x000DBA  SCIRXINTC (SCI-C)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP8;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE8.7 @ 0x000DBC reserved
                                                    // PIE8.8 @ 0x000DBE reserved

    //---------------------------------------------------------------------
    interrupt void SCIRXINTA_ISR(void)                // PIE9.1 @ 0x000DC0  SCIRXINTA (SCI-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SCITXINTA_ISR(void)                // PIE9.2 @ 0x000DC2  SCITXINTA (SCI-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SCIRXINTB_ISR(void)                // PIE9.3 @ 0x000DC4  SCIRXINTB (SCI-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void SCITXINTB_ISR(void)                // PIE9.4 @ 0x000DC6  SCITXINTB (SCI-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAN0INTA_ISR(void)                // PIE9.5 @ 0x000DC8  ECAN0_INTA (ECAN-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAN1INTA_ISR(void)                // PIE9.6 @ 0x000DCA  ECAN1_INTA (ECAN-A)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAN0INTB_ISR(void)                // PIE9.7 @ 0x000DCC  ECAN0_INTB (ECAN-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
    interrupt void ECAN1INTB_ISR(void)                // PIE9.8 @ 0x000DCE  ECAN1_INTB (ECAN-B)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;        // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }

    //---------------------------------------------------------------------
                                                    // PIE10.1 @ 0x000DD0 reserved
                                                    // PIE10.2 @ 0x000DD2 reserved
                                                    // PIE10.3 @ 0x000DD4 reserved
                                                    // PIE10.4 @ 0x000DD6 reserved
                                                    // PIE10.5 @ 0x000DD8 reserved
                                                    // PIE10.6 @ 0x000DDA reserved
                                                    // PIE10.7 @ 0x000DDC reserved
                                                    // PIE10.8 @ 0x000DDE reserved

    //---------------------------------------------------------------------
                                                    // PIE11.1 @ 0x000DE0 reserved
                                                    // PIE11.2 @ 0x000DE2 reserved
                                                    // PIE11.3 @ 0x000DE4 reserved
                                                    // PIE11.4 @ 0x000DE6 reserved
                                                    // PIE11.5 @ 0x000DE8 reserved
                                                    // PIE11.6 @ 0x000DEA reserved
                                                    // PIE11.7 @ 0x000DEC reserved
                                                    // PIE11.8 @ 0x000DEE reserved

    //---------------------------------------------------------------------
    interrupt void XINT3_ISR(void)                    // PIE12.1 @ 0x000DF0  XINT3
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void XINT4_ISR(void)                    // PIE12.2 @ 0x000DF2  XINT4
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void XINT5_ISR(void)                    // PIE12.3 @ 0x000DF4  XINT5
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void XINT6_ISR(void)                    // PIE12.4 @ 0x000DF6  XINT6
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void XINT7_ISR(void)                    // PIE12.5 @ 0x000DF8  XINT7
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     
    //---------------------------------------------------------------------
                                                    // PIE12.6 @ 0x000DFA reserved

    //---------------------------------------------------------------------
    interrupt void LVF_ISR(void)                    // PIE12.7 @ 0x000DFC  LVF (FPU OVERFLOW)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void LUF_ISR(void)                    // PIE12.8 @ 0x000DFE  LUF (FPU UNDERFLOW)
    {
        PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;    // Must acknowledge the PIE group

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }     

    //---------------------------------------------------------------------
    interrupt void rsvd_ISR(void)                    // Reserved PIE vectors
    {
    // This ISR is for reserved PIE vectors.  It should never be reached by
    // properly executing code.  If you get here, it means something is wrong.

    // Next two lines for debug only - remove after inserting your ISR
        asm (" ESTOP0");                            // Emulator Halt instruction
        while(1);
    }


    //--- end of file -----------------------------------------------------

  • Sorry, here is the main_nonBIOs file. Previous one was DefaultIsr_nonBIOS file.

    As of your recommendation, I have tried with the header file in DefaultIsr_nonBIOS.c file. Didn't resolve my issue


    **********************************************************************/
    #include "F28335_example.h"                // Main include file
    #include "DCL.h"
    #include "DCLF32.H"
    #include "DCL_fdlog.h"
    #include "DCLC28.h"
    //--- Global Variables
    Uint16 AdcBuf[ADC_BUF_LEN];                // ADC data buffer allocation
    Uint32 PwmDuty;                            // Measured PWM duty cycle
    Uint32 PwmPeriod;                        // Measured PWM period
    double ccounter;
    double fcounter = 150;
    double Voltage = 0;
    double Current = 0;
    double Power = 0;
    double oldVoltage = 0;
    double oldCurrent = 0;
    double oldPower = 0;
    double outputCounter = 100;
    double freqMax = 200;
    double freqMin = 100;
    double a = 0;
    double x = 1;
    float rk=2.8f;
    float yk;
    float uk;
    DCL_PI pi2= PI_DEFAULTS;







    /**********************************************************************
    * Function: main()
    *
    * Description: Main function for F2833x example.
    **********************************************************************/
    void main(void)
    {

    //--- CPU Initialization
        InitSysCtrl();                        // Initialize the CPU
        InitPieCtrl();                        // Initialize and enable the PIE
        InitWatchdog();                        // Initialize the Watchdog Timer
        InitGpio();                            // Initialize the shared GPIO pins
        InitXintf();                        // Initialize the external memory interface
        
    #ifdef EXAMPLE_FLASH                    // EXAMPLE_FLASH, if defined, is in CCS project options

    //--- Copy all Flash sections that need to run from RAM (use memcpy() from RTS library)

    // Section secureRamFuncs contains user defined code that runs from CSM secured RAM
        memcpy(&secureRamFuncs_runstart, &secureRamFuncs_loadstart, (Uint32)&secureRamFuncs_loadsize);

    //--- Initialize the Flash and OTP
        InitFlash();                        // Initialize the Flash

    #endif

    //--- Peripheral Initialization
        InitAdc();                            // Initialize the ADC
        InitEPwm();                            // Initialize the PWM
        InitECap();                            // Initialize the Capture units
        //DeviceInit();

        /* initialise PI controller */
        pi2. Kp = 1.0f;
        pi2. Ki = 0.1f;
        pi2. Umax = 0.7f;
        pi2. Umin = 0.0f;

    //--- Enable interrupts
        SetDBGIER(IER);                        // Configure the DBGIER for realtime debug
        asm(" CLRC INTM, DBGM");            // Enable global interrupts and realtime debug

    //--- Main Loop

        while(1)                            // Dummy loop.  Wait for an interrupt.
        {
            asm(" NOP");
        }

    } // end of main()


    //--- end of file -----------------------------------------------------

  • Is DCL_runPI_C1 and pi2 defined in F28335_example.h? If not, then you must also include the header file that does define it.

  • here is the cmd file

    MEMORY
    {
    PAGE 0:    /* Program Memory */
       BEGIN_M0           : origin = 0x000000, length = 0x000002     /* Part of M0SARAM.  Used for "Boot to M0" bootloader mode. */
       L0123SARAM         : origin = 0x008000, length = 0x004000     /* L0 - L3 SARAM combined, CSM secure */
       FLASH_ABCDEFGH (R) : origin = 0x300000, length = 0x03FF80     /* On-chip FLASH */
       CSM_RSVD       (R) : origin = 0x33FF80, length = 0x000076     /* Part of FLASH Sector A.  Reserved when CSM is in use. */
       BEGIN_FLASH    (R) : origin = 0x33FFF6, length = 0x000002     /* Part of FLASH Sector A.  Used for "Jump to flash" bootloader mode. */
       PASSWORDS      (R) : origin = 0x33FFF8, length = 0x000008     /* Part of FLASH Sector A.  CSM password locations. */
       OTP            (R) : origin = 0x380400, length = 0x000400     /* OTP */
       IQTABLES       (R) : origin = 0x3FE000, length = 0x000B50     /* Part of Boot ROM */
       IQTABLES2      (R) : origin = 0x3FEB50, length = 0x00008C     /* Part of Boot ROM */
       FPUTABLES      (R) : origin = 0x3FEBDC, length = 0x0006A0     /* Part of Boot ROM */
       RESET          (R) : origin = 0x3FFFC0, length = 0x000002     /* part of Boot ROM */

     PAGE 1 :   /* Data Memory */
       M0SARAM         : origin = 0x000002, length = 0x0003FE        /* M0 SARAM */
       M1SARAM         : origin = 0x000400, length = 0x000400        /* M1 SARAM */
       L4SARAM         : origin = 0x00C000, length = 0x001000        /* L4 SARAM, DMA accessible, 1 WS prog access */
       L5SARAM         : origin = 0x00D000, length = 0x001000        /* L5 SARAM, DMA accessible, 1 WS prog access */
       L6SARAM         : origin = 0x00E000, length = 0x001000        /* L6 SARAM, DMA accessible, 1 WS prog access */
       L7SARAM         : origin = 0x00F000, length = 0x001000        /* L7 SARAM, DMA accessible, 1 WS prog access */
    }


    SECTIONS
    {
    /*** Compiler Required Sections ***/

      /* Program memory (PAGE 0) sections */
       .text             : > L0123SARAM,            PAGE = 0
       .cinit            : > L0123SARAM,            PAGE = 0
       .const            : > L0123SARAM,            PAGE = 0
       .econst           : > L0123SARAM,            PAGE = 0      
       .pinit            : > L0123SARAM,            PAGE = 0
       .reset            : > RESET,                 PAGE = 0, TYPE = DSECT  /* We are not using the .reset section */
       .switch           : > L0123SARAM,            PAGE = 0

      /* Data Memory (PAGE 1) sections */
       .bss              : > L4SARAM,               PAGE = 1
       .ebss             : > L4SARAM,               PAGE = 1
       .cio              : > L4SARAM,               PAGE = 1
       .stack            : > M1SARAM,               PAGE = 1
       .sysmem           : > L4SARAM,               PAGE = 1
       .esysmem          : > L4SARAM,               PAGE = 1

    /*** User Defined Sections ***/
       codestart         : > BEGIN_M0,              PAGE = 0                /* Used by file CodeStartBranch.asm */
       internalMemFuncs  : > L0123SARAM,            PAGE = 0                /* Used by file Xintf.c.  Link to internal memory */
       dclfuncs             : > L5SARAM,                PAGE = 1
    }

    /******************* end of file ************************/

  • Sanjida Moury said:

    Sorry, here is the main_nonBIOs file. Previous one was DefaultIsr_nonBIOS file.

    As of your recommendation, I have tried with the header file in DefaultIsr_nonBIOS.c file. Didn't resolve my issue

    The issue is with this line in: DefaultIsr_nonBIOS.c 

    uk= DCL_runPI_C1(&pi2, rk, yk);

    The only header file being included there is:

    #include "F28335_example.h"                

    is pi2 and DCL_runPl_C1 defined in that header file? If it is not, then you need have another #include for the header file that does define them.

    The cmd file is used by the linker. You are running into a compiler error hence the cmd is not the issue.

  • F28335 example.h file:

    #ifndef F28335_EXAMPLE_H
    #define F28335_EXAMPLE_H


    //---------------------------------------------------------------------------
    // Constant Definitions
    //
    #define ADC_BUF_LEN            50                // ADC buffer length
    #define ADC_SAMPLE_PERIOD    99            // 2999 = 50 KHz sampling w/ 150 MHz SYSCLKOUT
    #define PWM_HALF_PERIOD        50        // period/2 for 2 kHz symmetric PWM
    #define PWM_DUTY_CYCLE        PWM_HALF_PERIOD*0.7 //28125            // 25% duty cycle
    #define counter             50
    #define dc                  35



    //---------------------------------------------------------------------------
    // Include Standard C Language Header Files
    //
    #include <string.h>


    //---------------------------------------------------------------------------
    // Include any other Header Files
    //
    #include "DSP2833x_Device.h"                // Peripheral address definitions

    #include "DCLF32.H"

    #ifdef EXAMPLE_NONBIOS
        #include "DSP2833x_DefaultIsr.h"        // ISR definitions
    #endif

    #ifdef EXAMPLE_BIOS5
        #ifdef EXAMPLE_FLASH
            #include "F28335_example_BIOS5_flashcfg.h"
        #endif

        #ifdef EXAMPLE_RAM
            #include "F28335_example_BIOS5_ramcfg.h"
        #endif
    #endif


    //---------------------------------------------------------------------------
    // Function Prototypes
    //
    extern void DelayUs(Uint16);
    extern void InitAdc(void);
    extern void InitECap(void);
    extern void InitEPwm(void);

    #ifdef EXAMPLE_FLASH
        extern void InitFlash(void);
    #endif

    extern void InitGpio(void);
    extern void InitPieCtrl(void);
    extern void InitSysCtrl(void);
    extern void InitWatchdog(void);
    extern void InitXintf(void);
    extern void SetDBGIER(Uint16);

    #ifdef EXAMPLE_BIOS5
        extern void UserInit(void);
    #endif


    //---------------------------------------------------------------------------
    // Global symbols defined in the linker command file
    //
    #ifdef EXAMPLE_BIOS5
        extern Uint16 hwi_vec_loadstart;
        extern Uint16 hwi_vec_loadsize;
        extern Uint16 hwi_vec_runstart;
        extern Uint16 trcdata_loadstart;
        extern Uint16 trcdata_loadsize;
        extern Uint16 trcdata_runstart;
    #endif

    #ifdef EXAMPLE_FLASH
        extern Uint16 secureRamFuncs_loadstart;
        extern Uint16 secureRamFuncs_loadsize;
        extern Uint16 secureRamFuncs_runstart;
    #endif


    //---------------------------------------------------------------------------
    // Global Variable References
    //
    extern Uint16 AdcBuf[ADC_BUF_LEN];            // ADC data buffer allocation
    extern Uint32 PwmDuty;                        // Measured PWM duty cycle
    extern Uint32 PwmPeriod;                    // Measured PWM period

    extern double Voltage;
    extern double Current;
    extern double Power;
    extern double oldVoltage;
    extern double oldCurrent;
    extern double oldPower;

    extern double outputCounter;
    extern double ccounter;
    extern double a;
    extern double x;
    extern double fcounter;

    extern double freqMax;
    extern double freqMin;

    extern float rk;
    extern float yk;
    extern float uk;




    //extern Uint32 PWM_HALF_PERIOD = 50;
    //extern Uint32 PWM_DUTY_CYCLE = 50*0.4;
    #ifdef EXAMPLE_NONBIOS
        extern const struct PIE_VECT_TABLE PieVectTableInit;    // Pie vector table (non-BIOS only)
    #endif


    //---------------------------------------------------------------------------
    // Macros
    //
    #define ADC_cal_func_ptr (void (*)(void))0x380080


    //---------------------------------------------------------------------------
    #endif  // end of F28335_EXAMPLE_H definition


    //--- end of file -----------------------------------------------------

  • Here is the screenshots. Nothing resolve the issue

    Defaultisr_nonBIOS.c with header files

  • Hi Ki,
    Sorry yesterday I mistakenly gave two same sceenshot. Here is the "Defaultisr_nonBIOS.c" file. .h files are included. I have included .h file in Min_nonBIOS.c,
    Defaultisr_nonBIOS.c and in F28335_example.h file. I also gave you all the code. Could you please have another look?


    **********************************************************************/ #include "F28335_example.h" // Main include file #include "DCL.h" #include "DCLF32.h" #include "DCL_fdlog.h" #include "DCLC28.h" //--------------------------------------------------------------------- interrupt void INT13_ISR(void) // 0x000D1A INT13 (XINT13 or CPU Timer1) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void INT14_ISR(void) // 0x000D1C INT14 (CPU Timer2) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DATALOG_ISR(void) // 0x000D1E DATALOG (CPU data logging interrupt) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void RTOSINT_ISR(void) // 0x000D20 RTOSINT (CPU RTOS interrupt) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EMUINT_ISR(void) // 0x000D22 EMUINT (CPU emulation interrupt) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void NMI_ISR(void) // 0x000D24 NMI (XNMI interrupt) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ILLEGAL_ISR(void) // 0x000D26 ILLEGAL (Illegal operation trap) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER1_ISR(void) // 0x000D28 USER1 (Software interrupt #1) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER2_ISR(void) // 0x000D2A USER2 (Software interrupt #2) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER3_ISR(void) // 0x000D2C USER3 (Software interrupt #3) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER4_ISR(void) // 0x000D2E USER4 (Software interrupt #4) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER5_ISR(void) // 0x000D30 USER5 (Software interrupt #5) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER6_ISR(void) // 0x000D32 USER6 (Software interrupt #6) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER7_ISR(void) // 0x000D34 USER7 (Software interrupt #7) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER8_ISR(void) // 0x000D36 USER8 (Software interrupt #8) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER9_ISR(void) // 0x000D38 USER9 (Software interrupt #9) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER10_ISR(void) // 0x000D3A USER10 (Software interrupt #10) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER11_ISR(void) // 0x000D3C USER11 (Software interrupt #11) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void USER12_ISR(void) // 0x000D3E USER12 (Software interrupt #12) { // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SEQ1INT_ISR(void) // PIE1.1 @ 0x000D40 SEQ1INT (ADC SEQ1) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SEQ2INT_ISR(void) // PIE1.2 @ 0x000D42 SEQ2INT (ADC SEQ2) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE1.3 @ 0x000D44 reserved //--------------------------------------------------------------------- interrupt void XINT1_ISR(void) // PIE1.4 @ 0x000D46 XINT1 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void XINT2_ISR(void) // PIE1.5 @ 0x000D48 XINT2 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ADCINT_ISR(void) // PIE1.6 @ 0x000D4A ADCINT { static volatile Uint16 GPIO32_count = 0; // Counter for pin toggle static Uint16 *AdcBufPtr = AdcBuf; // Pointer to buffer PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group //--- Manage the ADC registers AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1 to CONV00 state AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear ADC SEQ1 interrupt flag //--- Read the ADC result *AdcBufPtr++ = AdcRegs.ADCRESULT0 >> 4; // Read the result //--- Brute-force the circular buffer if( AdcBufPtr == (AdcBuf + ADC_BUF_LEN) ) AdcBufPtr = AdcBuf; // Rewind the pointer to beginning //--- Example: Toggle GPIO32 and GPIO34, one of which is connected to the LED on the board if(GPIO32_count++ > 12500) // Toggle slowly to see the LED blink { GpioDataRegs.GPBTOGGLE.bit.GPIO32 = 1; // Toggle the pin GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1; // Toggle the pin GPIO32_count = 0; // Reset the counter } EPwm1Regs.TBPRD = 75000/(90); //210 FOR THE 3PH CIRCUIT EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.35); //0.2 FOR THE 3PH CIRCUIT EPwm2Regs.TBPRD = 75000/(150); //210 FOR THE 3PH CIRCUIT EPwm2Regs.CMPA.half.CMPA = EPwm2Regs.TBPRD*(1-0.35); //0.2 FO //EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-d); // where d is the duty cycle. // EPwm3Regs.TBPRD = 75000/(200); //GPIO08 // EPwm3Regs.CMPA.half.CMPA = EPwm3Regs.TBPRD*(1-0.30); //MPPT CODE yk=((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7); uk= DCL_runPI_C1(&pi2, rk, yk); //yk = ((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7); //uk=DCL_runPI_C1(&pi1, rk, yk); //Voltage = ((AdcRegs.ADCRESULT1>>4)*3.3/4096)*(10.7); Current = ((AdcRegs.ADCRESULT0>>4)*3.3/4096)/0.5; Power = Voltage*Current; if(outputCounter >= 100) { if((Power-oldPower) > 0) { if((Voltage - oldVoltage) >= 0) { if (fcounter >=freqMax) fcounter = freqMax; else fcounter = fcounter + x; } else { if (fcounter <= freqMin) fcounter = freqMin; else fcounter = fcounter - x; } outputCounter = 1; } else { if((Voltage - oldVoltage) <= 0) { if (fcounter >=freqMax) fcounter = freqMax; else fcounter = fcounter + x; } else { if (fcounter <= freqMin) fcounter = freqMin; else fcounter = fcounter - x; } outputCounter = 1; } outputCounter = 1; // a = (1/((counter)*1000))/(0.01/(10*10*10*10*10*10)); oldVoltage = Voltage; oldCurrent = Current; oldPower = Power; } else { outputCounter = outputCounter+1; EPwm3Regs.TBPRD = 75000/(fcounter); //GPIO08 EPwm3Regs.CMPA.half.CMPA = EPwm3Regs.TBPRD*(1-0.30); } /*if (ccounter < 500000) { EPwm1Regs.TBPRD = 75000/(280); //210 FOR THE 3PH CIRCUIT EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.3); //0.2 FOR THE 3PH CIRCUIT ccounter = ccounter + 1; } else { EPwm1Regs.TBPRD = 75000/(260); //210 FOR THE 3PH CIRCUIT EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD*(1-0.3); //0.2 FOR THE 3PH CIRCUIT } */ /* if((AdcRegs.ADCRESULT0 >> 4) > 500) { EPwm5Regs.TBPRD = 75000/(300); //GPIO08 EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-0.5); } else { EPwm5Regs.TBPRD = 75000/(100); //GPIO08 EPwm5Regs.CMPA.half.CMPA = EPwm5Regs.TBPRD*(1-0.5); } */ //if(test < counter) // { // if(test<dc) // GpioDataRegs.GPASET.bit.GPIO16 = 1; // else // GpioDataRegs.GPACLEAR.bit.GPIO16 = 1; // test = test + 1; // } // else // test = 0; } //--------------------------------------------------------------------- interrupt void TINT0_ISR(void) // PIE1.7 @ 0x000D4C TINT0 (CPU TIMER 0) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void WAKEINT_ISR(void) // PIE1.8 @ 0x000D4E WAKEINT (LPM/WD) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM1_TZINT_ISR(void) // PIE2.1 @ 0x000D50 EPWM1_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM2_TZINT_ISR(void) // PIE2.2 @ 0x000D52 EPWM2_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM3_TZINT_ISR(void) // PIE2.3 @ 0x000D54 EPWM3_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM4_TZINT_ISR(void) // PIE2.4 @ 0x000D56 EPWM4_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM5_TZINT_ISR(void) // PIE2.5 @ 0x000D58 EPWM5_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM6_TZINT_ISR(void) // PIE2.6 @ 0x000D5A EPWM6_TZINT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE2.7 @ 0x000D5C reserved // PIE2.8 @ 0x000D5E reserved //--------------------------------------------------------------------- interrupt void EPWM1_INT_ISR(void) // PIE3.1 @ 0x000D60 EPWM1_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM2_INT_ISR(void) // PIE3.2 @ 0x000D62 EPWM2_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM3_INT_ISR(void) // PIE3.3 @ 0x000D64 EPWM3_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM4_INT_ISR(void) // PIE3.4 @ 0x000D66 EPWM4_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM5_INT_ISR(void) // PIE3.5 @ 0x000D68 EPWM5_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EPWM6_INT_ISR(void) // PIE3.6 @ 0x000D6A EPWM6_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE3.7 @ 0x000D6C reserved // PIE3.8 @ 0x000D6E reserved //--------------------------------------------------------------------- interrupt void ECAP1_INT_ISR(void) // PIE4.1 @ 0x000D70 ECAP1_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group ECap1Regs.ECCLR.bit.INT = 1; // Clear the ECAP1 interrupt flag ECap1Regs.ECCLR.bit.CEVT3 = 1; // Clear the CEVT3 flag // Compute the PWM duty period (rising edge to falling edge) PwmDuty = (int32)ECap1Regs.CAP2 - (int32)ECap1Regs.CAP1; // Compute the PWM period (rising edge to rising edge) PwmPeriod = (int32)ECap1Regs.CAP3 - (int32)ECap1Regs.CAP1; } //--------------------------------------------------------------------- interrupt void ECAP2_INT_ISR(void) // PIE4.2 @ 0x000D72 ECAP2_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAP3_INT_ISR(void) // PIE4.3 @ 0x000D74 ECAP3_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAP4_INT_ISR(void) // PIE4.4 @ 0x000D76 ECAP4_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAP5_INT_ISR(void) // PIE4.5 @ 0x000D78 ECAP5_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAP6_INT_ISR(void) // PIE4.6 @ 0x000D7A ECAP6_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE4.7 @ 0x000D7C reserved // PIE4.8 @ 0x000D7E reserved //--------------------------------------------------------------------- interrupt void EQEP1_INT_ISR(void) // PIE5.1 @ 0x000D80 EQEP1_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void EQEP2_INT_ISR(void) // PIE5.2 @ 0x000D82 EQEP2_INT { PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE5.3 @ 0x000D84 reserved // PIE5.4 @ 0x000D86 reserved // PIE5.5 @ 0x000D88 reserved // PIE5.6 @ 0x000D8A reserved // PIE5.7 @ 0x000D8C reserved // PIE5.8 @ 0x000D8E reserved //--------------------------------------------------------------------- interrupt void SPIRXINTA_ISR(void) // PIE6.1 @ 0x000D90 SPIRXINTA (SPI-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SPITXINTA_ISR(void) // PIE6.2 @ 0x000D92 SPITXINTA (SPI-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void MRINTB_ISR(void) // PIE6.3 @ 0x000D94 MRINTB (McBSP-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void MXINTB_ISR(void) // PIE6.4 @ 0x000D96 MXINTB (McBSP-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void MRINTA_ISR(void) // PIE6.5 @ 0x000D98 MRINTA (McBSP-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void MXINTA_ISR(void) // PIE6.6 @ 0x000D9A MXINTA (McBSP-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE6.7 @ 0x000D9C reserved // PIE6.8 @ 0x000D9E reserved //--------------------------------------------------------------------- interrupt void DINTCH1_ISR(void) // PIE7.1 @ 0x000DA0 DINTCH1 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DINTCH2_ISR(void) // PIE7.2 @ 0x000DA2 DINTCH2 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DINTCH3_ISR(void) // PIE7.3 @ 0x000DA4 DINTCH3 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DINTCH4_ISR(void) // PIE7.4 @ 0x000DA6 DINTCH4 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DINTCH5_ISR(void) // PIE7.5 @ 0x000DA8 DINTCH5 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void DINTCH6_ISR(void) // PIE7.6 @ 0x000DAA DINTCH6 (DMA) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE7.7 @ 0x000DAC reserved // PIE7.8 @ 0x000DAE reserved //--------------------------------------------------------------------- interrupt void I2CINT1A_ISR(void) // PIE8.1 @ 0x000DB0 I2CINT1A (I2C-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void I2CINT2A_ISR(void) // PIE8.2 @ 0x000DB2 I2CINT2A (I2C-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE8.3 @ 0x000DB4 reserved // PIE8.4 @ 0x000DB6 reserved //--------------------------------------------------------------------- interrupt void SCIRXINTC_ISR(void) // PIE8.5 @ 0x000DB8 SCIRXINTC (SCI-C) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SCITXINTC_ISR(void) // PIE8.6 @ 0x000DBA SCIRXINTC (SCI-C) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE8.7 @ 0x000DBC reserved // PIE8.8 @ 0x000DBE reserved //--------------------------------------------------------------------- interrupt void SCIRXINTA_ISR(void) // PIE9.1 @ 0x000DC0 SCIRXINTA (SCI-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SCITXINTA_ISR(void) // PIE9.2 @ 0x000DC2 SCITXINTA (SCI-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SCIRXINTB_ISR(void) // PIE9.3 @ 0x000DC4 SCIRXINTB (SCI-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void SCITXINTB_ISR(void) // PIE9.4 @ 0x000DC6 SCITXINTB (SCI-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAN0INTA_ISR(void) // PIE9.5 @ 0x000DC8 ECAN0_INTA (ECAN-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAN1INTA_ISR(void) // PIE9.6 @ 0x000DCA ECAN1_INTA (ECAN-A) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAN0INTB_ISR(void) // PIE9.7 @ 0x000DCC ECAN0_INTB (ECAN-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void ECAN1INTB_ISR(void) // PIE9.8 @ 0x000DCE ECAN1_INTB (ECAN-B) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE10.1 @ 0x000DD0 reserved // PIE10.2 @ 0x000DD2 reserved // PIE10.3 @ 0x000DD4 reserved // PIE10.4 @ 0x000DD6 reserved // PIE10.5 @ 0x000DD8 reserved // PIE10.6 @ 0x000DDA reserved // PIE10.7 @ 0x000DDC reserved // PIE10.8 @ 0x000DDE reserved //--------------------------------------------------------------------- // PIE11.1 @ 0x000DE0 reserved // PIE11.2 @ 0x000DE2 reserved // PIE11.3 @ 0x000DE4 reserved // PIE11.4 @ 0x000DE6 reserved // PIE11.5 @ 0x000DE8 reserved // PIE11.6 @ 0x000DEA reserved // PIE11.7 @ 0x000DEC reserved // PIE11.8 @ 0x000DEE reserved //--------------------------------------------------------------------- interrupt void XINT3_ISR(void) // PIE12.1 @ 0x000DF0 XINT3 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void XINT4_ISR(void) // PIE12.2 @ 0x000DF2 XINT4 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void XINT5_ISR(void) // PIE12.3 @ 0x000DF4 XINT5 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void XINT6_ISR(void) // PIE12.4 @ 0x000DF6 XINT6 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void XINT7_ISR(void) // PIE12.5 @ 0x000DF8 XINT7 { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- // PIE12.6 @ 0x000DFA reserved //--------------------------------------------------------------------- interrupt void LVF_ISR(void) // PIE12.7 @ 0x000DFC LVF (FPU OVERFLOW) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void LUF_ISR(void) // PIE12.8 @ 0x000DFE LUF (FPU UNDERFLOW) { PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; // Must acknowledge the PIE group // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--------------------------------------------------------------------- interrupt void rsvd_ISR(void) // Reserved PIE vectors { // This ISR is for reserved PIE vectors. It should never be reached by // properly executing code. If you get here, it means something is wrong. // Next two lines for debug only - remove after inserting your ISR asm (" ESTOP0"); // Emulator Halt instruction while(1); } //--- end of file -----------------------------------------------------

  • I was looking back at a prior psot and I think i get it now. 

    In you main_nonBIOS file, you have:

    DCL_PI pi2= PI_DEFAULTS;

    In DefaultIsr_nonBIOS you have:

    uk= DCL_runPI_C1(&pi2, rk, yk);

    So your definition of pi2 is right in the main_nonBIOS.c file, and not a header file.

    DefaultIsr_nonBIOS.c references pi2 but doesn't know about the definition in main_nonBIOS.c (since it is in another source file), so that is why you are getting an "undefined" error when compiling DefaultIsr_nonBIOS.c. You can move the definition to a header file that is referenced by both source files. In any case, this is not a CCS issue but an issue with your code trying to use a variable where it cannot find the definition for.