/Modules/ATmega8/ATmega801A/SW/BLIK_ATmega8/BLIK_ATmega8.c
0,0 → 1,32
// Ukazkovy program pro blikani na vystupu PC0
// Predpoklada procesor ATmega8 v defaultnim nastaveni
// (interni RC oscilator 1MHz).
 
#define F_CPU 1000000UL // 1MHz je deaultni frekvence interniho RC oscilatoru
#include <avr/io.h>
#include <avr/delay.h>
 
// Spozdeni o libovolny pocet ms
void xDelay_ms(unsigned int Time)
{
for(;Time!=0;Time--)
_delay_ms(1); // Knihovni procedura ma velmi omezen
} // maximalni cas spozdeni
 
 
// Hlavni program
int main()
{
 
DDRC |=1; // Nastav port PCD0 jako vystup
 
for(;;) // Nekonecna smycka
{
PORTC |= 1; // Nastav 1
xDelay_ms(500); // Pockej 1/2 sekundy
PORTC &= ~1; // Nastav 0
xDelay_ms(500); // Pockej 1/2 sekundy
}
return 0;
}
/Modules/ATmega8/ATmega801A/SW/BLIK_ATmega8/out/BLIK_ATmega8.hex
0,0 → 1,11
:1000000012C02BC02AC029C028C027C026C025C0C6
:1000100024C023C022C021C020C01FC01EC01DC0DC
:100020001CC01BC01AC011241FBECFE5D4E0DEBF28
:10003000CDBF10E0A0E6B0E0ECE9F0E002C0059032
:100040000D92A036B107D9F710E0A0E6B0E001C0EC
:100050001D92A036B107E1F713C0D2CFCF93DF9343
:100060009C01892B51F0AAEFB0E0C0E0D0E0CD01B7
:100070000197F1F721503040D1F7DF91CF910895EA
:10008000CFE5D4E0DEBFCDBFA09AA89A84EF91E07F
:0C009000E5DFA89884EF91E0E1DFF7CFF6
:00000001FF
/Modules/ATmega8/ATmega801A/SW/BLIK_ATmega8/out/BLIK_ATmega8.lss
0,0 → 1,155
 
BLIK_ATmega8.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000009c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 0000009c 00000130 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00800060 0000009c 00000130 2**0
ALLOC
3 .noinit 00000000 00800060 00800060 00000130 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000130 2**0
CONTENTS
5 .debug_aranges 00000014 00000000 00000000 00000130 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 00000029 00000000 00000000 00000144 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000012f 00000000 00000000 0000016d 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000000c8 00000000 00000000 0000029c 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 000000f7 00000000 00000000 00000364 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000000e0 00000000 00000000 0000045b 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26
2: 2b c0 rjmp .+86 ; 0x5a
4: 2a c0 rjmp .+84 ; 0x5a
6: 29 c0 rjmp .+82 ; 0x5a
8: 28 c0 rjmp .+80 ; 0x5a
a: 27 c0 rjmp .+78 ; 0x5a
c: 26 c0 rjmp .+76 ; 0x5a
e: 25 c0 rjmp .+74 ; 0x5a
10: 24 c0 rjmp .+72 ; 0x5a
12: 23 c0 rjmp .+70 ; 0x5a
14: 22 c0 rjmp .+68 ; 0x5a
16: 21 c0 rjmp .+66 ; 0x5a
18: 20 c0 rjmp .+64 ; 0x5a
1a: 1f c0 rjmp .+62 ; 0x5a
1c: 1e c0 rjmp .+60 ; 0x5a
1e: 1d c0 rjmp .+58 ; 0x5a
20: 1c c0 rjmp .+56 ; 0x5a
22: 1b c0 rjmp .+54 ; 0x5a
24: 1a c0 rjmp .+52 ; 0x5a
 
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
 
00000032 <__do_copy_data>:
32: 10 e0 ldi r17, 0x00 ; 0
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: ec e9 ldi r30, 0x9C ; 156
3a: f0 e0 ldi r31, 0x00 ; 0
3c: 02 c0 rjmp .+4 ; 0x42
 
0000003e <.do_copy_data_loop>:
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
 
00000042 <.do_copy_data_start>:
42: a0 36 cpi r26, 0x60 ; 96
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e
 
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a0 e6 ldi r26, 0x60 ; 96
4c: b0 e0 ldi r27, 0x00 ; 0
4e: 01 c0 rjmp .+2 ; 0x52
 
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
 
00000052 <.do_clear_bss_start>:
52: a0 36 cpi r26, 0x60 ; 96
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50
58: 13 c0 rjmp .+38 ; 0x80
 
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0
 
0000005c <xDelay_ms>:
#include <avr/delay.h>
 
// Spozdeni o libovolny pocet ms
void xDelay_ms(unsigned int Time)
{
5c: cf 93 push r28
5e: df 93 push r29
60: 9c 01 movw r18, r24
for(;Time!=0;Time--)
62: 89 2b or r24, r25
64: 51 f0 breq .+20 ; 0x7a
66: aa ef ldi r26, 0xFA ; 250
68: b0 e0 ldi r27, 0x00 ; 0
6a: c0 e0 ldi r28, 0x00 ; 0
6c: d0 e0 ldi r29, 0x00 ; 0
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
6e: cd 01 movw r24, r26
70: 01 97 sbiw r24, 0x01 ; 1
72: f1 f7 brne .-4 ; 0x70
74: 21 50 subi r18, 0x01 ; 1
76: 30 40 sbci r19, 0x00 ; 0
78: d1 f7 brne .-12 ; 0x6e
7a: df 91 pop r29
7c: cf 91 pop r28
7e: 08 95 ret
 
00000080 <main>:
_delay_ms(1); // Knihovni procedura ma velmi omezen
} // maximalni cas spozdeni
 
 
// Hlavni program
int main()
{
80: cf e5 ldi r28, 0x5F ; 95
82: d4 e0 ldi r29, 0x04 ; 4
84: de bf out 0x3e, r29 ; 62
86: cd bf out 0x3d, r28 ; 61
 
DDRC |=1; // Nastav port PCD0 jako vystup
88: a0 9a sbi 0x14, 0 ; 20
 
for(;;) // Nekonecna smycka
{
PORTC |= 1; // Nastav 1
8a: a8 9a sbi 0x15, 0 ; 21
xDelay_ms(500); // Pockej 1/2 sekundy
8c: 84 ef ldi r24, 0xF4 ; 244
8e: 91 e0 ldi r25, 0x01 ; 1
90: e5 df rcall .-54 ; 0x5c
PORTC &= ~1; // Nastav 0
92: a8 98 cbi 0x15, 0 ; 21
xDelay_ms(500); // Pockej 1/2 sekundy
94: 84 ef ldi r24, 0xF4 ; 244
96: 91 e0 ldi r25, 0x01 ; 1
98: e1 df rcall .-62 ; 0x5c
9a: f7 cf rjmp .-18 ; 0x8a