Пример #1
0
void GPIOPortEIntHandler(void) {
  uint8_t p = MAP_GPIOPinIntStatus(GPIO_PORTE_BASE, true) & 0xFF;

  MAP_GPIOPinIntClear(GPIO_PORTE_BASE, p);

  HWREGBITW(&g_ulFlags, FLAG_ENC_INT) = 1;
}
static int int_gpio_negedge_get_flag( elua_int_resnum resnum, int clear )
{
  unsigned long portbase = pio_base[ PLATFORM_IO_GET_PORT( resnum ) ];
  u8 pinmask = 1 << PLATFORM_IO_GET_PIN( resnum );

  if( MAP_GPIOPinRead( portbase, pinmask ) != 0 )
    return 0;
  if( MAP_GPIOPinIntStatus( portbase, true ) & pinmask )
  {
    if( clear )
      MAP_GPIOPinIntClear( portbase, pinmask );
    return 1;
  }
  return 0;
}