
C:\Users\Martin\AppData\Local\Temp\arduino_build_659813/sketch_jun30b.ino.elf:     file format elf32-avr


Disassembly of section .text:

00000000 <__vectors>:
__vectors():
../../../../../crt1/gcrt1.S:61
   0:	4f c0       	rjmp	.+158    	; 0xa0 <__ctors_end>
   2:	00 00       	nop
../../../../../crt1/gcrt1.S:67
   4:	5d c0       	rjmp	.+186    	; 0xc0 <__bad_interrupt>
   6:	00 00       	nop
../../../../../crt1/gcrt1.S:68
   8:	5b c0       	rjmp	.+182    	; 0xc0 <__bad_interrupt>
   a:	00 00       	nop
../../../../../crt1/gcrt1.S:69
   c:	59 c0       	rjmp	.+178    	; 0xc0 <__bad_interrupt>
   e:	00 00       	nop
../../../../../crt1/gcrt1.S:70
  10:	57 c0       	rjmp	.+174    	; 0xc0 <__bad_interrupt>
  12:	00 00       	nop
../../../../../crt1/gcrt1.S:71
  14:	55 c0       	rjmp	.+170    	; 0xc0 <__bad_interrupt>
  16:	00 00       	nop
../../../../../crt1/gcrt1.S:72
  18:	53 c0       	rjmp	.+166    	; 0xc0 <__bad_interrupt>
  1a:	00 00       	nop
../../../../../crt1/gcrt1.S:73
  1c:	51 c0       	rjmp	.+162    	; 0xc0 <__bad_interrupt>
  1e:	00 00       	nop
../../../../../crt1/gcrt1.S:74
  20:	4f c0       	rjmp	.+158    	; 0xc0 <__bad_interrupt>
  22:	00 00       	nop
../../../../../crt1/gcrt1.S:75
  24:	4d c0       	rjmp	.+154    	; 0xc0 <__bad_interrupt>
  26:	00 00       	nop
../../../../../crt1/gcrt1.S:76
  28:	4b c0       	rjmp	.+150    	; 0xc0 <__bad_interrupt>
  2a:	00 00       	nop
../../../../../crt1/gcrt1.S:77
  2c:	49 c0       	rjmp	.+146    	; 0xc0 <__bad_interrupt>
  2e:	00 00       	nop
../../../../../crt1/gcrt1.S:78
  30:	47 c0       	rjmp	.+142    	; 0xc0 <__bad_interrupt>
  32:	00 00       	nop
../../../../../crt1/gcrt1.S:79
  34:	45 c0       	rjmp	.+138    	; 0xc0 <__bad_interrupt>
  36:	00 00       	nop
../../../../../crt1/gcrt1.S:80
  38:	43 c0       	rjmp	.+134    	; 0xc0 <__bad_interrupt>
  3a:	00 00       	nop
../../../../../crt1/gcrt1.S:81
  3c:	41 c0       	rjmp	.+130    	; 0xc0 <__bad_interrupt>
  3e:	00 00       	nop
../../../../../crt1/gcrt1.S:82
  40:	3f c0       	rjmp	.+126    	; 0xc0 <__bad_interrupt>
  42:	00 00       	nop
../../../../../crt1/gcrt1.S:83
  44:	3d c0       	rjmp	.+122    	; 0xc0 <__bad_interrupt>
  46:	00 00       	nop
../../../../../crt1/gcrt1.S:84
  48:	3b c0       	rjmp	.+118    	; 0xc0 <__bad_interrupt>
  4a:	00 00       	nop
../../../../../crt1/gcrt1.S:85
  4c:	39 c0       	rjmp	.+114    	; 0xc0 <__bad_interrupt>
  4e:	00 00       	nop
../../../../../crt1/gcrt1.S:86
  50:	37 c0       	rjmp	.+110    	; 0xc0 <__bad_interrupt>
  52:	00 00       	nop
../../../../../crt1/gcrt1.S:87
  54:	35 c0       	rjmp	.+106    	; 0xc0 <__bad_interrupt>
  56:	00 00       	nop
../../../../../crt1/gcrt1.S:88
  58:	33 c0       	rjmp	.+102    	; 0xc0 <__bad_interrupt>
  5a:	00 00       	nop
../../../../../crt1/gcrt1.S:89
  5c:	31 c0       	rjmp	.+98     	; 0xc0 <__bad_interrupt>
  5e:	00 00       	nop
../../../../../crt1/gcrt1.S:90
  60:	2f c0       	rjmp	.+94     	; 0xc0 <__bad_interrupt>
  62:	00 00       	nop
../../../../../crt1/gcrt1.S:91
  64:	2e c0       	rjmp	.+92     	; 0xc2 <__vector_25>
  66:	00 00       	nop
../../../../../crt1/gcrt1.S:92
  68:	2b c0       	rjmp	.+86     	; 0xc0 <__bad_interrupt>
  6a:	00 00       	nop
../../../../../crt1/gcrt1.S:93
  6c:	29 c0       	rjmp	.+82     	; 0xc0 <__bad_interrupt>
  6e:	00 00       	nop
../../../../../crt1/gcrt1.S:94
  70:	27 c0       	rjmp	.+78     	; 0xc0 <__bad_interrupt>
  72:	00 00       	nop
../../../../../crt1/gcrt1.S:95
  74:	25 c0       	rjmp	.+74     	; 0xc0 <__bad_interrupt>
  76:	00 00       	nop
../../../../../crt1/gcrt1.S:96
  78:	23 c0       	rjmp	.+70     	; 0xc0 <__bad_interrupt>
  7a:	00 00       	nop
../../../../../crt1/gcrt1.S:97
  7c:	21 c0       	rjmp	.+66     	; 0xc0 <__bad_interrupt>
  7e:	00 00       	nop
../../../../../crt1/gcrt1.S:98
  80:	1f c0       	rjmp	.+62     	; 0xc0 <__bad_interrupt>
  82:	00 00       	nop
../../../../../crt1/gcrt1.S:99
  84:	1d c0       	rjmp	.+58     	; 0xc0 <__bad_interrupt>
  86:	00 00       	nop
../../../../../crt1/gcrt1.S:100
  88:	1b c0       	rjmp	.+54     	; 0xc0 <__bad_interrupt>
  8a:	00 00       	nop
../../../../../crt1/gcrt1.S:101
  8c:	19 c0       	rjmp	.+50     	; 0xc0 <__bad_interrupt>
  8e:	00 00       	nop
../../../../../crt1/gcrt1.S:102
  90:	17 c0       	rjmp	.+46     	; 0xc0 <__bad_interrupt>
  92:	00 00       	nop
../../../../../crt1/gcrt1.S:103
  94:	15 c0       	rjmp	.+42     	; 0xc0 <__bad_interrupt>
  96:	00 00       	nop
../../../../../crt1/gcrt1.S:104
  98:	13 c0       	rjmp	.+38     	; 0xc0 <__bad_interrupt>
  9a:	00 00       	nop
../../../../../crt1/gcrt1.S:105
  9c:	11 c0       	rjmp	.+34     	; 0xc0 <__bad_interrupt>
	...

000000a0 <__ctors_end>:
__trampolines_start():
../../../../../crt1/gcrt1.S:230
  a0:	11 24       	eor	r1, r1
../../../../../crt1/gcrt1.S:231
  a2:	1f be       	out	0x3f, r1	; 63
../../../../../crt1/gcrt1.S:232
  a4:	cf ef       	ldi	r28, 0xFF	; 255
../../../../../crt1/gcrt1.S:234
  a6:	cd bf       	out	0x3d, r28	; 61
../../../../../crt1/gcrt1.S:236
  a8:	df e3       	ldi	r29, 0x3F	; 63
../../../../../crt1/gcrt1.S:237
  aa:	de bf       	out	0x3e, r29	; 62

000000ac <__do_clear_bss>:
__do_clear_bss():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2441
  ac:	2c e3       	ldi	r18, 0x3C	; 60
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2442
  ae:	a0 e0       	ldi	r26, 0x00	; 0
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2443
  b0:	bc e3       	ldi	r27, 0x3C	; 60
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2444
  b2:	01 c0       	rjmp	.+2      	; 0xb6 <.do_clear_bss_start>

000000b4 <.do_clear_bss_loop>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2446
  b4:	1d 92       	st	X+, r1

000000b6 <.do_clear_bss_start>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2448
  b6:	a4 30       	cpi	r26, 0x04	; 4
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2449
  b8:	b2 07       	cpc	r27, r18
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2450
  ba:	e1 f7       	brne	.-8      	; 0xb4 <.do_clear_bss_loop>
.do_clear_bss_start():
../../../../../crt1/gcrt1.S:314
  bc:	2a d0       	rcall	.+84     	; 0x112 <main>
../../../../../crt1/gcrt1.S:315
  be:	9b c0       	rjmp	.+310    	; 0x1f6 <_exit>

000000c0 <__bad_interrupt>:
__vector_38():
../../../../../crt1/gcrt1.S:209
  c0:	9f cf       	rjmp	.-194    	; 0x0 <__vectors>

000000c2 <__vector_25>:
__vector_25():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:74
#elif defined(MILLIS_USE_TIMERB2)
ISR(TCB2_INT_vect)
#else // fallback or defined(MILLIS_USE_TIMERB3)
ISR(TCB3_INT_vect)
#endif
{
  c2:	1f 92       	push	r1
  c4:	0f 92       	push	r0
  c6:	0f b6       	in	r0, 0x3f	; 63
  c8:	0f 92       	push	r0
  ca:	11 24       	eor	r1, r1
  cc:	8f 93       	push	r24
  ce:	9f 93       	push	r25
  d0:	af 93       	push	r26
  d2:	bf 93       	push	r27
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:75
  timer_millis++;
  d4:	80 91 00 3c 	lds	r24, 0x3C00	; 0x803c00 <__DATA_REGION_ORIGIN__>
  d8:	90 91 01 3c 	lds	r25, 0x3C01	; 0x803c01 <__DATA_REGION_ORIGIN__+0x1>
  dc:	a0 91 02 3c 	lds	r26, 0x3C02	; 0x803c02 <__DATA_REGION_ORIGIN__+0x2>
  e0:	b0 91 03 3c 	lds	r27, 0x3C03	; 0x803c03 <__DATA_REGION_ORIGIN__+0x3>
  e4:	01 96       	adiw	r24, 0x01	; 1
  e6:	a1 1d       	adc	r26, r1
  e8:	b1 1d       	adc	r27, r1
  ea:	80 93 00 3c 	sts	0x3C00, r24	; 0x803c00 <__DATA_REGION_ORIGIN__>
  ee:	90 93 01 3c 	sts	0x3C01, r25	; 0x803c01 <__DATA_REGION_ORIGIN__+0x1>
  f2:	a0 93 02 3c 	sts	0x3C02, r26	; 0x803c02 <__DATA_REGION_ORIGIN__+0x2>
  f6:	b0 93 03 3c 	sts	0x3C03, r27	; 0x803c03 <__DATA_REGION_ORIGIN__+0x3>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:78

  /* Clear flag */
  _timer->INTFLAGS = TCB_CAPT_bm;
  fa:	81 e0       	ldi	r24, 0x01	; 1
  fc:	80 93 a6 0a 	sts	0x0AA6, r24	; 0x800aa6 <__RODATA_PM_OFFSET__+0x7fcaa6>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:79
}
 100:	bf 91       	pop	r27
 102:	af 91       	pop	r26
 104:	9f 91       	pop	r25
 106:	8f 91       	pop	r24
 108:	0f 90       	pop	r0
 10a:	0f be       	out	0x3f, r0	; 63
 10c:	0f 90       	pop	r0
 10e:	1f 90       	pop	r1
 110:	18 95       	reti

00000112 <main>:
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:355
#if (F_CPU == 20000000L)
  /* No division on clock */
  _PROTECTED_WRITE(CLKCTRL_MCLKCTRLB, 0x00);
#elif (F_CPU == 16000000L)
  /* No division on clock */
  _PROTECTED_WRITE(CLKCTRL_MCLKCTRLB, 0x00);
 112:	88 ed       	ldi	r24, 0xD8	; 216
 114:	90 e0       	ldi	r25, 0x00	; 0
 116:	84 bf       	out	0x34, r24	; 52
 118:	90 93 61 00 	sts	0x0061, r25	; 0x800061 <__RODATA_PM_OFFSET__+0x7fc061>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:388
  /* ADC clock between 50-200 kHz */

#if (F_CPU >= 20000000L) // 20 MHz / 128 = 156.250 kHz
  ADC0.CTRLC |= ADC_PRESC_DIV128_gc;
#elif (F_CPU >= 16000000L) // 16 MHz / 128 = 125 kHz
  ADC0.CTRLC |= ADC_PRESC_DIV128_gc;
 11c:	80 91 02 06 	lds	r24, 0x0602	; 0x800602 <__RODATA_PM_OFFSET__+0x7fc602>
 120:	86 60       	ori	r24, 0x06	; 6
 122:	80 93 02 06 	sts	0x0602, r24	; 0x800602 <__RODATA_PM_OFFSET__+0x7fc602>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:402
#else                      // 128 kHz / 2 = 64 kHz -> This is the closest you can get, the prescaler is 2
  ADC0.CTRLC |= ADC_PRESC_DIV2_gc;
#endif

  /* Enable ADC */
  ADC0.CTRLA |= ADC_ENABLE_bm;
 126:	80 91 00 06 	lds	r24, 0x0600	; 0x800600 <__RODATA_PM_OFFSET__+0x7fc600>
 12a:	81 60       	ori	r24, 0x01	; 1
 12c:	80 93 00 06 	sts	0x0600, r24	; 0x800600 <__RODATA_PM_OFFSET__+0x7fc600>
analogReference():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_analog.c:35
{
  switch (mode)
  {
    case EXTERNAL:
    case VDD:
      ADC0.CTRLC = (ADC0.CTRLC & ~(ADC_REFSEL_gm)) | mode | ADC_SAMPCAP_bm; // Per datasheet, recommended SAMPCAP=1 at ref > 1v - we don't *KNOW* the external reference will be >1v, but it's probably more likely...
 130:	80 91 02 06 	lds	r24, 0x0602	; 0x800602 <__RODATA_PM_OFFSET__+0x7fc602>
 134:	8f 7c       	andi	r24, 0xCF	; 207
 136:	80 65       	ori	r24, 0x50	; 80
 138:	80 93 02 06 	sts	0x0602, r24	; 0x800602 <__RODATA_PM_OFFSET__+0x7fc602>
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:407
  analogReference(VDD);

#endif

  PORTMUX.USARTROUTEA = 0;
 13c:	10 92 e2 05 	sts	0x05E2, r1	; 0x8005e2 <__RODATA_PM_OFFSET__+0x7fc5e2>
setup_timers():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:446
void setup_timers()
{
  //  TYPE A TIMER

  // PORTMUX setting for TCA (defined in pins_arduino.h)
  PORTMUX.TCAROUTEA = TCA0_PINS;
 140:	82 e0       	ldi	r24, 0x02	; 2
 142:	80 93 e4 05 	sts	0x05E4, r24	; 0x8005e4 <__RODATA_PM_OFFSET__+0x7fc5e4>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:449

  // Enable split mode before anything else
  TCA0.SPLIT.CTRLD = TCA_SINGLE_SPLITM_bm;
 146:	81 e0       	ldi	r24, 0x01	; 1
 148:	80 93 03 0a 	sts	0x0A03, r24	; 0x800a03 <__RODATA_PM_OFFSET__+0x7fca03>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:453

  // Period setting, two 8 bit registers
  TCA0.SPLIT.LPER =
      TCA0.SPLIT.HPER = PWM_TIMER_PERIOD;
 14c:	8e ef       	ldi	r24, 0xFE	; 254
 14e:	80 93 27 0a 	sts	0x0A27, r24	; 0x800a27 <__RODATA_PM_OFFSET__+0x7fca27>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:452

  // Enable split mode before anything else
  TCA0.SPLIT.CTRLD = TCA_SINGLE_SPLITM_bm;

  // Period setting, two 8 bit registers
  TCA0.SPLIT.LPER =
 152:	80 93 26 0a 	sts	0x0A26, r24	; 0x800a26 <__RODATA_PM_OFFSET__+0x7fca26>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:461
  TCA0.SPLIT.LCMP0 =
      TCA0.SPLIT.LCMP1 =
          TCA0.SPLIT.LCMP2 =
              TCA0.SPLIT.HCMP0 =
                  TCA0.SPLIT.HCMP1 =
                      TCA0.SPLIT.HCMP2 = PWM_TIMER_COMPARE;
 156:	80 e8       	ldi	r24, 0x80	; 128
 158:	80 93 2d 0a 	sts	0x0A2D, r24	; 0x800a2d <__RODATA_PM_OFFSET__+0x7fca2d>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:460
  // Default duty 50%, will re-assign in analogWrite()
  TCA0.SPLIT.LCMP0 =
      TCA0.SPLIT.LCMP1 =
          TCA0.SPLIT.LCMP2 =
              TCA0.SPLIT.HCMP0 =
                  TCA0.SPLIT.HCMP1 =
 15c:	80 93 2b 0a 	sts	0x0A2B, r24	; 0x800a2b <__RODATA_PM_OFFSET__+0x7fca2b>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:459

  // Default duty 50%, will re-assign in analogWrite()
  TCA0.SPLIT.LCMP0 =
      TCA0.SPLIT.LCMP1 =
          TCA0.SPLIT.LCMP2 =
              TCA0.SPLIT.HCMP0 =
 160:	80 93 29 0a 	sts	0x0A29, r24	; 0x800a29 <__RODATA_PM_OFFSET__+0x7fca29>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:458
      TCA0.SPLIT.HPER = PWM_TIMER_PERIOD;

  // Default duty 50%, will re-assign in analogWrite()
  TCA0.SPLIT.LCMP0 =
      TCA0.SPLIT.LCMP1 =
          TCA0.SPLIT.LCMP2 =
 164:	80 93 2c 0a 	sts	0x0A2C, r24	; 0x800a2c <__RODATA_PM_OFFSET__+0x7fca2c>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:457
  TCA0.SPLIT.LPER =
      TCA0.SPLIT.HPER = PWM_TIMER_PERIOD;

  // Default duty 50%, will re-assign in analogWrite()
  TCA0.SPLIT.LCMP0 =
      TCA0.SPLIT.LCMP1 =
 168:	80 93 2a 0a 	sts	0x0A2A, r24	; 0x800a2a <__RODATA_PM_OFFSET__+0x7fca2a>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:456
  // Period setting, two 8 bit registers
  TCA0.SPLIT.LPER =
      TCA0.SPLIT.HPER = PWM_TIMER_PERIOD;

  // Default duty 50%, will re-assign in analogWrite()
  TCA0.SPLIT.LCMP0 =
 16c:	80 93 28 0a 	sts	0x0A28, r24	; 0x800a28 <__RODATA_PM_OFFSET__+0x7fca28>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:474
#elif F_CPU <= 8000000L
  // Use DIV16 prescaler (giving 250kHz clocke on 4MHz, 500kHz clock on 8MHz), enable TCA timer
  TCA0.SPLIT.CTRLA = (TCA_SPLIT_CLKSEL_DIV16_gc) | (TCA_SPLIT_ENABLE_bm);
#else
  // Use DIV64 prescaler (giving 250kHz clock on 16MHz), enable TCA timer
  TCA0.SPLIT.CTRLA = (TCA_SPLIT_CLKSEL_DIV64_gc) | (TCA_SPLIT_ENABLE_bm);
 170:	8b e0       	ldi	r24, 0x0B	; 11
 172:	80 93 00 0a 	sts	0x0A00, r24	; 0x800a00 <__RODATA_PM_OFFSET__+0x7fca00>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:480
#endif

  //  TYPE B TIMERS

  // Set up routing (defined in pins_arduino.h)
  PORTMUX.TCBROUTEA = 0
 176:	87 e0       	ldi	r24, 0x07	; 7
 178:	80 93 e5 05 	sts	0x05E5, r24	; 0x8005e5 <__RODATA_PM_OFFSET__+0x7fc5e5>
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:496
                      | TCB3_PINS
#endif
      ;

  // Start with TCB0
  TCB_t *timer_B = (TCB_t *)&TCB0;
 17c:	e0 e8       	ldi	r30, 0x80	; 128
 17e:	fa e0       	ldi	r31, 0x0A	; 10
setup_timers():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:513

  // Timer B Setup loop for TCB[0:end]
  do
  {
    // 8 bit PWM mode, but do not enable output yet, will do in analogWrite()
    timer_B->CTRLB = (TCB_CNTMODE_PWM8_gc);
 180:	37 e0       	ldi	r19, 0x07	; 7
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:516

    // Assign 8-bit period
    timer_B->CCMPL = PWM_TIMER_PERIOD;
 182:	2e ef       	ldi	r18, 0xFE	; 254
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:519

    // default duty 50%, set when output enabled
    timer_B->CCMPH = PWM_TIMER_COMPARE;
 184:	90 e8       	ldi	r25, 0x80	; 128
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:523

    // Use TCA clock (250kHz) and enable
    // (sync update commented out, might try to synchronize later
    timer_B->CTRLA = (TCB_CLKSEL_CLKTCA_gc)
 186:	85 e0       	ldi	r24, 0x05	; 5
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:513

  // Timer B Setup loop for TCB[0:end]
  do
  {
    // 8 bit PWM mode, but do not enable output yet, will do in analogWrite()
    timer_B->CTRLB = (TCB_CNTMODE_PWM8_gc);
 188:	31 83       	std	Z+1, r19	; 0x01
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:516

    // Assign 8-bit period
    timer_B->CCMPL = PWM_TIMER_PERIOD;
 18a:	24 87       	std	Z+12, r18	; 0x0c
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:519

    // default duty 50%, set when output enabled
    timer_B->CCMPH = PWM_TIMER_COMPARE;
 18c:	95 87       	std	Z+13, r25	; 0x0d
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:523

    // Use TCA clock (250kHz) and enable
    // (sync update commented out, might try to synchronize later
    timer_B->CTRLA = (TCB_CLKSEL_CLKTCA_gc)
 18e:	80 83       	st	Z, r24
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:528
                     //|(TCB_SYNCUPD_bm)
                     | (TCB_ENABLE_bm);

    // Increment pointer to next TCB instance
    timer_B++;
 190:	70 96       	adiw	r30, 0x10	; 16
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:531

    // Stop when pointing to TCB3
  } while (timer_B <= timer_B_end);
 192:	e0 3c       	cpi	r30, 0xC0	; 192
 194:	4a e0       	ldi	r20, 0x0A	; 10
 196:	f4 07       	cpc	r31, r20
 198:	b9 f7       	brne	.-18     	; 0x188 <main+0x76>
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:416
  /********************* TCB for system time tracking **************************/

  // BUG: we can compensate for F_CPU by fine tuning value of TIME_TRACKING_TIMER_COUNT

  /* Select vanilla 16 bit periodic interrupt mode */
  _timer->CTRLB = TCB_CNTMODE_INT_gc;
 19a:	10 92 a1 0a 	sts	0x0AA1, r1	; 0x800aa1 <__RODATA_PM_OFFSET__+0x7fcaa1>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:419

  /* TOP value for overflow every N clock cycles */
  _timer->CCMP = TIME_TRACKING_TIMER_COUNT - 1;
 19e:	8f e7       	ldi	r24, 0x7F	; 127
 1a0:	9e e3       	ldi	r25, 0x3E	; 62
 1a2:	80 93 ac 0a 	sts	0x0AAC, r24	; 0x800aac <__RODATA_PM_OFFSET__+0x7fcaac>
 1a6:	90 93 ad 0a 	sts	0x0AAD, r25	; 0x800aad <__RODATA_PM_OFFSET__+0x7fcaad>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:422

  /* Enable TCB interrupt */
  _timer->INTCTRL |= TCB_CAPT_bm;
 1aa:	80 91 a5 0a 	lds	r24, 0x0AA5	; 0x800aa5 <__RODATA_PM_OFFSET__+0x7fcaa5>
 1ae:	81 60       	ori	r24, 0x01	; 1
 1b0:	80 93 a5 0a 	sts	0x0AA5, r24	; 0x800aa5 <__RODATA_PM_OFFSET__+0x7fcaa5>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:426

  /* Clock selection is F_CPU/N -- which is independent of TCA */
#if TIME_TRACKING_TIMER_DIVIDER == 1
  _timer->CTRLA = TCB_CLKSEL_CLKDIV1_gc; /* F_CPU */
 1b4:	10 92 a0 0a 	sts	0x0AA0, r1	; 0x800aa0 <__RODATA_PM_OFFSET__+0x7fcaa0>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:434
#else
#assert "TIME_TRACKING_TIMER_DIVIDER not supported"
#endif

  /* Enable & start */
  _timer->CTRLA |= TCB_ENABLE_bm; /* Keep this last before enabling interrupts to ensure tracking as accurate as possible */
 1b8:	80 91 a0 0a 	lds	r24, 0x0AA0	; 0x800aa0 <__RODATA_PM_OFFSET__+0x7fcaa0>
 1bc:	81 60       	ori	r24, 0x01	; 1
 1be:	80 93 a0 0a 	sts	0x0AA0, r24	; 0x800aa0 <__RODATA_PM_OFFSET__+0x7fcaa0>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring.c:438

  /*************************** ENABLE GLOBAL INTERRUPTS *************************/

  sei();
 1c2:	78 94       	sei
pinMode():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:43
    return;

  if (mode == OUTPUT)
  {
    /* Configure direction as output */
    port->DIRSET = bit_mask;
 1c4:	82 e0       	ldi	r24, 0x02	; 2
 1c6:	80 93 01 04 	sts	0x0401, r24	; 0x800401 <__RODATA_PM_OFFSET__+0x7fc401>
digitalWrite():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:167
      port->OUTTGL = bit_mask;
      /* If HIGH OR  > TOGGLE  */
    }
    else
    {
      port->OUTSET = bit_mask;
 1ca:	12 e0       	ldi	r17, 0x02	; 2
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/main.cpp:43
  setup();

  for (;;)
  {
    loop();
    if (serialEventRun) serialEventRun();
 1cc:	c0 e0       	ldi	r28, 0x00	; 0
 1ce:	d0 e0       	ldi	r29, 0x00	; 0
digitalWrite():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:153

  /* Get port */
  PORT_t *port = digitalPinToPortStruct(pin);

  /* Output direction */
  if (port->DIR & bit_mask)
 1d0:	80 91 00 04 	lds	r24, 0x0400	; 0x800400 <__RODATA_PM_OFFSET__+0x7fc400>
 1d4:	81 ff       	sbrs	r24, 1
 1d6:	06 c0       	rjmp	.+12     	; 0x1e4 <main+0xd2>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:167
      port->OUTTGL = bit_mask;
      /* If HIGH OR  > TOGGLE  */
    }
    else
    {
      port->OUTSET = bit_mask;
 1d8:	10 93 05 04 	sts	0x0405, r17	; 0x800405 <__RODATA_PM_OFFSET__+0x7fc405>
main():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/main.cpp:43
 1dc:	20 97       	sbiw	r28, 0x00	; 0
 1de:	c1 f3       	breq	.-16     	; 0x1d0 <main+0xbe>
 1e0:	0f df       	rcall	.-482    	; 0x0 <__vectors>
 1e2:	f6 cf       	rjmp	.-20     	; 0x1d0 <main+0xbe>
digitalWrite():
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:186

    /* Calculate where pin control register is */
    volatile uint8_t *pin_ctrl_reg = getPINnCTRLregister(port, bit_pos);

    /* Save system status and disable interrupts */
    uint8_t status = SREG;
 1e4:	9f b7       	in	r25, 0x3f	; 63
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:187
    cli();
 1e6:	f8 94       	cli
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:197
      *pin_ctrl_reg &= ~PORT_PULLUPEN_bm;
    }
    else
    {
      /* Enable pull-up */
      *pin_ctrl_reg |= PORT_PULLUPEN_bm;
 1e8:	80 91 11 04 	lds	r24, 0x0411	; 0x800411 <__RODATA_PM_OFFSET__+0x7fc411>
 1ec:	88 60       	ori	r24, 0x08	; 8
 1ee:	80 93 11 04 	sts	0x0411, r24	; 0x800411 <__RODATA_PM_OFFSET__+0x7fc411>
C:\Users\Martin\AppData\Local\Arduino15\packages\MegaCoreX\hardware\megaavr\1.0.10\cores\coreX-corefiles/wiring_digital.c:201
    }

    /* Restore system status */
    SREG = status;
 1f2:	9f bf       	out	0x3f, r25	; 63
 1f4:	f3 cf       	rjmp	.-26     	; 0x1dc <main+0xca>

000001f6 <_exit>:
exit():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2278
 1f6:	f8 94       	cli

000001f8 <__stop_program>:
__stop_program():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avrxmega3/short-calls/libgcc/../../../../../gcc/libgcc/config/avr/lib1funcs.S:2280
 1f8:	ff cf       	rjmp	.-2      	; 0x1f8 <__stop_program>
