====Objectives==== To build a binary counter using LEDs and a raspberry pi ====Prerequisites==== raspberry pie,monitor, keyboard, data cable, hdmi to usb cable, network cable ====Background==== The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.[7][8][9][10][11] The Raspberry Pi is manufactured through licensed manufacturing deals with Newark element14 (Premier Farnell), RS Components and Egoman. All of these companies sell the Raspberry Pi online.[12] Egoman produces a version for distribution solely in China and Taiwan, which can be distinguished from other Pis by their red coloring and lack of FCC/CE marks. The hardware is the same across all manufacturers. ====Code==== #include "rpi.h" void clear() { GPIO_CLR = 1 << 7; GPIO_CLR = 1 << 8; GPIO_CLR = 1 << 9; GPIO_CLR = 1 << 10; sleep(1); } int main() { if(map_peripheral(&gpio) == -1) { printf("Failed to map the physical GPIO registers into the virtual memory space.\n"); return -1; } int count = 0; // Define pin 7 as output INP_GPIO(7); OUT_GPIO(7); INP_GPIO(8); OUT_GPIO(8); INP_GPIO(9); OUT_GPIO(9); INP_GPIO(10); OUT_GPIO(10); // Toggle pin 7 (blink a led!) //15 GPIO_SET = 1 << 7; GPIO_SET = 1 << 8; GPIO_SET = 1 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); //14 GPIO_SET = 1 << 7; GPIO_SET = 1 << 8; GPIO_SET = 1 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); //13 GPIO_SET = 1 << 7; GPIO_SET = 1 << 8; GPIO_SET = 0 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 1 << 7; GPIO_SET = 1 << 8; GPIO_SET = 0 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 1 << 7; GPIO_SET = 0 << 8; GPIO_SET = 1 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 1 << 7; GPIO_SET = 0 << 8; GPIO_SET = 1 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 1 << 7; GPIO_SET = 0 << 8; GPIO_SET = 0 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 1 << 7; GPIO_SET = 0 << 8; GPIO_SET = 0 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 1 << 8; GPIO_SET = 1 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 1 << 8; GPIO_SET = 1 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 1 << 8; GPIO_SET = 0 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 1 << 8; GPIO_SET = 0 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 0 << 8; GPIO_SET = 1 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 0 << 8; GPIO_SET = 1 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 0 << 8; GPIO_SET = 0 << 9; GPIO_SET = 1 << 10; sleep(2); clear(); GPIO_SET = 0 << 7; GPIO_SET = 0 << 8; GPIO_SET = 0 << 9; GPIO_SET = 0 << 10; sleep(2); clear(); return 0; } ====Reflection==== even though this was a cheesy counter program it was really neat to see the counter work!!