
pwmtes1.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000001b8  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000010  00800060  000001b8  0000024c  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00800070  000001c8  0000025c  2**0
                  ALLOC
  3 .noinit       00000000  00800070  00800070  0000025c  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000025c  2**0
                  CONTENTS
  5 .stab         000010a4  00000000  00000000  0000025c  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00001cd3  00000000  00000000  00001300  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54
   4:	0c 94 45 00 	jmp	0x8a
   8:	0c 94 45 00 	jmp	0x8a
   c:	0c 94 45 00 	jmp	0x8a
  10:	0c 94 45 00 	jmp	0x8a
  14:	0c 94 45 00 	jmp	0x8a
  18:	0c 94 45 00 	jmp	0x8a
  1c:	0c 94 45 00 	jmp	0x8a
  20:	0c 94 45 00 	jmp	0x8a
  24:	0c 94 45 00 	jmp	0x8a
  28:	0c 94 45 00 	jmp	0x8a
  2c:	0c 94 45 00 	jmp	0x8a
  30:	0c 94 45 00 	jmp	0x8a
  34:	0c 94 45 00 	jmp	0x8a
  38:	0c 94 45 00 	jmp	0x8a
  3c:	0c 94 45 00 	jmp	0x8a
  40:	0c 94 45 00 	jmp	0x8a
  44:	0c 94 45 00 	jmp	0x8a
  48:	0c 94 45 00 	jmp	0x8a
  4c:	0c 94 45 00 	jmp	0x8a
  50:	0c 94 45 00 	jmp	0x8a

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d8 e0       	ldi	r29, 0x08	; 8
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e8 eb       	ldi	r30, 0xB8	; 184
  68:	f1 e0       	ldi	r31, 0x01	; 1
  6a:	02 c0       	rjmp	.+4      	; 0x70

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	a0 37       	cpi	r26, 0x70	; 112
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	a0 e7       	ldi	r26, 0x70	; 112
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	a0 37       	cpi	r26, 0x70	; 112
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e
  86:	0c 94 8a 00 	jmp	0x114

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0

0000008e <adc_init>:


void adc_init() {
  // Activate ADC with Prescaler 
  ADCSRA =  1 << ADEN  |
  8e:	87 e8       	ldi	r24, 0x87	; 135
  90:	86 b9       	out	0x06, r24	; 6
  92:	08 95       	ret

00000094 <Analog>:
            0 << ADSC  |
            0 << ADATE |
            0 << ADIF  |
            0 << ADIE  |
            1 << ADPS2 |  /* 16Mhz */
            1 << ADPS1 |
            1 << ADPS0 ;
}


int Analog ( uint8_t n ) {

    // Select pin ADC0 using MUX
    ADMUX = n & 7;
  94:	87 70       	andi	r24, 0x07	; 7
  96:	87 b9       	out	0x07, r24	; 7
    
    //Start conversion
    ADCSRA |= _BV(ADSC);
  98:	36 9a       	sbi	0x06, 6	; 6
    
    // wait until converstion completed
    while (ADCSRA & _BV(ADSC) ) {}
  9a:	36 99       	sbic	0x06, 6	; 6
  9c:	fe cf       	rjmp	.-4      	; 0x9a
    
    // get converted value
    return ADC;  
  9e:	84 b1       	in	r24, 0x04	; 4
  a0:	95 b1       	in	r25, 0x05	; 5
  a2:	08 95       	ret

000000a4 <dostuff>:
}


void dostuff ( ) {
  a4:	0f 93       	push	r16
  a6:	1f 93       	push	r17
  a8:	cf 93       	push	r28
  aa:	df 93       	push	r29
      int X, Y;
      
      while (1) {
        // Gather values
        X = Analog(0) / 4;
  ac:	80 e0       	ldi	r24, 0x00	; 0
  ae:	0e 94 4a 00 	call	0x94
  b2:	97 fd       	sbrc	r25, 7
  b4:	22 c0       	rjmp	.+68     	; 0xfa
  b6:	ec 01       	movw	r28, r24
  b8:	d5 95       	asr	r29
  ba:	c7 95       	ror	r28
  bc:	d5 95       	asr	r29
  be:	c7 95       	ror	r28
        Y = Analog(1) / 4;
  c0:	81 e0       	ldi	r24, 0x01	; 1
  c2:	0e 94 4a 00 	call	0x94
  c6:	97 fd       	sbrc	r25, 7
  c8:	23 c0       	rjmp	.+70     	; 0x110
  ca:	8c 01       	movw	r16, r24
  cc:	15 95       	asr	r17
  ce:	07 95       	ror	r16
  d0:	15 95       	asr	r17
  d2:	07 95       	ror	r16
        
        USART_printstring("PX");
  d4:	80 e6       	ldi	r24, 0x60	; 96
  d6:	90 e0       	ldi	r25, 0x00	; 0
  d8:	0e 94 c6 00 	call	0x18c
        USART_printhex(X);
  dc:	8c 2f       	mov	r24, r28
  de:	0e 94 b1 00 	call	0x162
        USART_printstring("PY");
  e2:	83 e6       	ldi	r24, 0x63	; 99
  e4:	90 e0       	ldi	r25, 0x00	; 0
  e6:	0e 94 c6 00 	call	0x18c
        USART_printhex(Y);
  ea:	80 2f       	mov	r24, r16
  ec:	0e 94 b1 00 	call	0x162
  f0:	80 e0       	ldi	r24, 0x00	; 0
  f2:	0e 94 4a 00 	call	0x94
  f6:	97 ff       	sbrs	r25, 7
  f8:	de cf       	rjmp	.-68     	; 0xb6
  fa:	03 96       	adiw	r24, 0x03	; 3
  fc:	ec 01       	movw	r28, r24
  fe:	d5 95       	asr	r29
 100:	c7 95       	ror	r28
 102:	d5 95       	asr	r29
 104:	c7 95       	ror	r28
 106:	81 e0       	ldi	r24, 0x01	; 1
 108:	0e 94 4a 00 	call	0x94
 10c:	97 ff       	sbrs	r25, 7
 10e:	dd cf       	rjmp	.-70     	; 0xca
 110:	03 96       	adiw	r24, 0x03	; 3
 112:	db cf       	rjmp	.-74     	; 0xca

00000114 <main>:
 114:	cf e5       	ldi	r28, 0x5F	; 95
 116:	d8 e0       	ldi	r29, 0x08	; 8
 118:	de bf       	out	0x3e, r29	; 62
 11a:	cd bf       	out	0x3d, r28	; 61
 11c:	17 ba       	out	0x17, r1	; 23
 11e:	11 ba       	out	0x11, r1	; 17
 120:	0e 94 47 00 	call	0x8e
 124:	8f ec       	ldi	r24, 0xCF	; 207
 126:	90 e0       	ldi	r25, 0x00	; 0
 128:	0e 94 9e 00 	call	0x13c
 12c:	86 e6       	ldi	r24, 0x66	; 102
 12e:	90 e0       	ldi	r25, 0x00	; 0
 130:	0e 94 c6 00 	call	0x18c
 134:	0e 94 52 00 	call	0xa4
 138:	0c 94 db 00 	jmp	0x1b6

0000013c <USART_Init>:
//}

/* Initialize UART */
void USART_Init( unsigned int baudrate )
{
 13c:	9c 01       	movw	r18, r24
	/* Set the baud rate */
	UBRRH = (unsigned char) (baudrate>>8);                  
 13e:	83 2f       	mov	r24, r19
 140:	99 27       	eor	r25, r25
 142:	80 bd       	out	0x20, r24	; 32
	UBRRL = (unsigned char) baudrate;
 144:	29 b9       	out	0x09, r18	; 9
	
	/* Enable UART receiver and transmitter */
	UCSRB = ( ( 1 << RXEN ) | ( 1 << TXEN ) ); 
 146:	88 e1       	ldi	r24, 0x18	; 24
 148:	8a b9       	out	0x0a, r24	; 10
	
	/* Set frame format: 8 data 2stop */
	//UCSRC = (1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);              //For devices with Extended IO
	UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);   //For devices without Extended IO
 14a:	8e e8       	ldi	r24, 0x8E	; 142
 14c:	80 bd       	out	0x20, r24	; 32
 14e:	08 95       	ret

00000150 <USART_Receive>:
}


/* Read and write functions */
unsigned char USART_Receive( void )
{
	/* Wait for incomming data */
	while ( !(UCSRA & (1<<RXC)) ) 	
 150:	5f 9b       	sbis	0x0b, 7	; 11
 152:	fe cf       	rjmp	.-4      	; 0x150
		;			                
        //lcd_goto(0x40);
        //lcd_putstr("-");
	//lcd_putch(UDR1);
	//lcd_putstr("-");
	/* Return the data */

	return UDR;
 154:	8c b1       	in	r24, 0x0c	; 12
}
 156:	99 27       	eor	r25, r25
 158:	08 95       	ret

0000015a <USART_Transmit>:


void USART_Transmit( unsigned char data )
{
	/* Wait for empty transmit buffer */
	while ( !(UCSRA & (1<<UDRE)) )
 15a:	5d 9b       	sbis	0x0b, 5	; 11
 15c:	fe cf       	rjmp	.-4      	; 0x15a
		; 			                
	/* Start transmittion */
	UDR = data; 			        
 15e:	8c b9       	out	0x0c, r24	; 12
 160:	08 95       	ret

00000162 <USART_printhex>:
}

void USART_printhex(uint8_t i)
{
 162:	cf 93       	push	r28
 164:	98 2f       	mov	r25, r24
    uint8_t hi,lo;

    hi=i&0xF0;               // High nibble
    hi=hi>>4;
 166:	82 95       	swap	r24
 168:	8f 70       	andi	r24, 0x0F	; 15
    hi=hi+'0';
 16a:	80 5d       	subi	r24, 0xD0	; 208
    if (hi>'9')
 16c:	8a 33       	cpi	r24, 0x3A	; 58
 16e:	08 f0       	brcs	.+2      	; 0x172
        hi=hi+7;
 170:	89 5f       	subi	r24, 0xF9	; 249

    lo=(i&0x0F)+'0';         // Low nibble
 172:	9f 70       	andi	r25, 0x0F	; 15
 174:	c9 2f       	mov	r28, r25
 176:	c0 5d       	subi	r28, 0xD0	; 208
    if (lo>'9')
 178:	ca 33       	cpi	r28, 0x3A	; 58
 17a:	08 f0       	brcs	.+2      	; 0x17e
        lo=lo+7;
 17c:	c9 5f       	subi	r28, 0xF9	; 249

USART_Transmit( hi );
 17e:	0e 94 ad 00 	call	0x15a
USART_Transmit( lo );
 182:	8c 2f       	mov	r24, r28
 184:	0e 94 ad 00 	call	0x15a
 188:	cf 91       	pop	r28
 18a:	08 95       	ret

0000018c <USART_printstring>:
}


void USART_printstring(unsigned char *data)
{
 18c:	cf 93       	push	r28
 18e:	df 93       	push	r29
 190:	ec 01       	movw	r28, r24
    while(*data) {
        USART_Transmit(*data);
        data++;
 192:	88 81       	ld	r24, Y
 194:	88 23       	and	r24, r24
 196:	61 f0       	breq	.+24     	; 0x1b0
 198:	89 91       	ld	r24, Y+
 19a:	0e 94 ad 00 	call	0x15a
 19e:	88 81       	ld	r24, Y
 1a0:	88 23       	and	r24, r24
 1a2:	31 f0       	breq	.+12     	; 0x1b0
 1a4:	89 91       	ld	r24, Y+
 1a6:	0e 94 ad 00 	call	0x15a
 1aa:	88 81       	ld	r24, Y
 1ac:	88 23       	and	r24, r24
 1ae:	a1 f7       	brne	.-24     	; 0x198
 1b0:	df 91       	pop	r29
 1b2:	cf 91       	pop	r28
 1b4:	08 95       	ret

000001b6 <_exit>:
 1b6:	ff cf       	rjmp	.-2      	; 0x1b6
