#include // blink1.c → 「LED_blink」として起動時に自動実行 int assign[15] = {17,18,27,22,23,24,25,4,2,3,10,9,11,8,7}; void GPIO_out(int data, int mode){ int i; mode = mode & 1; // mode=0 : active high / mode=1 : active low data = data & 255; for (i=0; i<8; i++) { bcm2835_gpio_write( assign[i], ( ( (data >>i) & 1) ^ mode ) ); } } void EXT_out(int data, int mode){ int i; mode = mode & 1; // mode=0 : active high / mode=1 : active low data = data & 127; for (i=0; i<7; i++) { bcm2835_gpio_write( assign[i+8], ( ( (data >>i) & 1) ^ mode ) ); } } int main() { int i, j; if (!bcm2835_init()) return 1; for (i=0; i<15; i++) bcm2835_gpio_fsel(assign[i], BCM2835_GPIO_FSEL_OUTP); EXT_out(0, 1); GPIO_out(0, 1); while(1){ for (j=0; j<128; j++) { EXT_out(j, 1); for (i=0; i<256; i++) { GPIO_out(i, 1); bcm2835_delay(1); // 1msec interval } } } EXT_out(0, 1); GPIO_out(0, 1); bcm2835_close(); }