#include #include #include int assign[15] = {17,18,27,22,23,24,25,4,2,3,10,9,11,8,7}; FILE *fp; char s[130]; 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 ) ); } } void data_file_read(){ int i; if ((fp = fopen("/media/ramdisk/test.txt", "rb")) == NULL) { printf("\nread error!!\n"); } else{ for(i=0; i<129; i++){ s[i] = fgetc(fp); } s[129] = 0; fclose(fp); } } int main(void) { int i, j, l, k=0; if (!bcm2835_init()){ printf("GPIO is not found.\n"); 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); for (l=0; l<10; l++) { for (j=0; j<128; j++) { EXT_out(j, 1); for (i=0; i<256; i++) { GPIO_out(i, 1); for (k=0; k<100; k++) { data_file_read(); } } } } GPIO_out(0, 1); EXT_out(0, 1); bcm2835_close(); return 0; }