Working but very buggy

Dependencies:   mbed

Committer:
andrewbw01
Date:
Tue Feb 09 18:04:24 2021 +0000
Revision:
0:147fce697a5d
Working but very buggy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewbw01 0:147fce697a5d 1 #include "mbed.h"
andrewbw01 0:147fce697a5d 2
andrewbw01 0:147fce697a5d 3 BusOut LED_Disp(p7,p11,p9,p8,p5,p6,p10,p12);
andrewbw01 0:147fce697a5d 4
andrewbw01 0:147fce697a5d 5 InterruptIn button_up(p14); //assign interrupt to 14 and 15
andrewbw01 0:147fce697a5d 6 InterruptIn button_down(p17);
andrewbw01 0:147fce697a5d 7
andrewbw01 0:147fce697a5d 8 int counter1; //global counter value
andrewbw01 0:147fce697a5d 9
andrewbw01 0:147fce697a5d 10 void Increment_up(void); //ISR to be assigned to button_up interrupt
andrewbw01 0:147fce697a5d 11 void Increment_down(void);
andrewbw01 0:147fce697a5d 12 void DisplayNumber(int); //function to display number on seven segment
andrewbw01 0:147fce697a5d 13
andrewbw01 0:147fce697a5d 14 int main()
andrewbw01 0:147fce697a5d 15 {
andrewbw01 0:147fce697a5d 16 button_up.rise(&Increment_up); //attach adress of ISR to interrupt
andrewbw01 0:147fce697a5d 17 button_down.rise(&Increment_down);
andrewbw01 0:147fce697a5d 18
andrewbw01 0:147fce697a5d 19 while(1)
andrewbw01 0:147fce697a5d 20 {
andrewbw01 0:147fce697a5d 21 wait(0.2);
andrewbw01 0:147fce697a5d 22 }
andrewbw01 0:147fce697a5d 23 }
andrewbw01 0:147fce697a5d 24
andrewbw01 0:147fce697a5d 25 // Interrupt function to increment counter
andrewbw01 0:147fce697a5d 26 void Increment_up(void)
andrewbw01 0:147fce697a5d 27 {
andrewbw01 0:147fce697a5d 28 counter1++; //increment counter
andrewbw01 0:147fce697a5d 29
andrewbw01 0:147fce697a5d 30 if(counter1 <0) // check for min value
andrewbw01 0:147fce697a5d 31 counter1 = 0;
andrewbw01 0:147fce697a5d 32
andrewbw01 0:147fce697a5d 33 if(counter1 >9) //check for max value
andrewbw01 0:147fce697a5d 34 counter1 = 9;
andrewbw01 0:147fce697a5d 35
andrewbw01 0:147fce697a5d 36 DisplayNumber(counter1); //display counter1 number on seven segment
andrewbw01 0:147fce697a5d 37 wait(0.3); //debounce timer
andrewbw01 0:147fce697a5d 38
andrewbw01 0:147fce697a5d 39 }
andrewbw01 0:147fce697a5d 40
andrewbw01 0:147fce697a5d 41 void Increment_down(void)
andrewbw01 0:147fce697a5d 42 {
andrewbw01 0:147fce697a5d 43 counter1--;
andrewbw01 0:147fce697a5d 44 if(counter1 <0)
andrewbw01 0:147fce697a5d 45 counter1 = 0;
andrewbw01 0:147fce697a5d 46
andrewbw01 0:147fce697a5d 47 if(counter1 >9)
andrewbw01 0:147fce697a5d 48 counter1 = 9;
andrewbw01 0:147fce697a5d 49
andrewbw01 0:147fce697a5d 50 DisplayNumber(counter1);
andrewbw01 0:147fce697a5d 51 wait(0.3);
andrewbw01 0:147fce697a5d 52 }
andrewbw01 0:147fce697a5d 53
andrewbw01 0:147fce697a5d 54 //funtion to display counter1 on seven segment
andrewbw01 0:147fce697a5d 55 void DisplayNumber(int num)
andrewbw01 0:147fce697a5d 56 {
andrewbw01 0:147fce697a5d 57 switch(num)
andrewbw01 0:147fce697a5d 58 {
andrewbw01 0:147fce697a5d 59 case 0:
andrewbw01 0:147fce697a5d 60 LED_Disp = ~0x3F;
andrewbw01 0:147fce697a5d 61 break;
andrewbw01 0:147fce697a5d 62 case 1:
andrewbw01 0:147fce697a5d 63 LED_Disp = ~0x06;
andrewbw01 0:147fce697a5d 64 break;
andrewbw01 0:147fce697a5d 65 case 2:
andrewbw01 0:147fce697a5d 66 LED_Disp = ~0x5B;
andrewbw01 0:147fce697a5d 67 break;
andrewbw01 0:147fce697a5d 68 case 3:
andrewbw01 0:147fce697a5d 69 LED_Disp = ~0x4F;
andrewbw01 0:147fce697a5d 70 break;
andrewbw01 0:147fce697a5d 71 case 4:
andrewbw01 0:147fce697a5d 72 LED_Disp = ~0x66;
andrewbw01 0:147fce697a5d 73 break;
andrewbw01 0:147fce697a5d 74 case 5:
andrewbw01 0:147fce697a5d 75 LED_Disp = ~0x6D;
andrewbw01 0:147fce697a5d 76 break;
andrewbw01 0:147fce697a5d 77 case 6:
andrewbw01 0:147fce697a5d 78 LED_Disp = ~0x7D;
andrewbw01 0:147fce697a5d 79 break;
andrewbw01 0:147fce697a5d 80 case 7:
andrewbw01 0:147fce697a5d 81 LED_Disp = ~0x07;
andrewbw01 0:147fce697a5d 82 break;
andrewbw01 0:147fce697a5d 83 case 8:
andrewbw01 0:147fce697a5d 84 LED_Disp = ~0x7F;
andrewbw01 0:147fce697a5d 85 break;
andrewbw01 0:147fce697a5d 86 case 9:
andrewbw01 0:147fce697a5d 87 LED_Disp = ~0x67;
andrewbw01 0:147fce697a5d 88 break;
andrewbw01 0:147fce697a5d 89 }
andrewbw01 0:147fce697a5d 90 }
andrewbw01 0:147fce697a5d 91
andrewbw01 0:147fce697a5d 92
andrewbw01 0:147fce697a5d 93
andrewbw01 0:147fce697a5d 94
andrewbw01 0:147fce697a5d 95