diff --git a/code/build/DS3231.lst b/code/build/DS3231.lst deleted file mode 100644 index 6d1ee46..0000000 --- a/code/build/DS3231.lst +++ /dev/null @@ -1,96 +0,0 @@ - 1 .file "DS3231.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __RAMPZ__ = 0x3b - 6 __tmp_reg__ = 0 - 7 __zero_reg__ = 1 - 8 .text - 9 .Ltext0: - 10 .cfi_sections .debug_frame - 11 .global DS3231_init - 13 DS3231_init: - 14 .LFB0: - 15 .file 1 "src/DS3231.c" - 1:src/DS3231.c **** #include "i2c.h" - 2:src/DS3231.c **** #include "DS3231.h" - 3:src/DS3231.c **** #include "pinout.h" - 4:src/DS3231.c **** #include - 5:src/DS3231.c **** - 6:src/DS3231.c **** - 7:src/DS3231.c **** - 8:src/DS3231.c **** void DS3231_init(void){ - 16 .loc 1 8 0 - 17 .cfi_startproc - 18 /* prologue: function */ - 19 /* frame size = 0 */ - 20 /* stack size = 0 */ - 21 .L__stack_usage = 0 - 22 0000 0895 ret - 23 .cfi_endproc - 24 .LFE0: - 26 .global DS3231_seconds - 28 DS3231_seconds: - 29 .LFB1: - 9:src/DS3231.c **** //i2c_start(DS3231_ADDRESS); - 10:src/DS3231.c **** } - 11:src/DS3231.c **** - 12:src/DS3231.c **** - 13:src/DS3231.c **** - 14:src/DS3231.c **** int DS3231_seconds(void){ - 30 .loc 1 14 0 - 31 .cfi_startproc - 32 /* prologue: function */ - 33 /* frame size = 0 */ - 34 /* stack size = 0 */ - 35 .L__stack_usage = 0 - 15:src/DS3231.c **** - 16:src/DS3231.c **** char ret = i2c_start(DS3231_ADDRESS+I2C_WRITE); - 36 .loc 1 16 0 - 37 0002 88E6 ldi r24,lo8(104) - 38 0004 0E94 0000 call i2c_start - 39 .LVL0: - 17:src/DS3231.c **** /* - 18:src/DS3231.c **** USART_Transmit_String(" Return "); - 19:src/DS3231.c **** //putchar(ret); - 20:src/DS3231.c **** USART_Transmit_String("\n"); - 21:src/DS3231.c **** */ - 22:src/DS3231.c **** /* - 23:src/DS3231.c **** if(ret){ //failed - 24:src/DS3231.c **** PORTB |= STATUS_LED_B; - 25:src/DS3231.c **** i2c_stop(); - 26:src/DS3231.c **** }else{ - 27:src/DS3231.c **** // issuing start condition ok, device accessible - 28:src/DS3231.c **** i2c_write(0x05); // write address = 5 - 29:src/DS3231.c **** i2c_write(0x75); // ret=0 -> Ok, ret=1 -> no ACK - 30:src/DS3231.c **** i2c_stop(); - 31:src/DS3231.c **** - 32:src/DS3231.c **** i2c_start_wait(DS3231_ADDRESS+I2C_WRITE); // set device address and write mode - 33:src/DS3231.c **** i2c_write(REG_SECONDS); // write address = 5 - 34:src/DS3231.c **** i2c_rep_start(DS3231_ADDRESS+I2C_READ); // set device address and read mode - 35:src/DS3231.c **** ret = i2c_readNak(); // read one byte - 36:src/DS3231.c **** i2c_stop(); - 37:src/DS3231.c **** } - 38:src/DS3231.c **** - 39:src/DS3231.c **** return ret; - 40:src/DS3231.c **** */ - 41:src/DS3231.c **** } - 40 .loc 1 41 0 - 41 0008 0895 ret - 42 .cfi_endproc - 43 .LFE1: - 45 .Letext0: - 46 .file 2 "inc/i2c.h" -DEFINED SYMBOLS - *ABS*:00000000 DS3231.c -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:2 *ABS*:0000003e __SP_H__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:3 *ABS*:0000003d __SP_L__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:4 *ABS*:0000003f __SREG__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:5 *ABS*:0000003b __RAMPZ__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:13 .text:00000000 DS3231_init -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:28 .text:00000002 DS3231_seconds - -UNDEFINED SYMBOLS -i2c_start diff --git a/code/build/DS3231.o b/code/build/DS3231.o deleted file mode 100644 index 50a84ff..0000000 Binary files a/code/build/DS3231.o and /dev/null differ diff --git a/code/build/adc 2.o b/code/build/adc 2.o deleted file mode 100644 index 10c5cfb..0000000 Binary files a/code/build/adc 2.o and /dev/null differ diff --git a/code/build/adc.lst b/code/build/adc.lst deleted file mode 100644 index d5b727a..0000000 --- a/code/build/adc.lst +++ /dev/null @@ -1,114 +0,0 @@ - 1 .file "adc.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __RAMPZ__ = 0x3b - 6 __tmp_reg__ = 0 - 7 __zero_reg__ = 1 - 8 .text - 9 .Ltext0: - 10 .cfi_sections .debug_frame - 11 .global adc_setup - 13 adc_setup: - 14 .LFB0: - 15 .file 1 "src/adc.c" - 1:src/adc.c **** #include "adc.h" - 2:src/adc.c **** #include "pinout.h" - 3:src/adc.c **** #include - 4:src/adc.c **** - 5:src/adc.c **** void adc_setup(void){ - 16 .loc 1 5 0 - 17 .cfi_startproc - 18 /* prologue: function */ - 19 /* frame size = 0 */ - 20 /* stack size = 0 */ - 21 .L__stack_usage = 0 - 6:src/adc.c **** ADMUX = (1 << REFS0); //Versorgungsspannung definieren - 22 .loc 1 6 0 - 23 0000 80E4 ldi r24,lo8(64) - 24 0002 8093 7C00 sts 124,r24 - 7:src/adc.c **** ADCSRA|= (1 << ADEN) //enable bit für adc - 25 .loc 1 7 0 - 26 0006 EAE7 ldi r30,lo8(122) - 27 0008 F0E0 ldi r31,0 - 28 000a 8081 ld r24,Z - 29 000c 8368 ori r24,lo8(-125) - 30 000e 8083 st Z,r24 - 31 0010 0895 ret - 32 .cfi_endproc - 33 .LFE0: - 35 .global adc_read - 37 adc_read: - 38 .LFB1: - 8:src/adc.c **** | (1 << ADPS0) //setze Prescaler für Abtastfrequenz - 9:src/adc.c **** | (1 << ADPS1) //setze Prescaler für Abtastfrequenz - 10:src/adc.c **** | (0 << ADPS2); //setze Prescaler für Abtastfrequenz - 11:src/adc.c **** } - 12:src/adc.c **** - 13:src/adc.c **** - 14:src/adc.c **** - 15:src/adc.c **** int adc_read(unsigned char adc_pin) { - 39 .loc 1 15 0 - 40 .cfi_startproc - 41 .LVL0: - 42 /* prologue: function */ - 43 /* frame size = 0 */ - 44 /* stack size = 0 */ - 45 .L__stack_usage = 0 - 16:src/adc.c **** ADMUX &= 0b11110000; //Alte Port-Select Flags löschen - 46 .loc 1 16 0 - 47 0012 9091 7C00 lds r25,124 - 48 0016 907F andi r25,lo8(-16) - 49 0018 9093 7C00 sts 124,r25 - 17:src/adc.c **** ADMUX|=adc_pin; //Neuen Eingang setzen - 50 .loc 1 17 0 - 51 001c 9091 7C00 lds r25,124 - 52 0020 982B or r25,r24 - 53 0022 9093 7C00 sts 124,r25 - 18:src/adc.c **** ADCSRA |= (1 << ADSC); // eine Wandlung "single conversion" - 54 .loc 1 18 0 - 55 0026 8091 7A00 lds r24,122 - 56 .LVL1: - 57 002a 8064 ori r24,lo8(64) - 58 002c 8093 7A00 sts 122,r24 - 59 .L4: - 19:src/adc.c **** while (ADCSRA & (1 << ADSC) ) { // auf Abschluss der Konvertierung warten - 60 .loc 1 19 0 discriminator 1 - 61 0030 8091 7A00 lds r24,122 - 62 0034 86FD sbrc r24,6 - 63 0036 00C0 rjmp .L4 - 20:src/adc.c **** } - 21:src/adc.c **** int ADCresult = ADCL; - 64 .loc 1 21 0 - 65 0038 2091 7800 lds r18,120 - 66 .LVL2: - 22:src/adc.c **** ADCresult += (ADCH << 8); - 67 .loc 1 22 0 - 68 003c 8091 7900 lds r24,121 - 69 .LVL3: - 70 0040 90E0 ldi r25,0 - 71 0042 982F mov r25,r24 - 72 0044 8827 clr r24 - 73 .LVL4: - 23:src/adc.c **** return ADCresult; - 24:src/adc.c **** } - 74 .loc 1 24 0 - 75 0046 820F add r24,r18 - 76 0048 911D adc r25,__zero_reg__ - 77 004a 0895 ret - 78 .cfi_endproc - 79 .LFE1: - 81 .Letext0: - 82 .file 2 "/usr/local/CrossPack-AVR-20131216/avr/include/stdint.h" -DEFINED SYMBOLS - *ABS*:00000000 adc.c -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:2 *ABS*:0000003e __SP_H__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:3 *ABS*:0000003d __SP_L__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:4 *ABS*:0000003f __SREG__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:5 *ABS*:0000003b __RAMPZ__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:13 .text:00000000 adc_setup -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:37 .text:00000012 adc_read - -NO UNDEFINED SYMBOLS diff --git a/code/build/adc.o b/code/build/adc.o deleted file mode 100644 index 20ee721..0000000 Binary files a/code/build/adc.o and /dev/null differ diff --git a/code/build/i2c.lst b/code/build/i2c.lst deleted file mode 100644 index f0f23c9..0000000 --- a/code/build/i2c.lst +++ /dev/null @@ -1,185 +0,0 @@ - 1 .file "i2c.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __RAMPZ__ = 0x3b - 6 __tmp_reg__ = 0 - 7 __zero_reg__ = 1 - 8 .text - 9 .Ltext0: - 10 .cfi_sections .debug_frame - 11 .global i2c_init - 13 i2c_init: - 14 .LFB0: - 15 .file 1 "src/i2c.c" - 1:src/i2c.c **** #include "i2c.h" - 2:src/i2c.c **** #include "pinout.h" - 3:src/i2c.c **** #include - 4:src/i2c.c **** #include - 5:src/i2c.c **** - 6:src/i2c.c **** - 7:src/i2c.c **** void i2c_init(void) - 8:src/i2c.c **** { - 16 .loc 1 8 0 - 17 .cfi_startproc - 18 /* prologue: function */ - 19 /* frame size = 0 */ - 20 /* stack size = 0 */ - 21 .L__stack_usage = 0 - 9:src/i2c.c **** /* initialize TWI clock: 100 kHz clock, TWPS = 0 => prescaler = 1 */ - 10:src/i2c.c **** - 11:src/i2c.c **** TWSR = 1; /* no prescaler */ - 22 .loc 1 11 0 - 23 0000 81E0 ldi r24,lo8(1) - 24 0002 8093 B900 sts 185,r24 - 12:src/i2c.c **** TWBR = ((F_CPU/SCL_CLOCK)-16)/2; /* must be > 10 for stable operation */ - 25 .loc 1 12 0 - 26 0006 8BE4 ldi r24,lo8(75) - 27 0008 8093 B800 sts 184,r24 - 28 000c 0895 ret - 29 .cfi_endproc - 30 .LFE0: - 32 .global i2c_start - 34 i2c_start: - 35 .LFB1: - 13:src/i2c.c **** - 14:src/i2c.c **** } - 15:src/i2c.c **** - 16:src/i2c.c **** - 17:src/i2c.c **** unsigned char i2c_start(unsigned char address){ - 36 .loc 1 17 0 - 37 .cfi_startproc - 38 .LVL0: - 39 /* prologue: function */ - 40 /* frame size = 0 */ - 41 /* stack size = 0 */ - 42 .L__stack_usage = 0 - 18:src/i2c.c **** char DATA = 0b10011000; - 19:src/i2c.c **** //Send START condition - 20:src/i2c.c **** TWCR = (1< - 4:src/main.c **** #include - 5:src/main.c **** #include //interrupts - 6:src/main.c **** #include - 7:src/main.c **** #include "pinout.h" - 8:src/main.c **** #include "print.h" - 9:src/main.c **** #include "adc.h" - 10:src/main.c **** #include "uart.h" - 11:src/main.c **** #include "i2c.h" - 12:src/main.c **** #include "DS3231.h" - 13:src/main.c **** - 14:src/main.c **** - 15:src/main.c **** /*README - 16:src/main.c **** DIP1 aktiviert Röhren-Schaltregler - 17:src/main.c **** */ - 18:src/main.c **** - 19:src/main.c **** volatile int counter = 0; - 20:src/main.c **** char text[22] = {'F','R','o','h','e',' ',' ','W','e','i','h','n','a','c','h','t','e', 'n', ' ',' ', - 21:src/main.c **** //char text[18] = {'1','2','3','4','5','6','7','8','9','t','s','c','a','f','e',' ', ' ', ' '}; - 22:src/main.c **** int offset = 0; - 23:src/main.c **** int animationtimer = 0; - 24:src/main.c **** int stringlength = 22; - 25:src/main.c **** int duty = 125; - 26:src/main.c **** - 27:src/main.c **** - 28:src/main.c **** void check_dip_switches(void); - 29:src/main.c **** void check_buttons(void); - 30:src/main.c **** void setup(void); - 31:src/main.c **** void set_PWM_duty(int dutycycle); - 32:src/main.c **** - 33:src/main.c **** int main(void){ - 34:src/main.c **** setup(); - 35:src/main.c **** - 36:src/main.c **** while(1){ - 37:src/main.c **** //putchar('c'); - 38:src/main.c **** //_delay_ms(50); - 39:src/main.c **** - 40:src/main.c **** check_dip_switches(); - 41:src/main.c **** check_buttons(); - 42:src/main.c **** - 43:src/main.c **** - 44:src/main.c **** - 45:src/main.c **** char current_section[6]; - 46:src/main.c **** for(int i = 0; i < 6; i++){ - 47:src/main.c **** current_section[i] = text[(i+offset)%stringlength]; - 48:src/main.c **** if(text[(i+offset)%stringlength] == ' ' && text[(i+1+offset)%stringlength] == ' '){ - 49:src/main.c **** PORTC |= DOT; - 50:src/main.c **** }else{ - 51:src/main.c **** PORTC &= ~DOT; - 52:src/main.c **** } - 53:src/main.c **** } - 54:src/main.c **** - 55:src/main.c **** - 56:src/main.c **** - 57:src/main.c **** //for(int i = 0; i < 6; i++){} - 58:src/main.c **** //char test_word[6] = {'0','0','0','0','0', (char)i}; - 59:src/main.c **** print_String(current_section); - 60:src/main.c **** //i2c_start(0b00101010); - 61:src/main.c **** // current_e - 62:src/main.c **** - 63:src/main.c **** - 64:src/main.c **** - 65:src/main.c **** /* - 66:src/main.c **** for(int i = 0; i < 6; i++) - 67:src/main.c **** SR_Buffer[i] = i; - 68:src/main.c **** - 69:src/main.c **** print_SR_Buffer(); - 70:src/main.c **** */ - 71:src/main.c **** //putchar((i2c_start(0x68))+48); - 72:src/main.c **** //i2c_write(0b00101010); - 73:src/main.c **** } - 74:src/main.c **** } - 75:src/main.c **** - 76:src/main.c **** void check_dip_switches() { - 16 .loc 1 76 0 - 17 .cfi_startproc - 18 /* prologue: function */ - 19 /* frame size = 0 */ - 20 /* stack size = 0 */ - 21 .L__stack_usage = 0 - 77:src/main.c **** if (PINB & DIP_1) { - 22 .loc 1 77 0 - 23 0000 1A9B sbis 0x3,2 - 24 0002 00C0 rjmp .L2 - 78:src/main.c **** PORTC |= ENABLE_TUBE_PSU; - 25 .loc 1 78 0 - 26 0004 479A sbi 0x8,7 - 79:src/main.c **** PORTA &= ~ENABLE_TUBE_SUPPLY; - 27 .loc 1 79 0 - 28 0006 82B1 in r24,0x2 - 29 0008 8C7F andi r24,lo8(-4) - 30 000a 82B9 out 0x2,r24 - 31 000c 0895 ret - 32 .L2: - 80:src/main.c **** // PORTB |= STATUS_LED_B; - 81:src/main.c **** } else { - 82:src/main.c **** PORTC &= ~(ENABLE_TUBE_PSU); - 33 .loc 1 82 0 - 34 000e 4798 cbi 0x8,7 - 83:src/main.c **** PORTA |= (ENABLE_TUBE_SUPPLY); - 35 .loc 1 83 0 - 36 0010 119A sbi 0x2,1 - 37 0012 0895 ret - 38 .cfi_endproc - 39 .LFE11: - 41 .global check_buttons - 43 check_buttons: - 44 .LFB12: - 84:src/main.c **** // PORTB &= ~STATUS_LED_B; - 85:src/main.c **** } - 86:src/main.c **** } - 87:src/main.c **** - 88:src/main.c **** void check_buttons(){ - 45 .loc 1 88 0 - 46 .cfi_startproc - 47 /* prologue: function */ - 48 /* frame size = 0 */ - 49 /* stack size = 0 */ - 50 .L__stack_usage = 0 - 89:src/main.c **** if((PINC & BUTTON_A)){ - 51 .loc 1 89 0 - 52 0014 86B1 in r24,0x6 - 53 0016 0895 ret - 54 .cfi_endproc - 55 .LFE12: - 57 .global setup - 59 setup: - 60 .LFB13: - 90:src/main.c **** // PORTB &= ~STATUS_LED_C; - 91:src/main.c **** } - 92:src/main.c **** }; - 93:src/main.c **** - 94:src/main.c **** void setup(){ - 61 .loc 1 94 0 - 62 .cfi_startproc - 63 /* prologue: function */ - 64 /* frame size = 0 */ - 65 /* stack size = 0 */ - 66 .L__stack_usage = 0 - 95:src/main.c **** - 96:src/main.c **** DDRA = ENABLE_TUBE_SUPPLY; - 67 .loc 1 96 0 - 68 0018 82E0 ldi r24,lo8(2) - 69 001a 81B9 out 0x1,r24 - 97:src/main.c **** - 98:src/main.c **** DDRB = STATUS_LED_B - 70 .loc 1 98 0 - 71 001c 83EA ldi r24,lo8(-93) - 72 001e 84B9 out 0x4,r24 - 99:src/main.c **** | STATUS_LED_C - 100:src/main.c **** | MOSI - 101:src/main.c **** | CLK; - 102:src/main.c **** - 103:src/main.c **** DDRC = LATCH_SR - 73 .loc 1 103 0 - 74 0020 8CE9 ldi r24,lo8(-100) - 75 0022 87B9 out 0x7,r24 - 104:src/main.c **** | ENABLE_SR - 105:src/main.c **** | DOT - 106:src/main.c **** | ENABLE_TUBE_PSU; - 107:src/main.c **** - 108:src/main.c **** DDRD = RESET_SR - 76 .loc 1 108 0 - 77 0024 80EA ldi r24,lo8(-96) - 78 0026 8AB9 out 0xa,r24 - 109:src/main.c **** | TUBE_LED; - 110:src/main.c **** - 111:src/main.c **** - 112:src/main.c **** //-------------------------- - 113:src/main.c **** // SPI - 114:src/main.c **** //-------------------------- - 115:src/main.c **** SPCR = (1 << SPE) | //enable SPI - 79 .loc 1 115 0 - 80 0028 83E5 ldi r24,lo8(83) - 81 002a 8CBD out 0x2c,r24 - 116:src/main.c **** (1 << MSTR) | //SPI als Master starten - 117:src/main.c **** (1 << SPR0) | //clock-prescaler LSB - 118:src/main.c **** (1 << SPR1) | //clock-prescaler MSB - 119:src/main.c **** (0 << SPIE) | //complete transfer/ recive interrupt - 120:src/main.c **** (0 << CPOL) | - 121:src/main.c **** (0 << CPHA) | - 122:src/main.c **** (0 << DORD); //MSB first = 0 - 123:src/main.c **** SPSR = (1 << SPI2X);// | //clock- prescaler double speed - 82 .loc 1 123 0 - 83 002c 81E0 ldi r24,lo8(1) - 84 002e 8DBD out 0x2d,r24 - 124:src/main.c **** - 125:src/main.c **** PORTC &= ~LATCH_SR; //latch low, sonst startet SPI nicht - 85 .loc 1 125 0 - 86 0030 88B1 in r24,0x8 - 87 0032 887F andi r24,lo8(-8) - 88 0034 88B9 out 0x8,r24 - 126:src/main.c **** PORTC |= LATCH_SR; - 89 .loc 1 126 0 - 90 0036 429A sbi 0x8,2 - 127:src/main.c **** PORTD |= RESET_SR; //Setzte Reset auf HIGH (active LOW) - 91 .loc 1 127 0 - 92 0038 5D9A sbi 0xb,5 - 128:src/main.c **** PORTC &= ~(ENABLE_SR); //Aktiviert Shiftregister (active LOW) - 93 .loc 1 128 0 - 94 003a 4398 cbi 0x8,3 - 129:src/main.c **** - 130:src/main.c **** - 131:src/main.c **** - 132:src/main.c **** //-------------------------- - 133:src/main.c **** // Externe Interrupts - 134:src/main.c **** //-------------------------- - 135:src/main.c **** //External Interrupt Mask Register - 136:src/main.c **** - 137:src/main.c **** EIMSK |= (1 << INT0) | //Aktiviere Interrupt INT0 - 95 .loc 1 137 0 - 96 003c 8DB3 in r24,0x1d - 97 003e 8360 ori r24,lo8(3) - 98 0040 8DBB out 0x1d,r24 - 138:src/main.c **** (1 << INT1); //Aktiviere Interrupt INT1 - 139:src/main.c **** - 140:src/main.c **** //External Interrupt Control Register A - 141:src/main.c **** EICRA |= (0 << ISC10) | //Interrupt bei jedem Pegelwechsel auf INT1 - 99 .loc 1 141 0 - 100 0042 E9E6 ldi r30,lo8(105) - 101 0044 F0E0 ldi r31,0 - 102 0046 8081 ld r24,Z - 103 0048 8B60 ori r24,lo8(11) - 104 004a 8083 st Z,r24 - 142:src/main.c **** (1 << ISC11) | - 143:src/main.c **** (1 << ISC00) | //Interrupt bei jedem Pegelwechsel auf INT0 - 144:src/main.c **** (1 << ISC01); - 145:src/main.c **** //Pin Change Interrupt Control Register - 146:src/main.c **** PCICR |= (1 << PCIE2); //Enabled PCINT16-23 als mögliche Signalquelle für Interrupt - 105 .loc 1 146 0 - 106 004c E8E6 ldi r30,lo8(104) - 107 004e F0E0 ldi r31,0 - 108 0050 8081 ld r24,Z - 109 0052 8460 ori r24,lo8(4) - 110 0054 8083 st Z,r24 - 147:src/main.c **** - 148:src/main.c **** //Pin Change Mask Register 2 - 149:src/main.c **** //PCMSK2 |= (1 << PCINT18) | //PCINT18 als Signalquelle wählen - 150:src/main.c **** // (1 << PCINT19); //PCINT19 als Signalquelle wählen - 151:src/main.c **** - 152:src/main.c **** - 153:src/main.c **** //-------------------------- - 154:src/main.c **** // Timer + Zeitinterrupts - 155:src/main.c **** //-------------------------- - 156:src/main.c **** - 157:src/main.c **** //PWM-Timer - 158:src/main.c **** //OC2A set when upcounting, clear when down counting - 159:src/main.c **** TCCR2A = (1< 10){ - 308 .loc 1 217 0 - 309 00ca 0B97 sbiw r24,11 - 310 00cc 04F0 brlt .L13 - 218:src/main.c **** animationtimer= 0; - 311 .loc 1 218 0 - 312 00ce 1092 0000 sts animationtimer+1,__zero_reg__ - 313 00d2 1092 0000 sts animationtimer,__zero_reg__ - 219:src/main.c **** offset++; - 314 .loc 1 219 0 - 315 00d6 8091 0000 lds r24,offset - 316 00da 9091 0000 lds r25,offset+1 - 317 00de 0196 adiw r24,1 - 318 00e0 9093 0000 sts offset+1,r25 - 319 00e4 8093 0000 sts offset,r24 - 220:src/main.c **** PORTB ^= STATUS_LED_B; - 320 .loc 1 220 0 - 321 00e8 85B1 in r24,0x5 - 322 00ea 91E0 ldi r25,lo8(1) - 323 00ec 8927 eor r24,r25 - 324 00ee 85B9 out 0x5,r24 - 221:src/main.c **** if(offset > 15){ - 325 .loc 1 221 0 - 326 00f0 8091 0000 lds r24,offset - 327 00f4 9091 0000 lds r25,offset+1 - 328 00f8 4097 sbiw r24,16 - 329 00fa 04F0 brlt .L13 - 222:src/main.c **** offset = 0; - 330 .loc 1 222 0 - 331 00fc 1092 0000 sts offset+1,__zero_reg__ - 332 0100 1092 0000 sts offset,__zero_reg__ - 333 .L13: - 334 /* epilogue start */ - 223:src/main.c **** } - 224:src/main.c **** } - 225:src/main.c **** } - 335 .loc 1 225 0 - 336 0104 9F91 pop r25 - 337 0106 8F91 pop r24 - 338 0108 0F90 pop r0 - 339 010a 0FBE out __SREG__,r0 - 340 010c 0F90 pop r0 - 341 010e 1F90 pop r1 - 342 0110 1895 reti - 343 .cfi_endproc - 344 .LFE14: - 346 .global __vector_1 - 348 __vector_1: - 349 .LFB15: - 226:src/main.c **** - 227:src/main.c **** //Encoder rotate - 228:src/main.c **** ISR(INT0_vect) { - 350 .loc 1 228 0 - 351 .cfi_startproc - 352 0112 1F92 push r1 - 353 .LCFI8: - 354 .cfi_def_cfa_offset 3 - 355 .cfi_offset 1, -2 - 356 0114 0F92 push r0 - 357 .LCFI9: - 358 .cfi_def_cfa_offset 4 - 359 .cfi_offset 0, -3 - 360 0116 0FB6 in r0,__SREG__ - 361 0118 0F92 push r0 - 362 011a 1124 clr __zero_reg__ - 363 011c 8F93 push r24 - 364 .LCFI10: - 365 .cfi_def_cfa_offset 5 - 366 .cfi_offset 24, -4 - 367 /* prologue: Signal */ - 368 /* frame size = 0 */ - 369 /* stack size = 4 */ - 370 .L__stack_usage = 4 - 229:src/main.c **** if (PIND & ENCODER_B) { - 371 .loc 1 229 0 - 372 011e 89B1 in r24,0x9 - 373 /* epilogue start */ - 230:src/main.c **** // set_PWM_duty(duty--); - 231:src/main.c **** } else { - 232:src/main.c **** // set_PWM_duty(duty++); - 233:src/main.c **** } - 234:src/main.c **** } - 374 .loc 1 234 0 - 375 0120 8F91 pop r24 - 376 0122 0F90 pop r0 - 377 0124 0FBE out __SREG__,r0 - 378 0126 0F90 pop r0 - 379 0128 1F90 pop r1 - 380 012a 1895 reti - 381 .cfi_endproc - 382 .LFE15: - 384 .global __vector_2 - 386 __vector_2: - 387 .LFB16: - 235:src/main.c **** - 236:src/main.c **** //Encoder Button - 237:src/main.c **** ISR(INT1_vect) { - 388 .loc 1 237 0 - 389 .cfi_startproc - 390 012c 1F92 push r1 - 391 .LCFI11: - 392 .cfi_def_cfa_offset 3 - 393 .cfi_offset 1, -2 - 394 012e 0F92 push r0 - 395 .LCFI12: - 396 .cfi_def_cfa_offset 4 - 397 .cfi_offset 0, -3 - 398 0130 0FB6 in r0,__SREG__ - 399 0132 0F92 push r0 - 400 0134 1124 clr __zero_reg__ - 401 /* prologue: Signal */ - 402 /* frame size = 0 */ - 403 /* stack size = 3 */ - 404 .L__stack_usage = 3 - 405 /* epilogue start */ - 238:src/main.c **** - 239:src/main.c **** } - 406 .loc 1 239 0 - 407 0136 0F90 pop r0 - 408 0138 0FBE out __SREG__,r0 - 409 013a 0F90 pop r0 - 410 013c 1F90 pop r1 - 411 013e 1895 reti - 412 .cfi_endproc - 413 .LFE16: - 415 .global __vector_20 - 417 __vector_20: - 418 .LFB17: - 240:src/main.c **** - 241:src/main.c **** - 242:src/main.c **** ISR (USART0_RX_vect){ - 419 .loc 1 242 0 - 420 .cfi_startproc - 421 0140 1F92 push r1 - 422 .LCFI13: - 423 .cfi_def_cfa_offset 3 - 424 .cfi_offset 1, -2 - 425 0142 0F92 push r0 - 426 .LCFI14: - 427 .cfi_def_cfa_offset 4 - 428 .cfi_offset 0, -3 - 429 0144 0FB6 in r0,__SREG__ - 430 0146 0F92 push r0 - 431 0148 1124 clr __zero_reg__ - 432 /* prologue: Signal */ - 433 /* frame size = 0 */ - 434 /* stack size = 3 */ - 435 .L__stack_usage = 3 - 436 /* epilogue start */ - 243:src/main.c **** /* - 244:src/main.c **** //while ( !(UCSR0A & (1< - 4:src/print.c **** #include - 5:src/print.c **** #include - 6:src/print.c **** - 7:src/print.c **** const unsigned char number_Font[10] = { 0b11011110, //0 - 8:src/print.c **** 0b00000110, //1 - 9:src/print.c **** 0b11101010, //2 - 10:src/print.c **** 0b01101110, //3 - 11:src/print.c **** 0b00110110, //4 - 12:src/print.c **** 0b01111100, //5 - 13:src/print.c **** 0b11111100, //6 - 14:src/print.c **** 0b00001110, //7 - 15:src/print.c **** 0b11111110, //8 - 16:src/print.c **** 0b01111110 //9 - 17:src/print.c **** }; - 18:src/print.c **** const unsigned char character_Font[26] = {0b10111110, //A - 19:src/print.c **** 0b11110100, //b - 20:src/print.c **** 0b11100000, //c - 21:src/print.c **** 0b11100110, //d - 22:src/print.c **** 0b11111000, //e - 23:src/print.c **** 0b10111000, //F - 24:src/print.c **** 0b11011100, //G - 25:src/print.c **** 0b10110100, //h - 26:src/print.c **** 0b00000100, //i - 27:src/print.c **** 0b01000110, //J - 28:src/print.c **** 0b10111100, //K - 29:src/print.c **** 0b11010000, //L - 30:src/print.c **** 0b10011110, //M - 31:src/print.c **** 0b10100100, //n - 32:src/print.c **** 0b11100100, //o - 33:src/print.c **** 0b10111010, //P - 34:src/print.c **** 0b00111110, //q - 35:src/print.c **** 0b10100000, //r - 36:src/print.c **** 0b01111100, //S - 37:src/print.c **** 0b11110000, //t - 38:src/print.c **** 0b11000100, //u - 39:src/print.c **** 0b11000100, //v - 40:src/print.c **** 0b11010110, //W - 41:src/print.c **** 0b10110110, //X - 42:src/print.c **** 0b01110110, //Y - 43:src/print.c **** 0b11100110 //Z - 44:src/print.c **** }; - 45:src/print.c **** const unsigned char blank = 0b00000000; //zeigt nichts an - 46:src/print.c **** const unsigned char minus = 0b00100000; //zeigt '-' an - 47:src/print.c **** const unsigned char dot = 0b00000001; //aktiviert Dezimalpunkt - 48:src/print.c **** unsigned char SR_Buffer[6] = {0b11100110, - 49:src/print.c **** 0b11100110, - 50:src/print.c **** 0b11100110, - 51:src/print.c **** 0b11100110, - 52:src/print.c **** 0b11100110, - 53:src/print.c **** 0b11100110, - 54:src/print.c **** 0b11100110, - 55:src/print.c **** 0b11100110}; - 56:src/print.c **** - 57:src/print.c **** - 58:src/print.c **** - 59:src/print.c **** void clear_SR_Buffer() { - 16 .loc 1 59 0 - 17 .cfi_startproc - 18 /* prologue: function */ - 19 /* frame size = 0 */ - 20 /* stack size = 0 */ - 21 .L__stack_usage = 0 - 22 .LVL0: - 23 .LBB2: - 60:src/print.c **** for (char i = 0; i < 6; i++) { - 61:src/print.c **** SR_Buffer[i] = blank; - 24 .loc 1 61 0 - 25 0000 1092 0000 sts SR_Buffer,__zero_reg__ - 26 .LVL1: - 27 0004 1092 0000 sts SR_Buffer+1,__zero_reg__ - 28 .LVL2: - 29 0008 1092 0000 sts SR_Buffer+2,__zero_reg__ - 30 .LVL3: - 31 000c 1092 0000 sts SR_Buffer+3,__zero_reg__ - 32 .LVL4: - 33 0010 1092 0000 sts SR_Buffer+4,__zero_reg__ - 34 .LVL5: - 35 0014 1092 0000 sts SR_Buffer+5,__zero_reg__ - 36 .LVL6: - 37 0018 0895 ret - 38 .LBE2: - 39 .cfi_endproc - 40 .LFE10: - 42 .global add_Decimal_Point_to_SR_Buffer - 44 add_Decimal_Point_to_SR_Buffer: - 45 .LFB11: - 62:src/print.c **** } - 63:src/print.c **** } - 64:src/print.c **** - 65:src/print.c **** void add_Decimal_Point_to_SR_Buffer(int pos){ - 46 .loc 1 65 0 - 47 .cfi_startproc - 48 .LVL7: - 49 /* prologue: function */ - 50 /* frame size = 0 */ - 51 /* stack size = 0 */ - 52 .L__stack_usage = 0 - 66:src/print.c **** SR_Buffer[pos-1] += dot; - 53 .loc 1 66 0 - 54 001a FC01 movw r30,r24 - 55 001c E050 subi r30,lo8(-(SR_Buffer-1)) - 56 001e F040 sbci r31,hi8(-(SR_Buffer-1)) - 57 0020 8081 ld r24,Z - 58 .LVL8: - 59 0022 8F5F subi r24,lo8(-(1)) - 60 0024 8083 st Z,r24 - 61 0026 0895 ret - 62 .cfi_endproc - 63 .LFE11: - 65 .global print_SR_Buffer - 67 print_SR_Buffer: - 68 .LFB12: - 67:src/print.c **** } - 68:src/print.c **** - 69:src/print.c **** void print_SR_Buffer() { - 69 .loc 1 69 0 - 70 .cfi_startproc - 71 /* prologue: function */ - 72 /* frame size = 0 */ - 73 /* stack size = 0 */ - 74 .L__stack_usage = 0 - 70:src/print.c **** PORTC &= ~(LATCH_SR); - 75 .loc 1 70 0 - 76 0028 4298 cbi 0x8,2 - 77 .LVL9: - 78 002a E0E0 ldi r30,lo8(SR_Buffer) - 79 002c F0E0 ldi r31,hi8(SR_Buffer) - 80 .LVL10: - 81 .L7: - 82 .LBB3: - 71:src/print.c **** - 72:src/print.c **** for (int i = 0; i < 6; i++) { - 73:src/print.c **** SPDR = SR_Buffer[i]; - 83 .loc 1 73 0 - 84 002e 8191 ld r24,Z+ - 85 .LVL11: - 86 0030 8EBD out 0x2e,r24 - 87 .L5: - 74:src/print.c **** //SPDR = 0b11100110; - 75:src/print.c **** //_delay_us(100); - 76:src/print.c **** while (!(SPSR & (1 << SPIF))); //warten auf transferabschluss - 88 .loc 1 76 0 discriminator 1 - 89 0032 0DB4 in __tmp_reg__,0x2d - 90 0034 07FE sbrs __tmp_reg__,7 - 91 0036 00C0 rjmp .L5 - 92 .LVL12: - 72:src/print.c **** for (int i = 0; i < 6; i++) { - 93 .loc 1 72 0 - 94 0038 80E0 ldi r24,hi8(SR_Buffer+6) - 95 003a E030 cpi r30,lo8(SR_Buffer+6) - 96 003c F807 cpc r31,r24 - 97 003e 01F4 brne .L7 - 98 .LBE3: - 77:src/print.c **** } - 78:src/print.c **** PORTC |= LATCH_SR; - 99 .loc 1 78 0 - 100 0040 429A sbi 0x8,2 - 101 0042 0895 ret - 102 .cfi_endproc - 103 .LFE12: - 105 .global add_ASCII_to_SR_Buffer - 107 add_ASCII_to_SR_Buffer: - 108 .LFB14: - 79:src/print.c **** //_delay_ms(1); - 80:src/print.c **** //PORTC &= ~(LATCH_SR); - 81:src/print.c **** } - 82:src/print.c **** - 83:src/print.c **** void print_String(char* string){ - 84:src/print.c **** for(int i = 0; i < 6; i++){ - 85:src/print.c **** add_ASCII_to_SR_Buffer(string[i],i); - 86:src/print.c **** } - 87:src/print.c **** print_SR_Buffer(); - 88:src/print.c **** } - 89:src/print.c **** - 90:src/print.c **** - 91:src/print.c **** void add_ASCII_to_SR_Buffer(unsigned char character, int pos) { - 109 .loc 1 91 0 - 110 .cfi_startproc - 111 .LVL13: - 112 /* prologue: function */ - 113 /* frame size = 0 */ - 114 /* stack size = 0 */ - 115 .L__stack_usage = 0 - 92:src/print.c **** int ascii_offset = 0; - 93:src/print.c **** - 94:src/print.c **** if((character > 46) && (character < 57)){ //Char ist Zahl - 116 .loc 1 94 0 - 117 0044 91ED ldi r25,lo8(-47) - 118 0046 980F add r25,r24 - 119 0048 9A30 cpi r25,lo8(10) - 120 004a 00F4 brsh .L10 - 121 .LVL14: - 95:src/print.c **** ascii_offset = 48; - 96:src/print.c **** SR_Buffer[pos] = number_Font[character - ascii_offset]; //Zieht ASCII-Offset ab, sodass Zahl mit F - 122 .loc 1 96 0 - 123 004c DB01 movw r26,r22 - 124 004e A050 subi r26,lo8(-(SR_Buffer)) - 125 0050 B040 sbci r27,hi8(-(SR_Buffer)) - 126 0052 E82F mov r30,r24 - 127 0054 F0E0 ldi r31,0 - 128 0056 E050 subi r30,lo8(-(number_Font-48)) - 129 0058 F040 sbci r31,hi8(-(number_Font-48)) - 130 005a 00C0 rjmp .L15 - 131 .LVL15: - 132 .L10: - 97:src/print.c **** }else if (character > 95 && character < 122) { //Buchstabe ist kleiner Buchstabe - 133 .loc 1 97 0 - 134 005c 90EA ldi r25,lo8(-96) - 135 005e 980F add r25,r24 - 136 0060 9A31 cpi r25,lo8(26) - 137 0062 00F4 brsh .L12 - 138 .LVL16: - 98:src/print.c **** ascii_offset = 97; - 99:src/print.c **** SR_Buffer[pos] = character_Font[character - ascii_offset]; //Zieht ASCII-Offset ab, sodass Buch - 139 .loc 1 99 0 - 140 0064 DB01 movw r26,r22 - 141 0066 A050 subi r26,lo8(-(SR_Buffer)) - 142 0068 B040 sbci r27,hi8(-(SR_Buffer)) - 143 006a E82F mov r30,r24 - 144 006c F0E0 ldi r31,0 - 145 006e E050 subi r30,lo8(-(character_Font-97)) - 146 0070 F040 sbci r31,hi8(-(character_Font-97)) - 147 .LVL17: - 148 .L15: - 149 0072 8081 ld r24,Z - 150 .LVL18: - 151 0074 8C93 st X,r24 - 152 0076 0895 ret - 153 .LVL19: - 154 .L12: - 100:src/print.c **** } else if (character > 64 && character < 91){ //Buchstabe groß Buchstabe - 155 .loc 1 100 0 - 156 0078 9FEB ldi r25,lo8(-65) - 157 007a 980F add r25,r24 - 158 007c 9A31 cpi r25,lo8(26) - 159 007e 00F4 brsh .L13 - 160 .LVL20: - 101:src/print.c **** ascii_offset = 65; - 102:src/print.c **** SR_Buffer[pos] = character_Font[character - ascii_offset]; //Zieht ASCII-Offset ab, sodass Buch - 161 .loc 1 102 0 - 162 0080 DB01 movw r26,r22 - 163 0082 A050 subi r26,lo8(-(SR_Buffer)) - 164 0084 B040 sbci r27,hi8(-(SR_Buffer)) - 165 0086 E82F mov r30,r24 - 166 0088 F0E0 ldi r31,0 - 167 008a E050 subi r30,lo8(-(character_Font-65)) - 168 008c F040 sbci r31,hi8(-(character_Font-65)) - 169 008e 00C0 rjmp .L15 - 170 .LVL21: - 171 .L13: - 103:src/print.c **** } else if (character == 32){ //Charakter ist Blank ' ' - 172 .loc 1 103 0 - 173 0090 8032 cpi r24,lo8(32) - 174 0092 01F4 brne .L14 - 104:src/print.c **** SR_Buffer[pos] = blank; - 175 .loc 1 104 0 - 176 0094 FB01 movw r30,r22 - 177 0096 E050 subi r30,lo8(-(SR_Buffer)) - 178 0098 F040 sbci r31,hi8(-(SR_Buffer)) - 179 009a 1082 st Z,__zero_reg__ - 180 009c 0895 ret - 181 .L14: - 105:src/print.c **** } else if (character == 45){ //Charakter ist Minus - - 182 .loc 1 105 0 - 183 009e 8D32 cpi r24,lo8(45) - 184 00a0 01F4 brne .L9 - 106:src/print.c **** SR_Buffer[pos] = minus; - 185 .loc 1 106 0 - 186 00a2 FB01 movw r30,r22 - 187 00a4 E050 subi r30,lo8(-(SR_Buffer)) - 188 00a6 F040 sbci r31,hi8(-(SR_Buffer)) - 189 00a8 80E2 ldi r24,lo8(32) - 190 .LVL22: - 191 00aa 8083 st Z,r24 - 192 .L9: - 193 00ac 0895 ret - 194 .cfi_endproc - 195 .LFE14: - 197 .global print_String - 199 print_String: - 200 .LFB13: - 83:src/print.c **** void print_String(char* string){ - 201 .loc 1 83 0 - 202 .cfi_startproc - 203 .LVL23: - 204 00ae 0F93 push r16 - 205 .LCFI0: - 206 .cfi_def_cfa_offset 3 - 207 .cfi_offset 16, -2 - 208 00b0 1F93 push r17 - 209 .LCFI1: - 210 .cfi_def_cfa_offset 4 - 211 .cfi_offset 17, -3 - 212 00b2 CF93 push r28 - 213 .LCFI2: - 214 .cfi_def_cfa_offset 5 - 215 .cfi_offset 28, -4 - 216 00b4 DF93 push r29 - 217 .LCFI3: - 218 .cfi_def_cfa_offset 6 - 219 .cfi_offset 29, -5 - 220 /* prologue: function */ - 221 /* frame size = 0 */ - 222 /* stack size = 4 */ - 223 .L__stack_usage = 4 - 224 00b6 8C01 movw r16,r24 - 225 .LVL24: - 226 .LBB4: - 84:src/print.c **** for(int i = 0; i < 6; i++){ - 227 .loc 1 84 0 - 228 00b8 C0E0 ldi r28,0 - 229 00ba D0E0 ldi r29,0 - 230 .LVL25: - 231 .L18: - 85:src/print.c **** add_ASCII_to_SR_Buffer(string[i],i); - 232 .loc 1 85 0 discriminator 2 - 233 00bc BE01 movw r22,r28 - 234 00be F801 movw r30,r16 - 235 00c0 8191 ld r24,Z+ - 236 00c2 8F01 movw r16,r30 - 237 00c4 0E94 0000 call add_ASCII_to_SR_Buffer - 238 .LVL26: - 84:src/print.c **** for(int i = 0; i < 6; i++){ - 239 .loc 1 84 0 discriminator 2 - 240 00c8 2196 adiw r28,1 - 241 .LVL27: - 242 00ca C630 cpi r28,6 - 243 00cc D105 cpc r29,__zero_reg__ - 244 00ce 01F4 brne .L18 - 245 /* epilogue start */ - 246 .LBE4: - 88:src/print.c **** } - 247 .loc 1 88 0 - 248 00d0 DF91 pop r29 - 249 00d2 CF91 pop r28 - 250 .LVL28: - 251 00d4 1F91 pop r17 - 252 00d6 0F91 pop r16 - 87:src/print.c **** print_SR_Buffer(); - 253 .loc 1 87 0 - 254 00d8 0C94 0000 jmp print_SR_Buffer - 255 .LVL29: - 256 .cfi_endproc - 257 .LFE13: - 259 .global add_Character_to_SR_Buffer - 261 add_Character_to_SR_Buffer: - 262 .LFB15: - 107:src/print.c **** } - 108:src/print.c **** - 109:src/print.c **** } - 110:src/print.c **** - 111:src/print.c **** void add_Character_to_SR_Buffer(unsigned char character, int pos) { - 263 .loc 1 111 0 - 264 .cfi_startproc - 265 .LVL30: - 266 /* prologue: function */ - 267 /* frame size = 0 */ - 268 /* stack size = 0 */ - 269 .L__stack_usage = 0 - 112:src/print.c **** int ascii_offset = 0; - 113:src/print.c **** - 114:src/print.c **** if (character > 96 && character < 122) { //Buchstabe ist kleiner Buchstabe - 270 .loc 1 114 0 - 271 00dc 9FE9 ldi r25,lo8(-97) - 272 00de 980F add r25,r24 - 273 00e0 9931 cpi r25,lo8(25) - 274 00e2 00F4 brsh .L20 - 275 .LVL31: - 115:src/print.c **** ascii_offset = 97; - 116:src/print.c **** SR_Buffer[pos] = character_Font[character - ascii_offset]; //Zieht ASCII-Offset ab, sodass Buch - 276 .loc 1 116 0 - 277 00e4 DB01 movw r26,r22 - 278 00e6 A050 subi r26,lo8(-(SR_Buffer)) - 279 00e8 B040 sbci r27,hi8(-(SR_Buffer)) - 280 00ea E82F mov r30,r24 - 281 00ec F0E0 ldi r31,0 - 282 00ee E050 subi r30,lo8(-(character_Font-97)) - 283 00f0 F040 sbci r31,hi8(-(character_Font-97)) - 284 00f2 00C0 rjmp .L22 - 285 .LVL32: - 286 .L20: - 117:src/print.c **** } else if (character > 65 && character < 91){ //Buchstabe groß Buchstabe - 287 .loc 1 117 0 - 288 00f4 9EEB ldi r25,lo8(-66) - 289 00f6 980F add r25,r24 - 290 00f8 9931 cpi r25,lo8(25) - 291 00fa 00F4 brsh .L19 - 292 .LVL33: - 118:src/print.c **** ascii_offset = 65; - 119:src/print.c **** SR_Buffer[pos] = character_Font[character - ascii_offset]; //Zieht ASCII-Offset ab, sodass Buch - 293 .loc 1 119 0 - 294 00fc DB01 movw r26,r22 - 295 00fe A050 subi r26,lo8(-(SR_Buffer)) - 296 0100 B040 sbci r27,hi8(-(SR_Buffer)) - 297 0102 E82F mov r30,r24 - 298 0104 F0E0 ldi r31,0 - 299 0106 E050 subi r30,lo8(-(character_Font-65)) - 300 0108 F040 sbci r31,hi8(-(character_Font-65)) - 301 .LVL34: - 302 .L22: - 303 010a 8081 ld r24,Z - 304 .LVL35: - 305 010c 8C93 st X,r24 - 306 .L19: - 307 010e 0895 ret - 308 .cfi_endproc - 309 .LFE15: - 311 .global add_Number_to_SR_Buffer - 313 add_Number_to_SR_Buffer: - 314 .LFB16: - 120:src/print.c **** } - 121:src/print.c **** - 122:src/print.c **** } - 123:src/print.c **** - 124:src/print.c **** void add_Number_to_SR_Buffer(int number, int pos) { - 315 .loc 1 124 0 - 316 .cfi_startproc - 317 .LVL36: - 318 /* prologue: function */ - 319 /* frame size = 0 */ - 320 /* stack size = 0 */ - 321 .L__stack_usage = 0 - 125:src/print.c **** SR_Buffer[pos-1] = number_Font[number]; - 322 .loc 1 125 0 - 323 0110 6050 subi r22,lo8(-(SR_Buffer-1)) - 324 0112 7040 sbci r23,hi8(-(SR_Buffer-1)) - 325 .LVL37: - 326 0114 8050 subi r24,lo8(-(number_Font)) - 327 0116 9040 sbci r25,hi8(-(number_Font)) - 328 .LVL38: - 329 0118 FC01 movw r30,r24 - 330 011a 8081 ld r24,Z - 331 .LVL39: - 332 011c FB01 movw r30,r22 - 333 .LVL40: - 334 011e 8083 st Z,r24 - 335 0120 0895 ret - 336 .cfi_endproc - 337 .LFE16: - 339 .global SR_Buffer - 340 .data - 343 SR_Buffer: - 344 0000 E6 .byte -26 - 345 0001 E6 .byte -26 - 346 0002 E6 .byte -26 - 347 0003 E6 .byte -26 - 348 0004 E6 .byte -26 - 349 0005 E6 .byte -26 - 350 .global dot - 351 .section .rodata - 354 dot: - 355 0000 01 .byte 1 - 356 .global minus - 359 minus: - 360 0001 20 .byte 32 - 361 .global blank - 364 blank: - 365 0002 00 .zero 1 - 366 .global character_Font - 369 character_Font: - 370 0003 BE .byte -66 - 371 0004 F4 .byte -12 - 372 0005 E0 .byte -32 - 373 0006 E6 .byte -26 - 374 0007 F8 .byte -8 - 375 0008 B8 .byte -72 - 376 0009 DC .byte -36 - 377 000a B4 .byte -76 - 378 000b 04 .byte 4 - 379 000c 46 .byte 70 - 380 000d BC .byte -68 - 381 000e D0 .byte -48 - 382 000f 9E .byte -98 - 383 0010 A4 .byte -92 - 384 0011 E4 .byte -28 - 385 0012 BA .byte -70 - 386 0013 3E .byte 62 - 387 0014 A0 .byte -96 - 388 0015 7C .byte 124 - 389 0016 F0 .byte -16 - 390 0017 C4 .byte -60 - 391 0018 C4 .byte -60 - 392 0019 D6 .byte -42 - 393 001a B6 .byte -74 - 394 001b 76 .byte 118 - 395 001c E6 .byte -26 - 396 .global number_Font - 399 number_Font: - 400 001d DE .byte -34 - 401 001e 06 .byte 6 - 402 001f EA .byte -22 - 403 0020 6E .byte 110 - 404 0021 36 .byte 54 - 405 0022 7C .byte 124 - 406 0023 FC .byte -4 - 407 0024 0E .byte 14 - 408 0025 FE .byte -2 - 409 0026 7E .byte 126 - 410 .text - 411 .Letext0: - 412 .file 2 "/usr/local/CrossPack-AVR-20131216/avr/include/stdint.h" -DEFINED SYMBOLS - *ABS*:00000000 print.c -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:2 *ABS*:0000003e __SP_H__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:3 *ABS*:0000003d __SP_L__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:4 *ABS*:0000003f __SREG__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:5 *ABS*:0000003b __RAMPZ__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:13 .text:00000000 clear_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:343 .data:00000000 SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:44 .text:0000001a add_Decimal_Point_to_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:67 .text:00000028 print_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:107 .text:00000044 add_ASCII_to_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:399 .rodata:0000001d number_Font -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:369 .rodata:00000003 character_Font -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:199 .text:000000ae print_String -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:261 .text:000000dc add_Character_to_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:313 .text:00000110 add_Number_to_SR_Buffer -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:354 .rodata:00000000 dot -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:359 .rodata:00000001 minus -/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccd8mofv.s:364 .rodata:00000002 blank - -UNDEFINED SYMBOLS -__do_copy_data diff --git a/code/build/print.o b/code/build/print.o deleted file mode 100644 index 7b512d4..0000000 Binary files a/code/build/print.o and /dev/null differ diff --git a/code/build/uart 2.o b/code/build/uart 2.o deleted file mode 100644 index b35dbf2..0000000 Binary files a/code/build/uart 2.o and /dev/null differ diff --git a/code/build/uart.lst b/code/build/uart.lst deleted file mode 100644 index f18d1e3..0000000 --- a/code/build/uart.lst +++ /dev/null @@ -1,177 +0,0 @@ - 1 .file "uart.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __RAMPZ__ = 0x3b - 6 __tmp_reg__ = 0 - 7 __zero_reg__ = 1 - 8 .text - 9 .Ltext0: - 10 .cfi_sections .debug_frame - 11 .global USART_Init - 13 USART_Init: - 14 .LFB0: - 15 .file 1 "src/uart.c" - 1:src/uart.c **** #include - 2:src/uart.c **** #include "uart.h" - 3:src/uart.c **** - 4:src/uart.c **** - 5:src/uart.c **** - 6:src/uart.c **** void USART_Init(unsigned int ubrr) - 7:src/uart.c **** { - 16 .loc 1 7 0 - 17 .cfi_startproc - 18 .LVL0: - 19 /* prologue: function */ - 20 /* frame size = 0 */ - 21 /* stack size = 0 */ - 22 .L__stack_usage = 0 - 8:src/uart.c **** /*Set baud rate */ - 9:src/uart.c **** UBRR0H = ubrr>>8; - 23 .loc 1 9 0 - 24 0000 9093 C500 sts 197,r25 - 10:src/uart.c **** UBRR0L = ubrr; - 25 .loc 1 10 0 - 26 0004 8093 C400 sts 196,r24 - 11:src/uart.c **** /*Enable receiver and transmitter */ - 12:src/uart.c **** UCSR0B = (1<