Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BUTTON_1_2_PRESSED 0
- #define BUTTON_1_PRESSED 4
- #define BUTTON_2_PRESSED 8
- #define LED_1 LATA.F0
- #define LED_2 LATA.F1
- #define EVERLOOP while (1)
- #define FALSE 0
- #define TRUE 1
- #define STATE_LOW 0
- #define STATE_HIGH 1
- unsigned int _FreqLED;
- unsigned int _ButtonPressed;
- unsigned int _LedSelected;
- unsigned int _PORTDValue;
- void initMCU() {
- ANCON0 = ANCON1 = 0;
- TRISA = 0;
- TRISD = 12;
- LATA = LATD = 0;
- PORTA = PORTD = 0;
- _FreqLED = 0;
- _LedSelected = 1;
- }
- void delay(const unsigned int duration) {
- unsigned int ms = 0;
- EVERLOOP {
- delay_ms(1);
- ms++;
- if (PORTD != 12 || ms == duration) {
- break;
- }
- }
- }
- void oscLed1() {
- switch (_FreqLED) {
- case 0:
- LED_1 = STATE_LOW;
- break;
- case 1:
- LED_1 = STATE_HIGH;
- delay(2000);
- LED_1 = STATE_LOW;
- delay(2000);
- break;
- case 2:
- LED_1 = STATE_LOW;
- delay(1500);
- LED_1 = STATE_HIGH;
- delay(1500);
- break;
- case 3:
- LED_1 = STATE_HIGH;
- delay(1000);
- LED_1 = STATE_LOW;
- delay(1000);
- break;
- case 4:
- LED_1 = STATE_LOW;
- delay(750);
- LED_1 = STATE_HIGH;
- delay(750);
- break;
- case 5:
- LED_1 = STATE_HIGH;
- delay(500);
- LED_1 = STATE_LOW;
- delay(500);
- break;
- default:
- break;
- }
- }
- void oscLed2() {
- switch (_FreqLED) {
- case 0:
- LED_2 = STATE_LOW;
- break;
- case 1:
- LED_2 = STATE_HIGH;
- delay(2000);
- LED_2 = STATE_LOW;
- delay(2000);
- break;
- case 2:
- LED_2 = STATE_LOW;
- delay(1500);
- LED_2 = STATE_HIGH;
- delay(1500);
- break;
- case 3:
- LED_2 = STATE_HIGH;
- delay(1000);
- LED_2 = STATE_LOW;
- delay(1000);
- break;
- case 4:
- LED_2 = STATE_LOW;
- delay(750);
- LED_2 = STATE_HIGH;
- delay(750);
- break;
- case 5:
- LED_2 = STATE_HIGH;
- delay(500);
- LED_2 = STATE_LOW;
- delay(500);
- break;
- default:
- break;
- }
- }
- void main() {
- initMCU();
- EVERLOOP {
- if (_LedSelected == 1) {
- oscLed1();
- } else if (_LedSelected == 2) {
- oscLed2();
- }
- switch (PORTD) {
- case BUTTON_1_PRESSED:
- if (_ButtonPressed == FALSE) {
- _ButtonPressed = TRUE;
- if (_LedSelected == 1) {
- if (_FreqLED == 5) {
- _FreqLED = 0;
- } else {
- _FreqLED++;
- }
- } else {
- _LedSelected = 1;
- LED_2 = STATE_LOW;
- }
- }
- break;
- case BUTTON_2_PRESSED:
- if (_ButtonPressed == FALSE) {
- _ButtonPressed = TRUE;
- if (_LedSelected == 2) {
- if (_FreqLED == 5) {
- _FreqLED = 0;
- } else {
- _FreqLED++;
- }
- } else {
- _LedSelected = 2;
- LED_1 = STATE_LOW;
- }
- }
- break;
- case 12:
- _ButtonPressed = FALSE;
- break;
- default:
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement