void delay1(int num);
void setup() {
volatile int blink[] = {0x0000003f, 0x00000006, 0x0000005b, 0x0000004f, 0x00000066, 0x0000006d, 0x0000007d, 0x00000007, 0x0000007f, 0x00000067};
volatile int *configA, *configD, *setA, *setD;
volatile int dig1, dig2, i;
// GPIO Port A configuration
configA = (volatile int*)0x50000000;
*configA = 0x55555555; // Set PA0-PA7 as output (assuming 2 bits per pin for configuration)
// GPIO Port D configuration
configD = (volatile int*)0x50000C00;
*configD = 0x55555555; // Set PD0-PD1 as output (assuming 2 bits per pin for configuration)
// Set output data registers
setA = (volatile int*)0x50000018;
setD = (volatile int*)0x50000C18;
while (1) {
for(dig1=0;dig1<10;dig1++){
for(dig2=0;dig2<10;dig2++){
for(i=0;i<100;i++){
*setD = 0x00010003;
*setA = blink[dig1];
delay1(2);
*setA = 0x00ff0000;
*setD = 0x00020001;
*setA = blink[dig2];
delay1(2);
*setA = 0x00ff0000;
}
}
}
}
}
void loop() {
// Main loop remains empty
}
void delay1(int num) {
volatile int i;
while (num) {
for (i = 0; i < 1000; i++); // Adjust the delay loop as necessary
num--;
}
}