From a8e69001322b7253208408838577f30aab261d7b Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Thu, 18 Mar 2021 20:24:12 +0100 Subject: [PATCH] interrupt doesn't generate -____- --- .../Opdracht 2.2/Debug/Opdracht 2.2.eep | 1 + .../Opdracht 2.2/Debug/Opdracht 2.2.lss | 207 ++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.eep create mode 100644 Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.lss diff --git a/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.eep b/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.eep new file mode 100644 index 0000000..7c166a1 --- /dev/null +++ b/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.lss b/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.lss new file mode 100644 index 0000000..03ca32e --- /dev/null +++ b/Microcontrollers/Opdracht 2.2/Debug/Opdracht 2.2.lss @@ -0,0 +1,207 @@ + +Opdracht 2.2.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .data 00000000 00800100 00800100 0000016c 2**0 + ALLOC, LOAD, DATA + 1 .text 000000a4 00000000 00000000 00000054 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .comment 0000002f 00000000 00000000 0000016c 2**0 + CONTENTS, READONLY + 3 .debug_aranges 00000038 00000000 00000000 0000019b 2**0 + CONTENTS, READONLY, DEBUGGING + 4 .debug_info 00000b13 00000000 00000000 000001d3 2**0 + CONTENTS, READONLY, DEBUGGING + 5 .debug_abbrev 00000819 00000000 00000000 00000ce6 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_line 000002da 00000000 00000000 000014ff 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_frame 00000074 00000000 00000000 000017dc 2**2 + CONTENTS, READONLY, DEBUGGING + 8 .debug_str 0000027d 00000000 00000000 00001850 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_loc 000000e2 00000000 00000000 00001acd 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_ranges 00000028 00000000 00000000 00001baf 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .text 00000004 00000114 00000114 00000168 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 12 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00001bd8 2**2 + CONTENTS, READONLY, DEBUGGING + 13 .text.__vector_2 00000028 000000a4 000000a4 000000f8 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 14 .text.__vector_3 00000028 000000cc 000000cc 00000120 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 15 .text.main 00000020 000000f4 000000f4 00000148 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 0c 94 46 00 jmp 0x8c ; 0x8c <__ctors_end> + 4: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 8: 0c 94 52 00 jmp 0xa4 ; 0xa4 <_etext> + c: 0c 94 66 00 jmp 0xcc ; 0xcc <__vector_3> + 10: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 14: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 18: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 1c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 20: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 24: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 28: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 2c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 30: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 34: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 38: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 3c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 40: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 44: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 48: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 4c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 50: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 54: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 58: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 5c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 60: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 64: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 68: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 6c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 70: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 74: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 78: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 7c: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 80: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 84: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + 88: 0c 94 8a 00 jmp 0x114 ; 0x114 <__bad_interrupt> + +0000008c <__ctors_end>: + 8c: 11 24 eor r1, r1 + 8e: 1f be out 0x3f, r1 ; 63 + 90: cf ef ldi r28, 0xFF ; 255 + 92: d0 e1 ldi r29, 0x10 ; 16 + 94: de bf out 0x3e, r29 ; 62 + 96: cd bf out 0x3d, r28 ; 61 + 98: 0e 94 7a 00 call 0xf4 ; 0xf4
+ 9c: 0c 94 50 00 jmp 0xa0 ; 0xa0 <_exit> + +000000a0 <_exit>: + a0: f8 94 cli + +000000a2 <__stop_program>: + a2: ff cf rjmp .-2 ; 0xa2 <__stop_program> + +Disassembly of section .text: + +00000114 <__bad_interrupt>: + 114: 0c 94 00 00 jmp 0 ; 0x0 <__TEXT_REGION_ORIGIN__> + +Disassembly of section .text.__vector_2: + +000000a4 <__vector_2>: +} +/************************************************************************/ +/* interrupt 1 +walk the light 1 down */ +/************************************************************************/ +ISR( INT1_vect ) { + a4: 1f 92 push r1 + a6: 0f 92 push r0 + a8: 0f b6 in r0, 0x3f ; 63 + aa: 0f 92 push r0 + ac: 11 24 eor r1, r1 + ae: 8f 93 push r24 + if (PORTC == 0b10000000) + b0: 85 b3 in r24, 0x15 ; 21 + b2: 80 38 cpi r24, 0x80 ; 128 + b4: 11 f4 brne .+4 ; 0xba <__vector_2+0x16> + { + PORTC == 0b00000001; + b6: 85 b3 in r24, 0x15 ; 21 + b8: 03 c0 rjmp .+6 ; 0xc0 <__vector_2+0x1c> + } else { + PORTC = PORTC << 1; + ba: 85 b3 in r24, 0x15 ; 21 + bc: 88 0f add r24, r24 + be: 85 bb out 0x15, r24 ; 21 + } + + +} + c0: 8f 91 pop r24 + c2: 0f 90 pop r0 + c4: 0f be out 0x3f, r0 ; 63 + c6: 0f 90 pop r0 + c8: 1f 90 pop r1 + ca: 18 95 reti + +Disassembly of section .text.__vector_3: + +000000cc <__vector_3>: + +/************************************************************************/ +/* interrupt 2 +walk the light 1 up */ +/************************************************************************/ +ISR( INT2_vect ) { + cc: 1f 92 push r1 + ce: 0f 92 push r0 + d0: 0f b6 in r0, 0x3f ; 63 + d2: 0f 92 push r0 + d4: 11 24 eor r1, r1 + d6: 8f 93 push r24 + if (PORTC == 0b00000001) + d8: 85 b3 in r24, 0x15 ; 21 + da: 81 30 cpi r24, 0x01 ; 1 + dc: 11 f4 brne .+4 ; 0xe2 <__vector_3+0x16> + { + PORTC = 0b10000000; + de: 80 e8 ldi r24, 0x80 ; 128 + e0: 85 bb out 0x15, r24 ; 21 + } + PORTC = PORTC >> 1; + e2: 85 b3 in r24, 0x15 ; 21 + e4: 86 95 lsr r24 + e6: 85 bb out 0x15, r24 ; 21 +} + e8: 8f 91 pop r24 + ea: 0f 90 pop r0 + ec: 0f be out 0x3f, r0 ; 63 + ee: 0f 90 pop r0 + f0: 1f 90 pop r1 + f2: 18 95 reti + +Disassembly of section .text.main: + +000000f4
: +int main(void) +{ + /* Replace with your application code */ + + // Init I/O + DDRD = 0xF0; // PORTD (7:4) is output, (3:0) is input + f4: 80 ef ldi r24, 0xF0 ; 240 + f6: 81 bb out 0x11, r24 ; 17 + DDRC = 0xFF; + f8: 8f ef ldi r24, 0xFF ; 255 + fa: 84 bb out 0x14, r24 ; 20 + + // Init Interrupt hardware + EICRA |= 0x2C; // INT2 falling edge, INT1 rising edge + fc: ea e6 ldi r30, 0x6A ; 106 + fe: f0 e0 ldi r31, 0x00 ; 0 + 100: 80 81 ld r24, Z + 102: 8c 62 ori r24, 0x2C ; 44 + 104: 80 83 st Z, r24 + EIMSK |= 0x06; // Enable INT2 & INT1 + 106: 89 b7 in r24, 0x39 ; 57 + 108: 86 60 ori r24, 0x06 ; 6 + 10a: 89 bf out 0x39, r24 ; 57 + + PORTC = 0x01; // init the first bit + 10c: 81 e0 ldi r24, 0x01 ; 1 + 10e: 85 bb out 0x15, r24 ; 21 + + sei(); // enable input mechanism + 110: 78 94 sei + 112: ff cf rjmp .-2 ; 0x112