Beispiel #1
0
/*---------------------------------------------------------------------------*/
void
leds_arch_set(unsigned char leds)
{
#if DISCOVERY
  GPIO_WRITE_PIN(GPIO_C_BASE, LEDS_GPIO_PIN_MASK, leds);
#else//DISCOVERY
  GPIO_WRITE_PIN(GPIO_B_BASE, LEDS_GPIO_PIN_MASK, leds);
#endif//DISCOVERY
}
Beispiel #2
0
/*---------------------------------------------------------------------------*/
int
led_strip_switch(uint8_t val)
{
  if(!initialized) {
    return LED_STRIP_ERROR;
  }

  if(val != LED_STRIP_ON && val != LED_STRIP_OFF) {
    return LED_STRIP_ERROR;
  }

  /* Set the LED to ON or OFF */
  GPIO_WRITE_PIN(LED_STRIP_PORT_BASE, LED_STRIP_PIN_MASK, val);

  return val;
}
Beispiel #3
0
static void send_frame(int fileDescriptor, uint8_t txbuf[], int buffsize)
{
#ifdef OLIMEX
    ////("olimex sendframe \n");
    // GPIO 65 = LED
    // GPIO 20 = SSP2_MOSI = LED DATA = OL Micro CON2 pin 10 = OL Maxi UEXT pin 8
    // GPIO 24 = SSP2_SCK = LED CLOCK = OL Micro CON2 pin 11 = OL Maxi UEXT pin 9
    GPIO_WRITE_PIN(65,1);
    uint8_t i, j, v, b;
    for (i=0; i<buffsize; i++) {
        v = txbuf[i];
        b = 0x80;
        for (j=0; j<bits; j++) {
            GPIO_WRITE_PIN(20,v&b);
            b >>= 1;
            GPIO_WRITE_PIN(24,1);
            GPIO_WRITE_PIN(24,0);
        }
    }
    GPIO_WRITE_PIN(65,0);
#else
    int ret;
    int j  = 0;
    int offset;
    uint8_t rx[385] = { 0, };
    struct spi_ioc_transfer tr = {
        .tx_buf = (unsigned long)txbuf,
        .rx_buf = (unsigned long)rx,
        .len = buffsize,
        .delay_usecs = delay,
        .speed_hz = speed,
        .bits_per_word = bits,
    };

    //////("buffsize %d\n", buffsize);
    ret = ioctl(fileDescriptor, SPI_IOC_MESSAGE(1), &tr);
    if (ret < 1)
        pabort("can't send spi message");
#endif
}


//move to lightnames.c?
int set_to_canonical(int outer, int face, int row, int col)
{
// Need to check for out-of-bounds here, but meh.
//        outer? face row col
    int outermap[NUM_FACES][ROWS_PER_FACE][COLS_PER_FACE] = {

        /* 1       3   0   0 */           CANONICAL_OUTER_RIGHT_POSTERIOR_TOP
        /* 1       3   0   1 */           ,CANONICAL_OUTER_RIGHT_POSTERIOR_CENTER
        /* 1       3   0   2 */           ,CANONICAL_OUTER_RIGHT_POSTERIOR_BOTTOM
        /* 1       3   1   0 */           ,CANONICAL_OUTER_RIGHT_CENTER_TOP
        /* 1       3   1   1 */           ,CANONICAL_OUTER_RIGHT_CENTER_CENTER
        /* 1       3   1   2 */           ,CANONICAL_OUTER_RIGHT_CENTER_BOTTOM
        /* 1       3   2   0 */           ,CANONICAL_OUTER_RIGHT_FRONT_TOP
        /* 1       3   2   1 */           ,CANONICAL_OUTER_RIGHT_FRONT_CENTER
        /* 1       3   2   2 */           ,CANONICAL_OUTER_RIGHT_FRONT_BOTTOM

        /* 1       2   0   0 */           ,CANONICAL_OUTER_BOTTOM_POSTERIOR_RIGHT
        /* 1       2   0   1 */           ,CANONICAL_OUTER_BOTTOM_POSTERIOR_CENTER
        /* 1       2   0   2 */           ,CANONICAL_OUTER_BOTTOM_POSTERIOR_LEFT
        /* 1       2   1   0 */           ,CANONICAL_OUTER_BOTTOM_CENTER_RIGHT
        /* 1       2   1   1 */           ,CANONICAL_OUTER_BOTTOM_CENTER_CENTER
        /* 1       2   1   2 */           ,CANONICAL_OUTER_BOTTOM_CENTER_LEFT
        /* 1       2   2   0 */           ,CANONICAL_OUTER_BOTTOM_FRONT_RIGHT
        /* 1       2   2   1 */           ,CANONICAL_OUTER_BOTTOM_FRONT_CENTER
        /* 1       2   2   2 */           ,CANONICAL_OUTER_BOTTOM_FRONT_LEFT
        
        /* 1       1   0   0 */           ,CANONICAL_OUTER_LEFT_POSTERIOR_BOTTOM
        /* 1       1   0   1 */           ,CANONICAL_OUTER_LEFT_POSTERIOR_CENTER
        /* 1       1   0   2 */           ,CANONICAL_OUTER_LEFT_POSTERIOR_TOP
        /* 1       1   1   0 */           ,CANONICAL_OUTER_LEFT_CENTER_BOTTOM
        /* 1       1   1   1 */           ,CANONICAL_OUTER_LEFT_CENTER_CENTER
        /* 1       1   1   2 */           ,CANONICAL_OUTER_LEFT_CENTER_TOP
        /* 1       1   2   0 */           ,CANONICAL_OUTER_LEFT_FRONT_BOTTOM
        /* 1       1   2   1 */           ,CANONICAL_OUTER_LEFT_FRONT_CENTER
        /* 1       1   2   2 */           ,CANONICAL_OUTER_LEFT_FRONT_TOP

        /* 1       0   0   0 */           ,CANONICAL_OUTER_TOP_POSTERIOR_LEFT
        /* 1       0   0   1 */           ,CANONICAL_OUTER_TOP_POSTERIOR_CENTER
        /* 1       0   0   2 */           ,CANONICAL_OUTER_TOP_POSTERIOR_RIGHT
        /* 1       0   1   0 */           ,CANONICAL_OUTER_TOP_CENTER_LEFT
        /* 1       0   1   1 */           ,CANONICAL_OUTER_TOP_CENTER_CENTER
        /* 1       0   1   2 */           ,CANONICAL_OUTER_TOP_CENTER_RIGHT
        /* 1       0   2   0 */           ,CANONICAL_OUTER_TOP_FRONT_LEFT
        /* 1       0   2   1 */           ,CANONICAL_OUTER_TOP_FRONT_CENTER
        /* 1       0   2   2 */           ,CANONICAL_OUTER_TOP_FRONT_RIGHT

    };
    int innermap[NUM_FACES][BULBS_INSIDE] = {

        /* 0       0   3 */               CANONICAL_INNER_RIGHT_POSTERIOR_TOP 
        /* 0       0   1 */               ,CANONICAL_INNER_RIGHT_FRONT_TOP
        /* 0       0   2 */               ,CANONICAL_INNER_RIGHT_POSTERIOR_BOTTOM
        /* 0       0   0 */               ,CANONICAL_INNER_RIGHT_FRONT_BOTTOM

        /* 0       0   3 */               ,CANONICAL_INNER_BOTTOM_POSTERIOR_RIGHT
        /* 0       0   1 */               ,CANONICAL_INNER_BOTTOM_FRONT_RIGHT
        /* 0       0   2 */               ,CANONICAL_INNER_BOTTOM_POSTERIOR_LEFT
        /* 0       0   0 */               ,CANONICAL_INNER_BOTTOM_FRONT_LEFT
  
        /* 0       0   3 */               ,CANONICAL_INNER_LEFT_POSTERIOR_BOTTOM
        /* 0       0   1 */               ,CANONICAL_INNER_LEFT_FRONT_BOTTOM
        /* 0       0   2 */               ,CANONICAL_INNER_LEFT_POSTERIOR_TOP
        /* 0       0   0 */               ,CANONICAL_INNER_LEFT_FRONT_TOP

        /* 0       0   3 */               ,CANONICAL_INNER_TOP_POSTERIOR_LEFT
        /* 0       0   1 */               ,CANONICAL_INNER_TOP_FRONT_LEFT
        /* 0       0   2 */               ,CANONICAL_INNER_TOP_POSTERIOR_RIGHT
        /* 0       0   0 */               ,CANONICAL_INNER_TOP_FRONT_RIGHT

    };
    if(outer) {
        return outermap[face][row][col];
    } else {
        return innermap[face][row];
    }
}
Beispiel #4
0
/*---------------------------------------------------------------------------*/
void
leds_arch_set(unsigned char leds)
{
  GPIO_WRITE_PIN(GPIO_C_BASE, LEDS_GPIO_PIN_MASK, leds);
}
Beispiel #5
0
// turn off all segments and dp of a digit
void initialise_digit(const digit ldigit) {
    for ( int x = 0; x < item_count; x++) {
      GPIO_WRITE_PIN(ldigit[x],0);
    }
}