Changeset a5c56af in rtems


Ignore:
Timestamp:
Dec 15, 2016, 2:03:56 PM (3 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
c3764ce
Parents:
a4936b5
git-author:
Sebastian Huber <sebastian.huber@…> (12/15/16 14:03:56)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/16/16 08:04:58)
Message:

bsp/atsam: Move interrupt setup to PIO_Configure()

Location:
c/src/lib/libbsp/arm/atsam/libraries/libchip/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/atsam/libraries/libchip/source/pio.c

    ra4936b5 ra5c56af  
    206206        }
    207207
     208        /* Configure additional interrupt mode registers */
     209        if (attribute & PIO_IT_AIME) {
     210                // enable additional interrupt mode
     211                pio->PIO_AIMER  = mask;
     212
     213                // if bit field of selected pin is 1, set as Rising Edge/High level detection event
     214                if (attribute & PIO_IT_RE_OR_HL)
     215                        pio->PIO_REHLSR = mask;
     216                else
     217                        pio->PIO_FELLSR = mask;
     218
     219                /* if bit field of selected pin is 1, set as edge detection source */
     220                if (attribute & PIO_IT_EDGE)
     221                        pio->PIO_ESR = mask;
     222                else
     223                        pio->PIO_LSR = mask;
     224        } else {
     225                /* disable additional interrupt mode */
     226                pio->PIO_AIMDR = mask;
     227        }
     228
    208229        /* Configure pin as input */
    209230        pio->PIO_ODR = mask;
  • c/src/lib/libbsp/arm/atsam/libraries/libchip/source/pio_it.c

    ra4936b5 ra5c56af  
    258258    void *arg)
    259259{
    260         Pio *pio;
    261260        InterruptSource *pSource;
    262261        rtems_interrupt_level level;
    263262
    264263        TRACE_DEBUG("PIO_ConfigureIt()\n\r");
    265 
    266         pio = pPin->pio;
    267264
    268265        rtems_interrupt_disable(level);
     
    281278        /* Define new source */
    282279        TRACE_DEBUG("PIO_ConfigureIt: Defining new source #%d.\n\r", _dwNumSources);
    283 
    284         /* PIO3 with additional interrupt support
    285          * Configure additional interrupt mode registers */
    286         if (pPin->attribute & PIO_IT_AIME) {
    287                 // enable additional interrupt mode
    288                 pio->PIO_AIMER  = pPin->mask;
    289 
    290                 // if bit field of selected pin is 1, set as Rising Edge/High level detection event
    291                 if (pPin->attribute & PIO_IT_RE_OR_HL)
    292                         pio->PIO_REHLSR    = pPin->mask;
    293                 else
    294                         pio->PIO_FELLSR     = pPin->mask;
    295 
    296                 /* if bit field of selected pin is 1, set as edge detection source */
    297                 if (pPin->attribute & PIO_IT_EDGE)
    298                         pio->PIO_ESR     = pPin->mask;
    299                 else
    300                         pio->PIO_LSR     = pPin->mask;
    301         } else {
    302                 /* disable additional interrupt mode */
    303                 pio->PIO_AIMDR       = pPin->mask;
    304         }
    305 }
     280}
Note: See TracChangeset for help on using the changeset viewer.