static int doExtensionSr595 (char *progName, int pinBase, char *params) { int pins, data, clock, latch ; // Extract pins if ((params = extractInt (progName, params, &pins)) == NULL) return FALSE ; if ((pins < 8) || (pins > 32)) { verbError ("%s: pin count (%d) out of range - 8-32 expected.", progName, pins) ; return FALSE ; } if ((params = extractInt (progName, params, &data)) == NULL) return FALSE ; if ((params = extractInt (progName, params, &clock)) == NULL) return FALSE ; if ((params = extractInt (progName, params, &latch)) == NULL) return FALSE ; sr595Setup (pinBase, pins, data, clock, latch) ; return TRUE ; }
int main(int argc, char *argv[]) { int i, j, color; wiringPiSetup(); sr595Setup(100, 32, 12, 14, 10); for(i = 0; i < 32; i++) { pinMode(100 + i, OUTPUT); } #if 1 for(i =0; i< 24; i++) { digitalWrite(100 + i, 1); } for(i =0; i< 8; i++) { digitalWrite(124 + i, 0); } #endif color = 0b010; //green if(argc > 1 ) { color = atoi(argv[1]); } while(1) { int k; for(k=0; k<500; k++) { for(i=0; i<8; i++) { for(j=0; j<8; j++) { if(*(((unsigned char *)p[k/100])+j*8+i) == 1) //set(i, j, color); set(i, j, random()%7+1); } } if(k%100 == 0) delay(100); } } }
int main(void) { int i; int bit; if(wiringPiSetup() < 0){ printf("wiringPi setup failed !\n"); return -1; } sr595Setup(100, 10, 2, 1, 0); while(1){ for(i = 0; i < sizeof(SegCode); i++){ for(bit = 0; bit < 8; bit++){ digitalWrite(100+bit, SegCode[i] & (1<<bit)); delay(1); } delay(500); } } return 0; }
int main(void) { int i; int bit; if(wiringPiSetup() == -1){ printf("wiringPi setup error!\n"); return -1; } sr595Setup(100, 10, 0, 2, 1); while(1){ for(i = 0; i < sizeof(seg); i++){ for(bit = 0; bit < 8; bit++){ digitalWrite(100+bit, seg[i] & (1<<bit)); delay(1); } delay(500); } } return 0; }