   1               		.file	"wiring_analog.c"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   9               		.text
  10               	.Ltext0:
 134               	.global	analogReference
 136               	analogReference:
 137               		.stabd	46,0,0
   1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** /*
   2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   wiring_analog.c - analog input and output
   3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Part of Arduino - http://www.arduino.cc/
   4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
   5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Copyright (c) 2005-2006 David A. Mellis
   6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
   7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   This library is free software; you can redistribute it and/or
   8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   modify it under the terms of the GNU Lesser General Public
   9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   License as published by the Free Software Foundation; either
  10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   version 2.1 of the License, or (at your option) any later version.
  11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   This library is distributed in the hope that it will be useful,
  13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Lesser General Public License for more details.
  16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   You should have received a copy of the GNU Lesser General
  18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Public License along with this library; if not, write to the
  19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Boston, MA  02111-1307  USA
  21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   Modified 28 September 2010 by Mark Sproul
  23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** */
  24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #include "wiring_private.h"
  26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #include "pins_arduino.h"
  27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** uint8_t analog_reference = DEFAULT;
  29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** void analogReference(uint8_t mode)
  31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** {
 139               	.LM0:
 140               	.LFBB1:
 141               	/* prologue: function */
 142               	/* frame size = 0 */
 143               	/* stack size = 0 */
 144               	.L__stack_usage = 0
  32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// can't actually set the register here because the default setting
  33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// will connect AVCC and the AREF pin, which would cause a short if
  34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// there's something connected to AREF.
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	analog_reference = mode;
 146               	.LM1:
 147 0000 8093 0000 		sts analog_reference,r24
 148 0004 0895      		ret
 150               	.Lscope1:
 152               		.stabd	78,0,0
 155               	.global	analogRead
 157               	analogRead:
 158               		.stabd	46,0,0
  36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** }
  37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** int analogRead(uint8_t pin)
  39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** {
 160               	.LM2:
 161               	.LFBB2:
 162               	/* prologue: function */
 163               	/* frame size = 0 */
 164               	/* stack size = 0 */
 165               	.L__stack_usage = 0
  40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	uint8_t low, high;
  41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(analogPinToChannel)
  43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(__AVR_ATmega32U4__)
  44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (pin >= 18) pin -= 18; // allow for channel or pin numbers
  45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	pin = analogPinToChannel(pin);
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (pin >= 54) pin -= 54; // allow for channel or pin numbers
  49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega32U4__)
  50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (pin >= 18) pin -= 18; // allow for channel or pin numbers
  51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || 
  52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (pin >= 24) pin -= 24; // allow for channel or pin numbers
  53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else
  54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (pin >= 14) pin -= 14; // allow for channel or pin numbers
 167               	.LM3:
 168 0006 8E30      		cpi r24,lo8(14)
 169 0008 00F0      		brlo .L3
 171               	.LM4:
 172 000a 8E50      		subi r24,lo8(-(-14))
 173               	.L3:
  55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADCSRB) && defined(MUX5)
  58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// the MUX5 bit of ADCSRB selects whether we're reading from channels
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high).
  60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5);
  61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c ****   
  63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// set the analog reference (high two bits of ADMUX) and select the
  64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// channel (low 4 bits).  this also sets ADLAR (left-adjust result)
  65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// to 0 (the default).
  66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADMUX)
  67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
  68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	ADMUX = (analog_reference << 4) | (pin & 0x07);
  69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else
  70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	ADMUX = (analog_reference << 6) | (pin & 0x07);
 175               	.LM5:
 176 000c 2091 0000 		lds r18,analog_reference
 177 0010 90E4      		ldi r25,lo8(64)
 178 0012 299F      		mul r18,r25
 179 0014 9001      		movw r18,r0
 180 0016 1124      		clr __zero_reg__
 181 0018 8770      		andi r24,lo8(7)
 182 001a 822B      		or r24,r18
 183 001c 8093 7C00 		sts 124,r24
  71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// without a delay, we seem to read from the wrong channel
  75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	//delay(1);
  76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADCSRA) && defined(ADCL)
  78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// start the conversion
  79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	sbi(ADCSRA, ADSC);
 185               	.LM6:
 186 0020 8091 7A00 		lds r24,122
 187 0024 8064      		ori r24,lo8(64)
 188 0026 8093 7A00 		sts 122,r24
 189               	.L4:
  80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// ADSC is cleared when the conversion finishes
  82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	while (bit_is_set(ADCSRA, ADSC));
 191               	.LM7:
 192 002a 8091 7A00 		lds r24,122
 193 002e 86FD      		sbrc r24,6
 194 0030 00C0      		rjmp .L4
  83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// we have to read ADCL first; doing so locks both ADCL
  85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// and ADCH until ADCH is read.  reading ADCL second would
  86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// cause the results of each conversion to be discarded,
  87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// as ADCL and ADCH would be locked when it completed.
  88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	low  = ADCL;
 196               	.LM8:
 197 0032 8091 7800 		lds r24,120
  89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	high = ADCH;
 199               	.LM9:
 200 0036 2091 7900 		lds r18,121
  90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else
  91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// we dont have an ADC, return 0
  92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	low  = 0;
  93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	high = 0;
  94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif
  95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
  96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// combine the two bytes
  97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	return (high << 8) | low;
 202               	.LM10:
 203 003a 90E0      		ldi r25,0
  98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** }
 205               	.LM11:
 206 003c 922B      		or r25,r18
 207 003e 0895      		ret
 213               	.Lscope2:
 215               		.stabd	78,0,0
 219               	.global	analogWrite
 221               	analogWrite:
 222               		.stabd	46,0,0
  99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // Right now, PWM output only works on the pins with
 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // hardware support.  These are defined in the appropriate
 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // pins_*.c file.  For the rest of the pins, we default
 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // to digital output.
 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** void analogWrite(uint8_t pin, int val)
 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** {
 224               	.LM12:
 225               	.LFBB3:
 226 0040 1F93      		push r17
 227 0042 CF93      		push r28
 228 0044 DF93      		push r29
 229               	/* prologue: function */
 230               	/* frame size = 0 */
 231               	/* stack size = 3 */
 232               	.L__stack_usage = 3
 233 0046 182F      		mov r17,r24
 234 0048 EB01      		movw r28,r22
 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// We need to make sure the PWM output is enabled for those pins
 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// that support it, as we turn it off when digitally reading or
 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// writing with them.  Also, make sure the pin is in output mode
 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// for consistenty with Wiring, which doesn't require a pinMode
 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	// call for the analog output pins.
 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	pinMode(pin, OUTPUT);
 236               	.LM13:
 237 004a 61E0      		ldi r22,lo8(1)
 238 004c 0E94 0000 		call pinMode
 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	if (val == 0)
 240               	.LM14:
 241 0050 2097      		sbiw r28,0
 242 0052 01F4      		brne .L8
 243               	.L19:
 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	{
 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		digitalWrite(pin, LOW);
 245               	.LM15:
 246 0054 60E0      		ldi r22,0
 247 0056 00C0      		rjmp .L21
 248               	.L8:
 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	}
 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	else if (val == 255)
 250               	.LM16:
 251 0058 CF3F      		cpi r28,-1
 252 005a D105      		cpc r29,__zero_reg__
 253 005c 01F4      		brne .L9
 254               	.L20:
 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	{
 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		digitalWrite(pin, HIGH);
 256               	.LM17:
 257 005e 61E0      		ldi r22,lo8(1)
 258               	.L21:
 259 0060 812F      		mov r24,r17
 260               	/* epilogue start */
 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	}
 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	else
 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	{
 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		switch(digitalPinToTimer(pin))
 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		{
 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			// XXX fix needed for atmega8
 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__)
 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER0A:
 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 0
 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR0, COM00);
 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR0 = val; // set pwm duty
 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR0A) && defined(COM0A1)
 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER0A:
 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 0, channel A
 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR0A, COM0A1);
 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR0A = val; // set pwm duty
 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR0A) && defined(COM0B1)
 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER0B:
 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 0, channel B
 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR0A, COM0B1);
 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR0B = val; // set pwm duty
 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR1A) && defined(COM1A1)
 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER1A:
 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 1, channel A
 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR1A, COM1A1);
 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR1A = val; // set pwm duty
 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR1A) && defined(COM1B1)
 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER1B:
 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 1, channel B
 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR1A, COM1B1);
 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR1B = val; // set pwm duty
 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR1A) && defined(COM1C1)
 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER1C:
 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 1, channel B
 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR1A, COM1C1);
 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR1C = val; // set pwm duty
 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR2) && defined(COM21)
 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER2:
 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 2
 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR2, COM21);
 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR2 = val; // set pwm duty
 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR2A) && defined(COM2A1)
 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER2A:
 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 2, channel A
 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR2A, COM2A1);
 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR2A = val; // set pwm duty
 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR2A) && defined(COM2B1)
 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER2B:
 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 2, channel B
 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR2A, COM2B1);
 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR2B = val; // set pwm duty
 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR3A) && defined(COM3A1)
 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER3A:
 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 3, channel A
 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR3A, COM3A1);
 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR3A = val; // set pwm duty
 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR3A) && defined(COM3B1)
 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER3B:
 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 3, channel B
 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR3A, COM3B1);
 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR3B = val; // set pwm duty
 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR3A) && defined(COM3C1)
 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER3C:
 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 3, channel C
 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR3A, COM3C1);
 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR3C = val; // set pwm duty
 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR4A)
 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER4A:
 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				//connect pwm to pin on timer 4, channel A
 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR4A, COM4A1);
 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				#if defined(COM4A0)		// only used on 32U4
 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				cbi(TCCR4A, COM4A0);
 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				#endif
 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR4A = val;	// set pwm duty
 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			
 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR4A) && defined(COM4B1)
 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER4B:
 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 4, channel B
 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR4A, COM4B1);
 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR4B = val; // set pwm duty
 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR4A) && defined(COM4C1)
 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER4C:
 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 4, channel C
 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR4A, COM4C1);
 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR4C = val; // set pwm duty
 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				
 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR4C) && defined(COM4D1)
 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER4D:				
 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 4, channel D
 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR4C, COM4D1);
 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				#if defined(COM4D0)		// only used on 32U4
 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				cbi(TCCR4C, COM4D0);
 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				#endif
 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR4D = val;	// set pwm duty
 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 							
 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR5A) && defined(COM5A1)
 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER5A:
 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 5, channel A
 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR5A, COM5A1);
 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR5A = val; // set pwm duty
 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR5A) && defined(COM5B1)
 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER5B:
 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 5, channel B
 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR5A, COM5B1);
 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR5B = val; // set pwm duty
 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#if defined(TCCR5A) && defined(COM5C1)
 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case TIMER5C:
 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				// connect pwm to pin on timer 5, channel C
 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				sbi(TCCR5A, COM5C1);
 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR5C = val; // set pwm duty
 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 
 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			case NOT_ON_TIMER:
 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			default:
 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				if (val < 128) {
 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 					digitalWrite(pin, LOW);
 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				} else {
 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 					digitalWrite(pin, HIGH);
 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				}
 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		}
 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	}
 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** }
 262               	.LM18:
 263 0062 DF91      		pop r29
 264 0064 CF91      		pop r28
 265 0066 1F91      		pop r17
 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 	}
 267               	.LM19:
 268 0068 0C94 0000 		jmp digitalWrite
 269               	.L9:
 270               	.LBB2:
 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		{
 272               	.LM20:
 273 006c E12F      		mov r30,r17
 274 006e F0E0      		ldi r31,0
 275 0070 E050      		subi r30,lo8(-(digital_pin_to_timer_PGM))
 276 0072 F040      		sbci r31,hi8(-(digital_pin_to_timer_PGM))
 277               	/* #APP */
 278               	 ;  122 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 279 0074 E491      		lpm r30, Z
 280               		
 281               	 ;  0 "" 2
 282               	/* #NOAPP */
 283               	.LBE2:
 284 0076 E330      		cpi r30,lo8(3)
 285 0078 01F0      		breq .L11
 286 007a 00F4      		brsh .L12
 287 007c E130      		cpi r30,lo8(1)
 288 007e 01F0      		breq .L13
 289 0080 E230      		cpi r30,lo8(2)
 290 0082 01F4      		brne .L10
 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR0B = val; // set pwm duty
 292               	.LM21:
 293 0084 84B5      		in r24,0x24
 294 0086 8062      		ori r24,lo8(32)
 295 0088 84BD      		out 0x24,r24
 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 297               	.LM22:
 298 008a C8BD      		out 0x28,r28
 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 300               	.LM23:
 301 008c 00C0      		rjmp .L7
 302               	.L12:
 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 		{
 304               	.LM24:
 305 008e E730      		cpi r30,lo8(7)
 306 0090 01F0      		breq .L15
 307 0092 E830      		cpi r30,lo8(8)
 308 0094 01F0      		breq .L16
 309 0096 E430      		cpi r30,lo8(4)
 310 0098 01F4      		brne .L10
 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR1B = val; // set pwm duty
 312               	.LM25:
 313 009a 8091 8000 		lds r24,128
 314 009e 8062      		ori r24,lo8(32)
 315 00a0 8093 8000 		sts 128,r24
 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 317               	.LM26:
 318 00a4 D093 8B00 		sts 138+1,r29
 319 00a8 C093 8A00 		sts 138,r28
 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 321               	.LM27:
 322 00ac 00C0      		rjmp .L7
 323               	.L13:
 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR0A = val; // set pwm duty
 325               	.LM28:
 326 00ae 84B5      		in r24,0x24
 327 00b0 8068      		ori r24,lo8(-128)
 328 00b2 84BD      		out 0x24,r24
 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 330               	.LM29:
 331 00b4 C7BD      		out 0x27,r28
 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 333               	.LM30:
 334 00b6 00C0      		rjmp .L7
 335               	.L11:
 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR1A = val; // set pwm duty
 337               	.LM31:
 338 00b8 8091 8000 		lds r24,128
 339 00bc 8068      		ori r24,lo8(-128)
 340 00be 8093 8000 		sts 128,r24
 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 342               	.LM32:
 343 00c2 D093 8900 		sts 136+1,r29
 344 00c6 C093 8800 		sts 136,r28
 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 346               	.LM33:
 347 00ca 00C0      		rjmp .L7
 348               	.L15:
 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR2A = val; // set pwm duty
 350               	.LM34:
 351 00cc 8091 B000 		lds r24,176
 352 00d0 8068      		ori r24,lo8(-128)
 353 00d2 8093 B000 		sts 176,r24
 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 355               	.LM35:
 356 00d6 C093 B300 		sts 179,r28
 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 358               	.LM36:
 359 00da 00C0      		rjmp .L7
 360               	.L16:
 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				OCR2B = val; // set pwm duty
 362               	.LM37:
 363 00dc 8091 B000 		lds r24,176
 364 00e0 8062      		ori r24,lo8(32)
 365 00e2 8093 B000 		sts 176,r24
 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 				break;
 367               	.LM38:
 368 00e6 C093 B400 		sts 180,r28
 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 			#endif
 370               	.LM39:
 371 00ea 00C0      		rjmp .L7
 372               	.L10:
 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** 					digitalWrite(pin, LOW);
 374               	.LM40:
 375 00ec C038      		cpi r28,-128
 376 00ee D105      		cpc r29,__zero_reg__
 377 00f0 04F0      		brlt .+2
 378 00f2 00C0      		rjmp .L20
 379 00f4 00C0      		rjmp .L19
 380               	.L7:
 381               	/* epilogue start */
 383               	.LM41:
 384 00f6 DF91      		pop r29
 385 00f8 CF91      		pop r28
 386 00fa 1F91      		pop r17
 387 00fc 0895      		ret
 389               	.Lscope3:
 391               		.stabd	78,0,0
 392               	.global	analog_reference
 393               		.data
 396               	analog_reference:
 397 0000 01        		.byte	1
 413               		.text
 415               	.Letext0:
 416               		.ident	"GCC: (GNU) 5.4.0"
 417               	.global __do_copy_data
DEFINED SYMBOLS
                            *ABS*:0000000000000000 wiring_analog.c
     /tmp/ccJsfvT3.s:2      *ABS*:000000000000003e __SP_H__
     /tmp/ccJsfvT3.s:3      *ABS*:000000000000003d __SP_L__
     /tmp/ccJsfvT3.s:4      *ABS*:000000000000003f __SREG__
     /tmp/ccJsfvT3.s:5      *ABS*:0000000000000000 __tmp_reg__
     /tmp/ccJsfvT3.s:6      *ABS*:0000000000000001 __zero_reg__
     /tmp/ccJsfvT3.s:136    .text:0000000000000000 analogReference
     /tmp/ccJsfvT3.s:396    .data:0000000000000000 analog_reference
     /tmp/ccJsfvT3.s:157    .text:0000000000000006 analogRead
     /tmp/ccJsfvT3.s:221    .text:0000000000000040 analogWrite

UNDEFINED SYMBOLS
pinMode
digitalWrite
digital_pin_to_timer_PGM
__do_copy_data
