Last active
June 7, 2018 16:33
-
-
Save itrobotics/c02e1f0d666af2bc3b72934476415f63 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bcm2835.h> | |
#include <stdio.h> | |
#define LED1 5 | |
#define LED2 6 | |
#define LED3 13 | |
#define LED4 26 | |
#define LED5 12 | |
#define COM 22 | |
#define RELAY 27 | |
#define PWM0 18 | |
#define PWM1 19 | |
#define IR_TX 25 | |
#define IR_RX 17 | |
#define DIP1 20 | |
#define DIP2 21 | |
#define BUTTON1 24 | |
#define BUTTON2 23 | |
#define BUZZER 16 | |
int main(int argc, char **argv) | |
{ | |
int i; | |
int value1,value2,value3,value4; | |
int led_array[]={LED2,LED4,LED3,LED5}; | |
int n=sizeof(led_array)/sizeof(led_array[0]); | |
if (!bcm2835_init()) | |
return 1; | |
// Set the p5in to be an output | |
bcm2835_gpio_fsel(COM, BCM2835_GPIO_FSEL_OUTP); | |
bcm2835_gpio_write(COM, HIGH); | |
bcm2835_gpio_fsel(LED1, BCM2835_GPIO_FSEL_OUTP); | |
bcm2835_gpio_fsel(BUZZER, BCM2835_GPIO_FSEL_OUTP); | |
bcm2835_gpio_write(BUZZER, LOW); | |
//DIP. button setup as input | |
bcm2835_gpio_fsel(DIP1, BCM2835_GPIO_FSEL_INPT); | |
bcm2835_gpio_fsel(DIP2, BCM2835_GPIO_FSEL_INPT); | |
bcm2835_gpio_fsel(BUTTON1, BCM2835_GPIO_FSEL_INPT); | |
bcm2835_gpio_fsel(BUTTON2, BCM2835_GPIO_FSEL_INPT); | |
for (i=0;i<n;i++) { | |
bcm2835_gpio_fsel(led_array[i], BCM2835_GPIO_FSEL_OUTP); | |
bcm2835_gpio_write(led_array[i], LOW); | |
} | |
i=0; | |
// Blink | |
while (1) | |
{ | |
value1= bcm2835_gpio_lev(DIP1); | |
value2= bcm2835_gpio_lev(DIP2); | |
value3= bcm2835_gpio_lev(BUTTON1); | |
value4= bcm2835_gpio_lev(BUTTON2); | |
printf("DIP1=%d,DIP2=%d,BUTTON1=%d,BUTTON2=%d\n", value1,value2,value3,value4); | |
// led blinking | |
bcm2835_gpio_write(led_array[i], HIGH); | |
bcm2835_delay(100); | |
bcm2835_gpio_write(led_array[i], LOW); | |
i=(i+1)%n; | |
//check led1 | |
if (value1==0 && value2==0) | |
bcm2835_gpio_write(LED1, HIGH); | |
else | |
bcm2835_gpio_write(LED1, LOW); | |
//check buzzer | |
if (value3==0 && value4==0) | |
bcm2835_gpio_write(BUZZER, HIGH); | |
else | |
bcm2835_gpio_write(BUZZER, LOW); | |
bcm2835_delay(100); | |
} | |
bcm2835_close(); | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment