Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

Interrupt handling in enet_io of EKS-LM3S8962

$
0
0

Hai harshit :-) thanks for sharing the experience.  your response are more valuable for me

I am using PORTB,PORTF and PORTE for the interrupts from external hardware but  some of the pins in PORTB, PORTF  and PORTE needs the  interrupt on RISING EDGE and some of the pins in PORTB , PORTF and PORTE needs the interrupt on BOTH EDGES for my application in the enet_io example

i changed the startup_ccs.c

i am giving  interrupts from external board, output pins are not going high or low . it remains low


please check the configurations and Interrupthandler.

please help me to solve this

thank you

i mention the pins using in the enet_io stellarisware and below this GPIO interupt pin configuration and below that only PORTB interrupt handler

output pins

PORTD --  PD4/CCP0, PD5/CCP2, PD6/FAULT, PD7/IDX0

PORTC -- PC4/PHA0, PC6/PHB0,PC5,PC7

PORTB -- PB4/C0-

INPUT PINS

PORTB -- PB2/I2C0SCL, PB3/I2C0SDA, PB6/C0+, PB5/C0O(C1-)

PORTE- PE0/PWM4,PE1/PWM5, PE3/PHA1, PE2/PHB1

PORTF-- PF0/PWM0, PF1/IDX1


 INTERRUPT GPIO CONFIGURATION

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

                    GPIOPortIntRegister(GPIO_PORTE_BASE, PortEIntHandler);
                   GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1);
                   GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                   GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1, GPIO_DIR_MODE_IN);
                   GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1, GPIO_RISING_EDGE);


   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
                   GPIOPortIntRegister(GPIO_PORTF_BASE, PortFIntHandler);
                   GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1);
                   GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                   GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_DIR_MODE_IN);
                   GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_RISING_EDGE);

   
      SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

                   GPIOPortIntRegister(GPIO_PORTB_BASE, PortBIntHandler);
                   GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_2 | GPIO_PIN_5 | GPIO_PIN_6);
                   GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_2 | GPIO_PIN_5 | GPIO_PIN_6, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                   GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_2 | GPIO_PIN_5 | GPIO_PIN_6, GPIO_DIR_MODE_IN);
                   GPIOIntTypeSet(GPIO_PORTB_BASE,  GPIO_PIN_2 | GPIO_PIN_5 | GPIO_PIN_6, GPIO_RISING_EDGE);

 
          SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);


                  GPIOPortIntRegister(GPIO_PORTB_BASE, PortBIntHandler);
                  GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_3);
                  GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_3, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                  GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_3, GPIO_DIR_MODE_IN);
                  GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_3, GPIO_BOTH_EDGES);
              

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
                  GPIOPortIntRegister(GPIO_PORTF_BASE, PortFIntHandler);
                  GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0);
                  GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                  GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN);
                  GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_BOTH_EDGES);


 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
                  GPIOPortIntRegister(GPIO_PORTE_BASE, PortEIntHandler);
                  GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, GPIO_PIN_3);
                  GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_3, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPD);
                  GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_3, GPIO_DIR_MODE_IN);
                  GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_3, GPIO_BOTH_EDGES);

          
                       GPIOPinIntEnable(GPIO_PORTE_BASE,  GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_3);
                   
                           GPIOPinIntEnable(GPIO_PORTF_BASE,  GPIO_PIN_0 | GPIO_PIN_1 );

                               GPIOPinIntEnable(GPIO_PORTB_BASE,  GPIO_PIN_2 |GPIO_PIN_3 | GPIO_PIN_5 | GPIO_PIN_6);

                               IntEnable(INT_GPIOB);
                                  IntEnable(INT_GPIOE);
                                  IntEnable(INT_GPIOF);

interrupt handler


void PortBIntHandler(void)
{
 
       GPIOPinIntDisable(GPIO_PORTB_BASE,  GPIO_PIN_6 | GPIO_PIN_5 |  GPIO_PIN_3 | GPIO_PIN_2);

         if(GPIOPinIntStatus(GPIO_PORTB_BASE, GPIO_PIN_2 ) )
         {
             GPIOPinIntClear(GPIO_PORTB_BASE, GPIO_PIN_2);

         
             if(GPIOPinRead(GPIO_PORTB_BASE, GPIO_PIN_4))
             {
                 GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_4, 0x00);
             }
             else
             {
                 GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_4, 0x10);
             }

         }


         if(GPIOPinIntStatus(GPIO_PORTB_BASE, GPIO_PIN_3 ))
         {
             GPIOPinIntClear(GPIO_PORTB_BASE, GPIO_PIN_3);

          
             if(GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_7))
             {
                 GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_7, 0x00);
             }
             else
             {
                 GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_7, 0x80);
             }

         }

         if(GPIOPinIntStatus(GPIO_PORTB_BASE, GPIO_PIN_5 ))
         {
             GPIOPinIntClear(GPIO_PORTB_BASE, GPIO_PIN_5);


             if(GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4))
             {
                 GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0x00);
             }
             else
             {
                 GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0x10);
             }

         }

         if(GPIOPinIntStatus(GPIO_PORTB_BASE, GPIO_PIN_6 ))
         {
             GPIOPinIntClear(GPIO_PORTB_BASE, GPIO_PIN_6);
   

             if(GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_6))
             {
                 GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, 0x00);
             }
             else
             {
                 GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, 0x40);
             }

         }

         GPIOPinIntEnable(GPIO_PORTB_BASE,   GPIO_PIN_6 | GPIO_PIN_5 |  GPIO_PIN_3 | GPIO_PIN_2);


}


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>