#define cbi(reg, bitmask) *reg &= ~bitmask #define sbi(reg, bitmask) *reg |= bitmask const uint8_t LEFT=0; const uint8_t RIGHT=1; uint8_t nP[2][8] = {{0,17, 9,10,11,12,13,14},{18,17, 1, 2, 3, 6, 7, 8}}; // pins of version 1.0 using DP32 board definitions #if defined(__AVR__) volatile uint8_t *pP[2][8]; uint8_t bP[2][8]; #elif defined(__PIC32MX__) volatile uint32_t *pP[2][8]; uint32_t bP[2][8]; #endif void _IO_Init() { for (uint8_t i=0; i<2; i++){ for (uint8_t j=0; j<8; j++){ pP[i][j] = portOutputRegister(digitalPinToPort(nP[i][j])); bP[i][j] = digitalPinToBitMask(nP[i][j]); } } } void setup() { _IO_Init(); for (uint8_t i=0; i<8; i++){ pinMode(nP[RIGHT][i],OUTPUT); } } void loop() { sbi(pP[RIGHT][2], bP[RIGHT][2]); delay(500); cbi(pP[RIGHT][2], bP[RIGHT][2]); delay(100); }