Andrew Bell
/
lab2_2
not working
main.cpp@0:875133f6447b, 2021-02-07 (annotated)
- Committer:
- andrewbw01
- Date:
- Sun Feb 07 19:52:45 2021 +0000
- Revision:
- 0:875133f6447b
not working, InterruptIn()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewbw01 | 0:875133f6447b | 1 | #include "mbed.h" |
andrewbw01 | 0:875133f6447b | 2 | BusOut LED_Disp (p7,p11,p9,p8,p5,p6,p10,p12); |
andrewbw01 | 0:875133f6447b | 3 | InterruptIn plusbutton(p14); |
andrewbw01 | 0:875133f6447b | 4 | InterruptIn minusbutton(p15); |
andrewbw01 | 0:875133f6447b | 5 | DigitalOut led1 (LED1); |
andrewbw01 | 0:875133f6447b | 6 | DigitalOut led2 (LED2); |
andrewbw01 | 0:875133f6447b | 7 | |
andrewbw01 | 0:875133f6447b | 8 | |
andrewbw01 | 0:875133f6447b | 9 | void DisplayNumber(int); |
andrewbw01 | 0:875133f6447b | 10 | void flip() |
andrewbw01 | 0:875133f6447b | 11 | { |
andrewbw01 | 0:875133f6447b | 12 | LED_Disp = !LED_Disp; // toggle state of LED |
andrewbw01 | 0:875133f6447b | 13 | } |
andrewbw01 | 0:875133f6447b | 14 | |
andrewbw01 | 0:875133f6447b | 15 | int main() |
andrewbw01 | 0:875133f6447b | 16 | { |
andrewbw01 | 0:875133f6447b | 17 | plusbutton.rise(&flip); |
andrewbw01 | 0:875133f6447b | 18 | int i = 0; |
andrewbw01 | 0:875133f6447b | 19 | while(1) |
andrewbw01 | 0:875133f6447b | 20 | { |
andrewbw01 | 0:875133f6447b | 21 | if (plusbutton == 1) |
andrewbw01 | 0:875133f6447b | 22 | { |
andrewbw01 | 0:875133f6447b | 23 | led1 = 1; |
andrewbw01 | 0:875133f6447b | 24 | wait(0.5); |
andrewbw01 | 0:875133f6447b | 25 | i++; |
andrewbw01 | 0:875133f6447b | 26 | while(plusbutton) |
andrewbw01 | 0:875133f6447b | 27 | { |
andrewbw01 | 0:875133f6447b | 28 | DisplayNumber(i); |
andrewbw01 | 0:875133f6447b | 29 | } |
andrewbw01 | 0:875133f6447b | 30 | } |
andrewbw01 | 0:875133f6447b | 31 | |
andrewbw01 | 0:875133f6447b | 32 | if (minusbutton == 1) |
andrewbw01 | 0:875133f6447b | 33 | { |
andrewbw01 | 0:875133f6447b | 34 | led2 = 1; |
andrewbw01 | 0:875133f6447b | 35 | wait(0.5); |
andrewbw01 | 0:875133f6447b | 36 | i--; |
andrewbw01 | 0:875133f6447b | 37 | while(minusbutton) |
andrewbw01 | 0:875133f6447b | 38 | { |
andrewbw01 | 0:875133f6447b | 39 | DisplayNumber(i); |
andrewbw01 | 0:875133f6447b | 40 | } |
andrewbw01 | 0:875133f6447b | 41 | } |
andrewbw01 | 0:875133f6447b | 42 | } |
andrewbw01 | 0:875133f6447b | 43 | } |
andrewbw01 | 0:875133f6447b | 44 | |
andrewbw01 | 0:875133f6447b | 45 | |
andrewbw01 | 0:875133f6447b | 46 | void DisplayNumber(int num) |
andrewbw01 | 0:875133f6447b | 47 | { |
andrewbw01 | 0:875133f6447b | 48 | switch(num) |
andrewbw01 | 0:875133f6447b | 49 | { |
andrewbw01 | 0:875133f6447b | 50 | case 0: |
andrewbw01 | 0:875133f6447b | 51 | LED_Disp = ~0x3F; // bit pattern for 0 |
andrewbw01 | 0:875133f6447b | 52 | break; |
andrewbw01 | 0:875133f6447b | 53 | |
andrewbw01 | 0:875133f6447b | 54 | case 1: |
andrewbw01 | 0:875133f6447b | 55 | LED_Disp = ~0x06; |
andrewbw01 | 0:875133f6447b | 56 | break; |
andrewbw01 | 0:875133f6447b | 57 | |
andrewbw01 | 0:875133f6447b | 58 | case 2: |
andrewbw01 | 0:875133f6447b | 59 | LED_Disp = ~0x5B; |
andrewbw01 | 0:875133f6447b | 60 | break; |
andrewbw01 | 0:875133f6447b | 61 | |
andrewbw01 | 0:875133f6447b | 62 | case 3: |
andrewbw01 | 0:875133f6447b | 63 | LED_Disp = ~0x4F; |
andrewbw01 | 0:875133f6447b | 64 | break; |
andrewbw01 | 0:875133f6447b | 65 | |
andrewbw01 | 0:875133f6447b | 66 | case 4: |
andrewbw01 | 0:875133f6447b | 67 | LED_Disp = ~0x66; |
andrewbw01 | 0:875133f6447b | 68 | break; |
andrewbw01 | 0:875133f6447b | 69 | |
andrewbw01 | 0:875133f6447b | 70 | case 5: |
andrewbw01 | 0:875133f6447b | 71 | LED_Disp = ~0x6D; |
andrewbw01 | 0:875133f6447b | 72 | break; |
andrewbw01 | 0:875133f6447b | 73 | |
andrewbw01 | 0:875133f6447b | 74 | case 6: |
andrewbw01 | 0:875133f6447b | 75 | LED_Disp = ~0x7C; |
andrewbw01 | 0:875133f6447b | 76 | break; |
andrewbw01 | 0:875133f6447b | 77 | |
andrewbw01 | 0:875133f6447b | 78 | case 7: |
andrewbw01 | 0:875133f6447b | 79 | LED_Disp = ~0x07; |
andrewbw01 | 0:875133f6447b | 80 | break; |
andrewbw01 | 0:875133f6447b | 81 | |
andrewbw01 | 0:875133f6447b | 82 | case 8: |
andrewbw01 | 0:875133f6447b | 83 | LED_Disp = ~0x7F; |
andrewbw01 | 0:875133f6447b | 84 | break; |
andrewbw01 | 0:875133f6447b | 85 | |
andrewbw01 | 0:875133f6447b | 86 | case 9: |
andrewbw01 | 0:875133f6447b | 87 | LED_Disp = ~0x67; |
andrewbw01 | 0:875133f6447b | 88 | break; |
andrewbw01 | 0:875133f6447b | 89 | } |
andrewbw01 | 0:875133f6447b | 90 | } |
andrewbw01 | 0:875133f6447b | 91 |