;/*****************************************************
;Project : HV_ConverterR2b (Rewrited R2a)
;Version : 1.0
;Date    : 30.09.2017
;Author  : Sergey Abovyan
;
;Chip type               : ATmega48
;AVR Core Clock frequency: 12.000000 MHz
;Memory model            : Small
;External RAM size       : 0
;Data Stack size         : 128
;*****************************************************/
;
;#include <mega48.h>
;PCODE: $00000000 VOL: 0
	#ifndef __SLEEP_DEFINED__
;PCODE: $00000001 VOL: 0
	#define __SLEEP_DEFINED__
;PCODE: $00000002 VOL: 0
	.EQU __se_bit=0x01
;PCODE: $00000003 VOL: 0
	.EQU __sm_mask=0x0E
;PCODE: $00000004 VOL: 0
	.EQU __sm_adc_noise_red=0x02
;PCODE: $00000005 VOL: 0
	.EQU __sm_powerdown=0x04
;PCODE: $00000006 VOL: 0
	.EQU __sm_powersave=0x06
;PCODE: $00000007 VOL: 0
	.EQU __sm_standby=0x0C
;PCODE: $00000008 VOL: 0
	.SET power_ctrl_reg=smcr
;PCODE: $00000009 VOL: 0
	#endif
;PCODE: $0000000A VOL: 0
;PCODE: $0000000B VOL: 0
;
;// Standard Input/Output functions
;#include <stdio.h>
;#include <ctype.h>
;#include <stdlib.h>
;#include <math.h>
;#include <delay.h>
;
;typedef unsigned char u8;
;typedef unsigned int  u16;
;typedef unsigned long u32;
;
;#define PWM_EN	PORTD.5
;
;/***************************************************************************************/
;eeprom u8 MyAddress = 1;
;
;const u16 PWM_MAX = 2500;

	.DSEG
;const u16 PWM_MIN = 0;
;const u16 HV_MAX = 5000;
;const u16 HV_MIN = 900;
;
;eeprom u16 HV = HV_MIN;
;
;//default calibration values
;eeprom u16 HV_PHYS_MAX = 2591;
;eeprom u16 HV_PHYS_MIN = 861;
;eeprom float VOLTAGE_TO_PWM = (float)(PWM_MAX - PWM_MIN) / (float)(2591 - 861);
;eeprom float ADC_TO_VOLTAGE = 3.2827;
;
;/***************************************************************************************/
;// Declare your global variables here
;#define _ALTERNATE_PUTCHAR_
;void putch(char ch)
; 0000 0031 {

	.CSEG
;PCODE: $0000000C VOL: 0
;PCODE: $0000000D VOL: 0
; 0000 0032 	PORTD.3 = 1;
;PCODE: $0000000E VOL: 0
;	ch -> Y+0
;PCODE: $0000000F VOL: 0
;PCODE: $00000010 VOL: 0
; 0000 0033   	UDR0 = ch;
;PCODE: $00000011 VOL: 0
;PCODE: $00000012 VOL: 0
; 0000 0034   	while (!(UCSR0A & (1 << 6)));
;PCODE: $00000013 VOL: 0
;PCODE: $00000014 VOL: 0
;PCODE: $00000015 VOL: 0
;PCODE: $00000016 VOL: 0
;PCODE: $00000017 VOL: 0
;PCODE: $00000018 VOL: 0
; 0000 0035   	UCSR0A |= (1 << 6);
;PCODE: $00000019 VOL: 0
;PCODE: $0000001A VOL: 0
;PCODE: $0000001B VOL: 0
; 0000 0036   	PORTD.3 = 0;
;PCODE: $0000001C VOL: 0
;PCODE: $0000001D VOL: 0
; 0000 0037 }
;PCODE: $0000001E VOL: 0
;PCODE: $0000001F VOL: 0
;PCODE: $00000020 VOL: 0
;
;void putchar(char c)
; 0000 003A {
;PCODE: $00000021 VOL: 0
;PCODE: $00000022 VOL: 0
; 0000 003B 	if (c == '\r') {putch('\r'); putch('\n');}
;PCODE: $00000023 VOL: 0
;	c -> Y+0
;PCODE: $00000024 VOL: 0
;PCODE: $00000025 VOL: 0
;PCODE: $00000026 VOL: 0
;PCODE: $00000027 VOL: 0
;PCODE: $00000028 VOL: 0
;PCODE: $00000029 VOL: 0
;PCODE: $0000002A VOL: 0
; 0000 003C 	putch(c);
;PCODE: $0000002B VOL: 0
;PCODE: $0000002C VOL: 0
;PCODE: $0000002D VOL: 0
; 0000 003D }
;PCODE: $0000002E VOL: 0
;PCODE: $0000002F VOL: 0
;PCODE: $00000030 VOL: 0
;
;char LastChar;
;u16 GetWORD()
; 0000 0041 {
;PCODE: $00000031 VOL: 0
;PCODE: $00000032 VOL: 0
; 0000 0042   	u16 word = 0;
; 0000 0043   	while(1)
;PCODE: $00000033 VOL: 0
;	word -> R16,R17
;PCODE: $00000034 VOL: 0
;PCODE: $00000035 VOL: 0
;PCODE: $00000036 VOL: 0
; 0000 0044 	{
; 0000 0045     	LastChar = getchar();
;PCODE: $00000037 VOL: 0
;PCODE: $00000038 VOL: 0
; 0000 0046     	if (isdigit(LastChar))
;PCODE: $00000039 VOL: 0
;PCODE: $0000003A VOL: 0
;PCODE: $0000003B VOL: 0
;PCODE: $0000003C VOL: 0
; 0000 0047 		{
; 0000 0048 			#asm("wdr")
;PCODE: $0000003D VOL: 0
	wdr
;PCODE: $0000003E VOL: 0
; 0000 0049       		word *= 10;
;PCODE: $0000003F VOL: 0
;PCODE: $00000040 VOL: 0
;PCODE: $00000041 VOL: 0
; 0000 004A       		word += LastChar - '0';
;PCODE: $00000042 VOL: 0
;PCODE: $00000043 VOL: 0
;PCODE: $00000044 VOL: 0
;PCODE: $00000045 VOL: 0
;PCODE: $00000046 VOL: 0
; 0000 004B     	}
; 0000 004C     	else break;
;PCODE: $00000047 VOL: 0
;PCODE: $00000048 VOL: 0
;PCODE: $00000049 VOL: 0
; 0000 004D   	};
;PCODE: $0000004A VOL: 0
;PCODE: $0000004B VOL: 0
;PCODE: $0000004C VOL: 0
; 0000 004E 
; 0000 004F   	return word;
;PCODE: $0000004D VOL: 0
;PCODE: $0000004E VOL: 0
;PCODE: $0000004F VOL: 0
; 0000 0050 }
;PCODE: $00000050 VOL: 0
;
;void init(void)
; 0000 0053 {
;PCODE: $00000051 VOL: 0
;PCODE: $00000052 VOL: 0
; 0000 0054 	// Input/Output Ports initialization
; 0000 0055 	// Port B initialization
; 0000 0056 	PORTB=0x00;
;PCODE: $00000053 VOL: 0
;PCODE: $00000054 VOL: 0
; 0000 0057 	DDRB=0x04;
;PCODE: $00000055 VOL: 0
;PCODE: $00000056 VOL: 0
; 0000 0058 
; 0000 0059 	// Port C initialization
; 0000 005A 	PORTC=0x00;
;PCODE: $00000057 VOL: 0
;PCODE: $00000058 VOL: 0
; 0000 005B 	DDRC=0x00;
;PCODE: $00000059 VOL: 0
;PCODE: $0000005A VOL: 0
; 0000 005C 
; 0000 005D 	// Port D initialization
; 0000 005E 	PORTD=0x20;
;PCODE: $0000005B VOL: 0
;PCODE: $0000005C VOL: 0
; 0000 005F 	DDRD=0x2A;
;PCODE: $0000005D VOL: 0
;PCODE: $0000005E VOL: 0
; 0000 0060 
; 0000 0061 	// Timer/Counter 0 initialization
; 0000 0062 	// Clock source: System Clock
; 0000 0063 	// Clock value: Timer 0 Stopped
; 0000 0064 	// Mode: Normal top=0xFF
; 0000 0065 	// OC0A output: Disconnected
; 0000 0066 	// OC0B output: Disconnected
; 0000 0067 	TCCR0A=0x00;
;PCODE: $0000005F VOL: 0
;PCODE: $00000060 VOL: 0
; 0000 0068 	TCCR0B=0x00;
;PCODE: $00000061 VOL: 0
;PCODE: $00000062 VOL: 0
; 0000 0069 	TCNT0=0x00;
;PCODE: $00000063 VOL: 0
;PCODE: $00000064 VOL: 0
; 0000 006A 	OCR0A=0x00;
;PCODE: $00000065 VOL: 0
;PCODE: $00000066 VOL: 0
; 0000 006B 	OCR0B=0x00;
;PCODE: $00000067 VOL: 0
;PCODE: $00000068 VOL: 0
; 0000 006C 
; 0000 006D 	// Timer/Counter 1 initialization
; 0000 006E 	// Clock source: System Clock
; 0000 006F 	// Clock value: 12000.000 kHz
; 0000 0070 	// Mode: Fast PWM top=OCR1A
; 0000 0071 	// OC1A output: Discon.
; 0000 0072 	// OC1B output: Discon.
; 0000 0073 	// Noise Canceler: Off
; 0000 0074 	// Input Capture on Falling Edge
; 0000 0075 	// Timer1 Overflow Interrupt: Off
; 0000 0076 	// Input Capture Interrupt: Off
; 0000 0077 	// Compare A Match Interrupt: Off
; 0000 0078 	// Compare B Match Interrupt: Off
; 0000 0079 	TCCR1A=0x33;    //Set OC1B on compare match, clear OC1B at TOP. WG11=1 WG10=1
;PCODE: $00000069 VOL: 0
;PCODE: $0000006A VOL: 0
; 0000 007A 	TCCR1B=0x19;    //No prescaling, WG13=1 WG12=1
;PCODE: $0000006B VOL: 0
;PCODE: $0000006C VOL: 0
; 0000 007B 	TCNT1H=0x00;
;PCODE: $0000006D VOL: 0
;PCODE: $0000006E VOL: 0
; 0000 007C 	TCNT1L=0x00;
;PCODE: $0000006F VOL: 0
;PCODE: $00000070 VOL: 0
; 0000 007D 	ICR1H=0x00;
;PCODE: $00000071 VOL: 0
;PCODE: $00000072 VOL: 0
; 0000 007E 	ICR1L=0x00;
;PCODE: $00000073 VOL: 0
;PCODE: $00000074 VOL: 0
; 0000 007F 	OCR1AH=(u8)(PWM_MAX >> 8);
;PCODE: $00000075 VOL: 0
;PCODE: $00000076 VOL: 0
; 0000 0080 	OCR1AL=(u8)PWM_MAX;
;PCODE: $00000077 VOL: 0
;PCODE: $00000078 VOL: 0
; 0000 0081 	OCR1BH=0;
;PCODE: $00000079 VOL: 0
;PCODE: $0000007A VOL: 0
; 0000 0082 	OCR1BL=0;
;PCODE: $0000007B VOL: 0
;PCODE: $0000007C VOL: 0
; 0000 0083 	//4.8kHz PWM 50%
; 0000 0084 
; 0000 0085 	// Timer/Counter 2 initialization
; 0000 0086 	// Clock source: System Clock
; 0000 0087 	// Clock value: Timer2 Stopped
; 0000 0088 	// Mode: Normal top=0xFF
; 0000 0089 	// OC2A output: Disconnected
; 0000 008A 	// OC2B output: Disconnected
; 0000 008B 	ASSR=0x00;
;PCODE: $0000007D VOL: 0
;PCODE: $0000007E VOL: 0
; 0000 008C 	TCCR2A=0x00;
;PCODE: $0000007F VOL: 0
;PCODE: $00000080 VOL: 0
; 0000 008D 	TCCR2B=0x00;
;PCODE: $00000081 VOL: 0
;PCODE: $00000082 VOL: 0
; 0000 008E 	TCNT2=0x00;
;PCODE: $00000083 VOL: 0
;PCODE: $00000084 VOL: 0
; 0000 008F 	OCR2A=0x00;
;PCODE: $00000085 VOL: 0
;PCODE: $00000086 VOL: 0
; 0000 0090 	OCR2B=0x00;
;PCODE: $00000087 VOL: 0
;PCODE: $00000088 VOL: 0
; 0000 0091 
; 0000 0092 	// External Interrupt(s) initialization
; 0000 0093 	// INT0: Off
; 0000 0094 	// INT1: Off
; 0000 0095 	// Interrupt on any change on pins PCINT0-7: Off
; 0000 0096 	// Interrupt on any change on pins PCINT8-14: Off
; 0000 0097 	// Interrupt on any change on pins PCINT16-23: Off
; 0000 0098 	EICRA=0x00;
;PCODE: $00000089 VOL: 0
;PCODE: $0000008A VOL: 0
; 0000 0099 	EIMSK=0x00;
;PCODE: $0000008B VOL: 0
;PCODE: $0000008C VOL: 0
; 0000 009A 	PCICR=0x00;
;PCODE: $0000008D VOL: 0
;PCODE: $0000008E VOL: 0
; 0000 009B 
; 0000 009C 	// Timer/Counter 0 Interrupt(s) initialization
; 0000 009D 	TIMSK0=0x00;
;PCODE: $0000008F VOL: 0
;PCODE: $00000090 VOL: 0
; 0000 009E 
; 0000 009F 	// Timer/Counter 1 Interrupt(s) initialization
; 0000 00A0 	TIMSK1=0x00;
;PCODE: $00000091 VOL: 0
;PCODE: $00000092 VOL: 0
; 0000 00A1 
; 0000 00A2 	// Timer/Counter 2 Interrupt(s) initialization
; 0000 00A3 	TIMSK2=0x00;
;PCODE: $00000093 VOL: 0
;PCODE: $00000094 VOL: 0
; 0000 00A4 
; 0000 00A5 	// USART initialization
; 0000 00A6 	// Communication Parameters: 8 Data, 1 Stop, No Parity
; 0000 00A7 	// USART Receiver: On
; 0000 00A8 	// USART Transmitter: On
; 0000 00A9 	// USART0 Mode: Asynchronous
; 0000 00AA 	// USART Baud Rate: 9600
; 0000 00AB 	UCSR0A=0x00;
;PCODE: $00000095 VOL: 0
;PCODE: $00000096 VOL: 0
; 0000 00AC 	UCSR0B=0x18;
;PCODE: $00000097 VOL: 0
;PCODE: $00000098 VOL: 0
; 0000 00AD 	UCSR0C=0x06;
;PCODE: $00000099 VOL: 0
;PCODE: $0000009A VOL: 0
; 0000 00AE 	UBRR0H=0x00;
;PCODE: $0000009B VOL: 0
;PCODE: $0000009C VOL: 0
; 0000 00AF 	UBRR0L=0x4D;
;PCODE: $0000009D VOL: 0
;PCODE: $0000009E VOL: 0
; 0000 00B0 
; 0000 00B1 	// Analog Comparator initialization
; 0000 00B2 	// Analog Comparator: Off
; 0000 00B3 	// Analog Comparator Input Capture by Timer/Counter 1: Off
; 0000 00B4 	ACSR=0x80;
;PCODE: $0000009F VOL: 0
;PCODE: $000000A0 VOL: 0
; 0000 00B5 	ADCSRB=0x00;
;PCODE: $000000A1 VOL: 0
;PCODE: $000000A2 VOL: 0
; 0000 00B6 	DIDR1=0x00;
;PCODE: $000000A3 VOL: 0
;PCODE: $000000A4 VOL: 0
; 0000 00B7 
; 0000 00B8 	// ADC initialization
; 0000 00B9 	// Digital buffer disabled on ADC1
; 0000 00BA 	DIDR0=0x02;
;PCODE: $000000A5 VOL: 0
;PCODE: $000000A6 VOL: 0
; 0000 00BB 	// ADC Enabled, Auto Trigger disabled, ADC Interrupt enabled, Prescaler 128 - 97kHz
; 0000 00BC 	ADCSRA=0x8F;
;PCODE: $000000A7 VOL: 0
;PCODE: $000000A8 VOL: 0
; 0000 00BD 	// Internal 1.1V Voltage Reference with external capacitor at AREF pin
; 0000 00BE 	// ADC1 selected at MUX
; 0000 00BF 	ADMUX= 0xC1;
;PCODE: $000000A9 VOL: 0
;PCODE: $000000AA VOL: 0
; 0000 00C0 
; 0000 00C1 	// SPI initialization
; 0000 00C2 	// SPI disabled
; 0000 00C3 	SPCR=0x00;
;PCODE: $000000AB VOL: 0
;PCODE: $000000AC VOL: 0
; 0000 00C4 
; 0000 00C5 	// TWI initialization
; 0000 00C6 	// TWI disabled
; 0000 00C7 	TWCR=0x00;
;PCODE: $000000AD VOL: 0
;PCODE: $000000AE VOL: 0
; 0000 00C8 
; 0000 00C9 	// Watchdog Timer initialization
; 0000 00CA 	// Watchdog Timer Prescaler: OSC/2k
; 0000 00CB 	// Watchdog Timer interrupt: Off
; 0000 00CC 	#pragma optsize-
; 0000 00CD 	#asm("wdr")
;PCODE: $000000AF VOL: 0
	wdr
;PCODE: $000000B0 VOL: 0
; 0000 00CE 	WDTCSR=0x38;
;PCODE: $000000B1 VOL: 0
;PCODE: $000000B2 VOL: 0
; 0000 00CF 	WDTCSR=0x28;
;PCODE: $000000B3 VOL: 0
;PCODE: $000000B4 VOL: 0
; 0000 00D0 	#ifdef _OPTIMIZE_SIZE_
; 0000 00D1 	#pragma optsize+
; 0000 00D2 	#endif
; 0000 00D3 }
;PCODE: $000000B5 VOL: 0
;PCODE: $000000B6 VOL: 0
;
;/***************************************************************************************/
;volatile u32 adc_averaging_index = 0;
;volatile u32 adc_sum = 0;
;volatile u16 adc_averaged = 0;
;volatile u8  adc_completed = 0;
;volatile u8  calibration = 0;
;//7211 Hz
;#define AVERAGING 721 //0.1sec
;
;/***************************************************************************************/
;void SetOCR1B(u16 OCR1B)
; 0000 00E0 {
;PCODE: $000000B7 VOL: 0
;PCODE: $000000B8 VOL: 0
; 0000 00E1 	OCR1BH=(u8)(OCR1B >> 8);
;PCODE: $000000B9 VOL: 0
;	OCR1B -> Y+0
;PCODE: $000000BA VOL: 0
;PCODE: $000000BB VOL: 0
; 0000 00E2 	OCR1BL=(u8)(OCR1B);
;PCODE: $000000BC VOL: 0
;PCODE: $000000BD VOL: 0
; 0000 00E3 }
;PCODE: $000000BE VOL: 0
;PCODE: $000000BF VOL: 0
;PCODE: $000000C0 VOL: 0
;/***************************************************************************************/
;void SetHV(u16 V)
; 0000 00E6 {
;PCODE: $000000C1 VOL: 0
;PCODE: $000000C2 VOL: 0
; 0000 00E7 	u16 OCR1B = (u16)((float)(V - HV_PHYS_MIN) * VOLTAGE_TO_PWM);
; 0000 00E8     SetOCR1B(OCR1B);
;PCODE: $000000C3 VOL: 0
;PCODE: $000000C4 VOL: 0
;	V -> Y+2
;	OCR1B -> R16,R17
;PCODE: $000000C5 VOL: 0
;PCODE: $000000C6 VOL: 0
;PCODE: $000000C7 VOL: 0
;PCODE: $000000C8 VOL: 0
;PCODE: $000000C9 VOL: 0
;PCODE: $000000CA VOL: 0
;PCODE: $000000CB VOL: 0
;PCODE: $000000CC VOL: 0
;PCODE: $000000CD VOL: 0
;PCODE: $000000CE VOL: 0
;PCODE: $000000CF VOL: 0
;PCODE: $000000D0 VOL: 0
;PCODE: $000000D1 VOL: 0
;PCODE: $000000D2 VOL: 0
;PCODE: $000000D3 VOL: 0
; 0000 00E9 	#asm("cli")
;PCODE: $000000D4 VOL: 0
	cli
;PCODE: $000000D5 VOL: 0
; 0000 00EA 	adc_sum = 0;
;PCODE: $000000D6 VOL: 0
;PCODE: $000000D7 VOL: 1
; 0000 00EB 	adc_averaging_index = 0;
;PCODE: $000000D8 VOL: 0
;PCODE: $000000D9 VOL: 1
; 0000 00EC 	adc_averaged = 0;
;PCODE: $000000DA VOL: 0
;PCODE: $000000DB VOL: 1
; 0000 00ED 	adc_completed = 0;
;PCODE: $000000DC VOL: 0
;PCODE: $000000DD VOL: 1
; 0000 00EE 	#asm("sei")
;PCODE: $000000DE VOL: 0
	sei
;PCODE: $000000DF VOL: 0
; 0000 00EF }
;PCODE: $000000E0 VOL: 0
;PCODE: $000000E1 VOL: 0
;PCODE: $000000E2 VOL: 0
;PCODE: $000000E3 VOL: 0
;/***************************************************************************************/
;u16 PerformADC()
; 0000 00F2 {
;PCODE: $000000E4 VOL: 0
;PCODE: $000000E5 VOL: 0
; 0000 00F3 	#asm("cli")
;PCODE: $000000E6 VOL: 0
	cli
;PCODE: $000000E7 VOL: 0
; 0000 00F4 	adc_sum = 0;
;PCODE: $000000E8 VOL: 0
;PCODE: $000000E9 VOL: 1
; 0000 00F5 	adc_averaging_index = 0;
;PCODE: $000000EA VOL: 0
;PCODE: $000000EB VOL: 1
; 0000 00F6 	adc_averaged = 0;
;PCODE: $000000EC VOL: 0
;PCODE: $000000ED VOL: 1
; 0000 00F7 	adc_completed = 0;
;PCODE: $000000EE VOL: 0
;PCODE: $000000EF VOL: 1
; 0000 00F8 	#asm("sei")
;PCODE: $000000F0 VOL: 0
	sei
;PCODE: $000000F1 VOL: 0
; 0000 00F9 	while(!adc_completed);
;PCODE: $000000F2 VOL: 0
;PCODE: $000000F3 VOL: 1
;PCODE: $000000F4 VOL: 0
;PCODE: $000000F5 VOL: 0
;PCODE: $000000F6 VOL: 0
;PCODE: $000000F7 VOL: 0
; 0000 00FA 	return adc_averaged;
;PCODE: $000000F8 VOL: 1
;PCODE: $000000F9 VOL: 0
; 0000 00FB }
;PCODE: $000000FA VOL: 0
;/***************************************************************************************/
;interrupt [ADC_INT] void adc_isr(void)
; 0000 00FE {
;PCODE: $000000FB VOL: 0
;PCODE: $000000FC VOL: 0
; 0000 00FF 	u16 HV_measured;
; 0000 0100 	u16 OCR1B;
; 0000 0101 	u16 adc_data = ADCW;
; 0000 0102 	adc_sum += adc_data;
;PCODE: $000000FD VOL: 0
;	HV_measured -> R16,R17
;	OCR1B -> R18,R19
;	adc_data -> R20,R21
;PCODE: $000000FE VOL: 0
;PCODE: $000000FF VOL: 0
;PCODE: $00000100 VOL: 0
;PCODE: $00000101 VOL: 1
;PCODE: $00000102 VOL: 0
;PCODE: $00000103 VOL: 0
;PCODE: $00000104 VOL: 1
; 0000 0103 
; 0000 0104 	if(++adc_averaging_index >= AVERAGING)
;PCODE: $00000105 VOL: 1
;PCODE: $00000106 VOL: 0
;PCODE: $00000107 VOL: 0
;PCODE: $00000108 VOL: 0
;PCODE: $00000109 VOL: 0
;PCODE: $0000010A VOL: 0
; 0000 0105 	{
; 0000 0106 		adc_averaged = adc_sum / AVERAGING;
;PCODE: $0000010B VOL: 1
;PCODE: $0000010C VOL: 0
;PCODE: $0000010D VOL: 0
;PCODE: $0000010E VOL: 1
; 0000 0107 		adc_sum = 0;
;PCODE: $0000010F VOL: 0
;PCODE: $00000110 VOL: 1
; 0000 0108 		adc_averaging_index = 0;
;PCODE: $00000111 VOL: 0
;PCODE: $00000112 VOL: 1
; 0000 0109 		adc_completed = 1;
;PCODE: $00000113 VOL: 0
;PCODE: $00000114 VOL: 1
; 0000 010A 
; 0000 010B 		if(!calibration)
;PCODE: $00000115 VOL: 1
;PCODE: $00000116 VOL: 0
;PCODE: $00000117 VOL: 0
; 0000 010C 		{
; 0000 010D 			HV_measured = (u16)((float)adc_averaged * ADC_TO_VOLTAGE);
;PCODE: $00000118 VOL: 1
;PCODE: $00000119 VOL: 0
;PCODE: $0000011A VOL: 0
;PCODE: $0000011B VOL: 0
;PCODE: $0000011C VOL: 0
;PCODE: $0000011D VOL: 0
;PCODE: $0000011E VOL: 0
;PCODE: $0000011F VOL: 0
;PCODE: $00000120 VOL: 0
; 0000 010E        		OCR1B = (((u16)OCR1BH) << 8) + OCR1BL;
;PCODE: $00000121 VOL: 0
;PCODE: $00000122 VOL: 0
;PCODE: $00000123 VOL: 0
;PCODE: $00000124 VOL: 0
;PCODE: $00000125 VOL: 0
;PCODE: $00000126 VOL: 0
;PCODE: $00000127 VOL: 0
; 0000 010F 
; 0000 0110 			if(HV > HV_measured && OCR1B < PWM_MAX) OCR1B++;
;PCODE: $00000128 VOL: 0
;PCODE: $00000129 VOL: 0
;PCODE: $0000012A VOL: 0
;PCODE: $0000012B VOL: 0
;PCODE: $0000012C VOL: 0
;PCODE: $0000012D VOL: 0
;PCODE: $0000012E VOL: 0
;PCODE: $0000012F VOL: 0
;PCODE: $00000130 VOL: 0
;PCODE: $00000131 VOL: 0
;PCODE: $00000132 VOL: 0
;PCODE: $00000133 VOL: 0
;PCODE: $00000134 VOL: 0
; 0000 0111 			else if(HV < HV_measured && OCR1B > 0) OCR1B--;
;PCODE: $00000135 VOL: 0
;PCODE: $00000136 VOL: 0
;PCODE: $00000137 VOL: 0
;PCODE: $00000138 VOL: 0
;PCODE: $00000139 VOL: 0
;PCODE: $0000013A VOL: 0
;PCODE: $0000013B VOL: 0
;PCODE: $0000013C VOL: 0
;PCODE: $0000013D VOL: 0
;PCODE: $0000013E VOL: 0
;PCODE: $0000013F VOL: 0
;PCODE: $00000140 VOL: 0
;PCODE: $00000141 VOL: 0
;PCODE: $00000142 VOL: 0
; 0000 0112 			SetOCR1B(OCR1B);
;PCODE: $00000143 VOL: 0
;PCODE: $00000144 VOL: 0
;PCODE: $00000145 VOL: 0
;PCODE: $00000146 VOL: 0
; 0000 0113 			//printf("\rADC = %d  V = %d  OCR1B = %d", adc_averaged, HV_measured, OCR1B);
; 0000 0114 		}
; 0000 0115 	}
;PCODE: $00000147 VOL: 0
; 0000 0116   	ADCSRA |= 0x40;
;PCODE: $00000148 VOL: 0
;PCODE: $00000149 VOL: 0
;PCODE: $0000014A VOL: 0
;PCODE: $0000014B VOL: 0
; 0000 0117 }
;PCODE: $0000014C VOL: 0
;PCODE: $0000014D VOL: 0
;PCODE: $0000014E VOL: 0
;PCODE: $0000014F VOL: 0
;PCODE: $00000150 VOL: 0
;/***************************************************************************************/
;void main(void)
; 0000 011A {
;PCODE: $00000151 VOL: 0
; 0000 011B 	char cmd;
; 0000 011C 	u16 temp;
; 0000 011D 	u16 hv_min, hv_max, hv_med, adc;
; 0000 011E 
; 0000 011F    	init();
;PCODE: $00000152 VOL: 0
;	cmd -> R17
;	temp -> R18,R19
;	hv_min -> R20,R21
;	hv_max -> Y+4
;	hv_med -> Y+2
;	adc -> Y+0
;PCODE: $00000153 VOL: 0
; 0000 0120     delay_ms(2000);
;PCODE: $00000154 VOL: 0
;PCODE: $00000155 VOL: 0
; 0000 0121 
; 0000 0122 	printf("\rHV_Converter: %d", MyAddress);
;PCODE: $00000156 VOL: 0
;PCODE: $00000157 VOL: 0
;PCODE: $00000158 VOL: 0
;PCODE: $00000159 VOL: 0
;PCODE: $0000015A VOL: 0
;PCODE: $0000015B VOL: 0
;PCODE: $0000015C VOL: 0
;PCODE: $0000015D VOL: 0
;PCODE: $0000015E VOL: 0
;PCODE: $0000015F VOL: 0
;PCODE: $00000160 VOL: 0
; 0000 0123 	printf("\rV_TO_PWM * 10^3 = %d", (u16)(VOLTAGE_TO_PWM * (float)1000));
;PCODE: $00000161 VOL: 0
;PCODE: $00000162 VOL: 0
;PCODE: $00000163 VOL: 0
;PCODE: $00000164 VOL: 0
;PCODE: $00000165 VOL: 0
;PCODE: $00000166 VOL: 0
;PCODE: $00000167 VOL: 0
;PCODE: $00000168 VOL: 0
;PCODE: $00000169 VOL: 0
;PCODE: $0000016A VOL: 0
;PCODE: $0000016B VOL: 0
;PCODE: $0000016C VOL: 0
;PCODE: $0000016D VOL: 0
;PCODE: $0000016E VOL: 0
;PCODE: $0000016F VOL: 0
; 0000 0124 	printf("\rADC_TO_V * 10^3 = %d\r", (u16)(ADC_TO_VOLTAGE * (float)1000));
;PCODE: $00000170 VOL: 0
;PCODE: $00000171 VOL: 0
;PCODE: $00000172 VOL: 0
;PCODE: $00000173 VOL: 0
;PCODE: $00000174 VOL: 0
;PCODE: $00000175 VOL: 0
;PCODE: $00000176 VOL: 0
;PCODE: $00000177 VOL: 0
;PCODE: $00000178 VOL: 0
;PCODE: $00000179 VOL: 0
;PCODE: $0000017A VOL: 0
;PCODE: $0000017B VOL: 0
;PCODE: $0000017C VOL: 0
;PCODE: $0000017D VOL: 0
;PCODE: $0000017E VOL: 0
; 0000 0125 
; 0000 0126 	SetHV(HV);
;PCODE: $0000017F VOL: 0
;PCODE: $00000180 VOL: 0
;PCODE: $00000181 VOL: 0
;PCODE: $00000182 VOL: 0
; 0000 0127 	PWM_EN = 1;
;PCODE: $00000183 VOL: 0
;PCODE: $00000184 VOL: 0
; 0000 0128 
; 0000 0129     #asm("sei")
;PCODE: $00000185 VOL: 0
	sei
;PCODE: $00000186 VOL: 0
; 0000 012A     ADCSRA |= 0x40;
;PCODE: $00000187 VOL: 0
;PCODE: $00000188 VOL: 0
;PCODE: $00000189 VOL: 0
; 0000 012B 
; 0000 012C 	while (1)
;PCODE: $0000018A VOL: 0
; 0000 012D 	{
; 0000 012E 		#asm("wdr");
;PCODE: $0000018B VOL: 0
	wdr
;PCODE: $0000018C VOL: 0
; 0000 012F 
; 0000 0130 		if(UCSR0A & 0x80)
;PCODE: $0000018D VOL: 0
;PCODE: $0000018E VOL: 0
;PCODE: $0000018F VOL: 0
; 0000 0131 		{
; 0000 0132 			cmd = toupper(getchar());
;PCODE: $00000190 VOL: 0
;PCODE: $00000191 VOL: 0
;PCODE: $00000192 VOL: 0
;PCODE: $00000193 VOL: 0
; 0000 0133 			if(cmd != 'C' && cmd != 'A' && cmd != 'V' && cmd != 'H' && cmd != 'S' && cmd != 'G' && cmd != 'P')
;PCODE: $00000194 VOL: 0
;PCODE: $00000195 VOL: 0
;PCODE: $00000196 VOL: 0
;PCODE: $00000197 VOL: 0
;PCODE: $00000198 VOL: 0
;PCODE: $00000199 VOL: 0
;PCODE: $0000019A VOL: 0
;PCODE: $0000019B VOL: 0
;PCODE: $0000019C VOL: 0
;PCODE: $0000019D VOL: 0
;PCODE: $0000019E VOL: 0
;PCODE: $0000019F VOL: 0
;PCODE: $000001A0 VOL: 0
;PCODE: $000001A1 VOL: 0
;PCODE: $000001A2 VOL: 0
;PCODE: $000001A3 VOL: 0
;PCODE: $000001A4 VOL: 0
;PCODE: $000001A5 VOL: 0
;PCODE: $000001A6 VOL: 0
;PCODE: $000001A7 VOL: 0
;PCODE: $000001A8 VOL: 0
;PCODE: $000001A9 VOL: 0
;PCODE: $000001AA VOL: 0
;PCODE: $000001AB VOL: 0
;PCODE: $000001AC VOL: 0
; 0000 0134 			{
; 0000 0135 				printf("\rERR: Incorrect command\r");
;PCODE: $000001AD VOL: 0
;PCODE: $000001AE VOL: 0
;PCODE: $000001AF VOL: 0
;PCODE: $000001B0 VOL: 0
;PCODE: $000001B1 VOL: 0
;PCODE: $000001B2 VOL: 0
;PCODE: $000001B3 VOL: 0
; 0000 0136 				continue;
;PCODE: $000001B4 VOL: 0
; 0000 0137 			}
; 0000 0138 
; 0000 0139 			temp = GetWORD();
;PCODE: $000001B5 VOL: 0
;PCODE: $000001B6 VOL: 0
;PCODE: $000001B7 VOL: 0
; 0000 013A 			if(temp != MyAddress && temp != 253)
;PCODE: $000001B8 VOL: 0
;PCODE: $000001B9 VOL: 0
;PCODE: $000001BA VOL: 0
;PCODE: $000001BB VOL: 0
;PCODE: $000001BC VOL: 0
;PCODE: $000001BD VOL: 0
;PCODE: $000001BE VOL: 0
;PCODE: $000001BF VOL: 0
;PCODE: $000001C0 VOL: 0
;PCODE: $000001C1 VOL: 0
;PCODE: $000001C2 VOL: 0
;PCODE: $000001C3 VOL: 0
;PCODE: $000001C4 VOL: 0
; 0000 013B 			{
; 0000 013C 				printf("\rERR: Incorrect address\r");
;PCODE: $000001C5 VOL: 0
;PCODE: $000001C6 VOL: 0
;PCODE: $000001C7 VOL: 0
;PCODE: $000001C8 VOL: 0
;PCODE: $000001C9 VOL: 0
;PCODE: $000001CA VOL: 0
;PCODE: $000001CB VOL: 0
; 0000 013D 				continue;
;PCODE: $000001CC VOL: 0
; 0000 013E 			}
; 0000 013F 
; 0000 0140 			switch(cmd)
;PCODE: $000001CD VOL: 0
;PCODE: $000001CE VOL: 0
;PCODE: $000001CF VOL: 0
; 0000 0141 			{
; 0000 0142 				case 'C': //Calibrate
;PCODE: $000001D0 VOL: 0
;PCODE: $000001D1 VOL: 0
; 0000 0143 					calibration = 1;
;PCODE: $000001D2 VOL: 0
;PCODE: $000001D3 VOL: 1
; 0000 0144 					SetOCR1B(PWM_MIN);
;PCODE: $000001D4 VOL: 0
;PCODE: $000001D5 VOL: 0
; 0000 0145 					printf("Measure MIN voltage ");
;PCODE: $000001D6 VOL: 0
;PCODE: $000001D7 VOL: 0
;PCODE: $000001D8 VOL: 0
;PCODE: $000001D9 VOL: 0
;PCODE: $000001DA VOL: 0
;PCODE: $000001DB VOL: 0
;PCODE: $000001DC VOL: 0
; 0000 0146 					#asm("wdr")
;PCODE: $000001DD VOL: 0
	wdr
;PCODE: $000001DE VOL: 0
; 0000 0147 					hv_min = GetWORD();
;PCODE: $000001DF VOL: 0
;PCODE: $000001E0 VOL: 0
; 0000 0148 					if(!hv_min || (hv_min > 5000))
;PCODE: $000001E1 VOL: 0
;PCODE: $000001E2 VOL: 0
;PCODE: $000001E3 VOL: 0
;PCODE: $000001E4 VOL: 0
;PCODE: $000001E5 VOL: 0
;PCODE: $000001E6 VOL: 0
;PCODE: $000001E7 VOL: 0
; 0000 0149 					{
; 0000 014A 					 	printf("\rERR: Incorrect voltage\r");
;PCODE: $000001E8 VOL: 0
;PCODE: $000001E9 VOL: 0
;PCODE: $000001EA VOL: 0
;PCODE: $000001EB VOL: 0
;PCODE: $000001EC VOL: 0
;PCODE: $000001ED VOL: 0
;PCODE: $000001EE VOL: 0
; 0000 014B 						calibration = 0;
;PCODE: $000001EF VOL: 0
;PCODE: $000001F0 VOL: 1
; 0000 014C 						continue;
;PCODE: $000001F1 VOL: 0
; 0000 014D 					}
; 0000 014E 
; 0000 014F 					SetOCR1B(PWM_MAX);
;PCODE: $000001F2 VOL: 0
;PCODE: $000001F3 VOL: 0
;PCODE: $000001F4 VOL: 0
; 0000 0150 					printf("Measure MAX voltage ");
;PCODE: $000001F5 VOL: 0
;PCODE: $000001F6 VOL: 0
;PCODE: $000001F7 VOL: 0
;PCODE: $000001F8 VOL: 0
;PCODE: $000001F9 VOL: 0
;PCODE: $000001FA VOL: 0
;PCODE: $000001FB VOL: 0
; 0000 0151 					#asm("wdr")
;PCODE: $000001FC VOL: 0
	wdr
;PCODE: $000001FD VOL: 0
; 0000 0152 					hv_max = GetWORD();
;PCODE: $000001FE VOL: 0
;PCODE: $000001FF VOL: 0
; 0000 0153 					if(!hv_max || (hv_max >= 5000))
;PCODE: $00000200 VOL: 0
;PCODE: $00000201 VOL: 0
;PCODE: $00000202 VOL: 0
;PCODE: $00000203 VOL: 0
;PCODE: $00000204 VOL: 0
;PCODE: $00000205 VOL: 0
;PCODE: $00000206 VOL: 0
;PCODE: $00000207 VOL: 0
; 0000 0154 					{
; 0000 0155 					 	printf("\rERR: Incorrect voltage\r");
;PCODE: $00000208 VOL: 0
;PCODE: $00000209 VOL: 0
;PCODE: $0000020A VOL: 0
;PCODE: $0000020B VOL: 0
;PCODE: $0000020C VOL: 0
;PCODE: $0000020D VOL: 0
;PCODE: $0000020E VOL: 0
; 0000 0156 						calibration = 0;
;PCODE: $0000020F VOL: 0
;PCODE: $00000210 VOL: 1
; 0000 0157 						continue;
;PCODE: $00000211 VOL: 0
; 0000 0158 					}
; 0000 0159 
; 0000 015A 					SetOCR1B((PWM_MAX + PWM_MIN)/2);
;PCODE: $00000212 VOL: 0
;PCODE: $00000213 VOL: 0
;PCODE: $00000214 VOL: 0
; 0000 015B 					printf("Measure MEDIUM voltage ");
;PCODE: $00000215 VOL: 0
;PCODE: $00000216 VOL: 0
;PCODE: $00000217 VOL: 0
;PCODE: $00000218 VOL: 0
;PCODE: $00000219 VOL: 0
;PCODE: $0000021A VOL: 0
;PCODE: $0000021B VOL: 0
; 0000 015C 					#asm("wdr")
;PCODE: $0000021C VOL: 0
	wdr
;PCODE: $0000021D VOL: 0
; 0000 015D 					hv_med = GetWORD();
;PCODE: $0000021E VOL: 0
;PCODE: $0000021F VOL: 0
; 0000 015E 					if(!hv_med || (hv_med < hv_min) || (hv_med > hv_max))
;PCODE: $00000220 VOL: 0
;PCODE: $00000221 VOL: 0
;PCODE: $00000222 VOL: 0
;PCODE: $00000223 VOL: 0
;PCODE: $00000224 VOL: 0
;PCODE: $00000225 VOL: 0
;PCODE: $00000226 VOL: 0
;PCODE: $00000227 VOL: 0
;PCODE: $00000228 VOL: 0
;PCODE: $00000229 VOL: 0
;PCODE: $0000022A VOL: 0
;PCODE: $0000022B VOL: 0
; 0000 015F 					{
; 0000 0160 					 	printf("\rERR: Incorrect voltage\r");
;PCODE: $0000022C VOL: 0
;PCODE: $0000022D VOL: 0
;PCODE: $0000022E VOL: 0
;PCODE: $0000022F VOL: 0
;PCODE: $00000230 VOL: 0
;PCODE: $00000231 VOL: 0
;PCODE: $00000232 VOL: 0
; 0000 0161 						calibration = 0;
;PCODE: $00000233 VOL: 0
;PCODE: $00000234 VOL: 1
; 0000 0162 						continue;
;PCODE: $00000235 VOL: 0
; 0000 0163 					}
; 0000 0164 					#asm("wdr")
;PCODE: $00000236 VOL: 0
;PCODE: $00000237 VOL: 0
	wdr
;PCODE: $00000238 VOL: 0
; 0000 0165                     adc = PerformADC();
;PCODE: $00000239 VOL: 0
;PCODE: $0000023A VOL: 0
; 0000 0166 					printf("ADC = %d", adc);
;PCODE: $0000023B VOL: 0
;PCODE: $0000023C VOL: 0
;PCODE: $0000023D VOL: 0
;PCODE: $0000023E VOL: 0
;PCODE: $0000023F VOL: 0
;PCODE: $00000240 VOL: 0
;PCODE: $00000241 VOL: 0
;PCODE: $00000242 VOL: 0
;PCODE: $00000243 VOL: 0
;PCODE: $00000244 VOL: 0
; 0000 0167 
; 0000 0168 					HV_PHYS_MIN = hv_min;
;PCODE: $00000245 VOL: 0
;PCODE: $00000246 VOL: 0
;PCODE: $00000247 VOL: 0
; 0000 0169 					HV_PHYS_MAX = hv_max;
;PCODE: $00000248 VOL: 0
;PCODE: $00000249 VOL: 0
;PCODE: $0000024A VOL: 0
; 0000 016A                     VOLTAGE_TO_PWM = (float)(PWM_MAX - PWM_MIN) / (float)(hv_max - hv_min);
;PCODE: $0000024B VOL: 0
;PCODE: $0000024C VOL: 0
;PCODE: $0000024D VOL: 0
;PCODE: $0000024E VOL: 0
;PCODE: $0000024F VOL: 0
;PCODE: $00000250 VOL: 0
;PCODE: $00000251 VOL: 0
; 0000 016B 					printf("\rV_TO_PWM * 10^3 = %d", (u16)(VOLTAGE_TO_PWM * (float)1000));
;PCODE: $00000252 VOL: 0
;PCODE: $00000253 VOL: 0
;PCODE: $00000254 VOL: 0
;PCODE: $00000255 VOL: 0
;PCODE: $00000256 VOL: 0
;PCODE: $00000257 VOL: 0
;PCODE: $00000258 VOL: 0
;PCODE: $00000259 VOL: 0
;PCODE: $0000025A VOL: 0
;PCODE: $0000025B VOL: 0
;PCODE: $0000025C VOL: 0
;PCODE: $0000025D VOL: 0
;PCODE: $0000025E VOL: 0
;PCODE: $0000025F VOL: 0
;PCODE: $00000260 VOL: 0
; 0000 016C 
; 0000 016D 					ADC_TO_VOLTAGE = (float)hv_med / (float)adc;
;PCODE: $00000261 VOL: 0
;PCODE: $00000262 VOL: 0
;PCODE: $00000263 VOL: 0
;PCODE: $00000264 VOL: 0
;PCODE: $00000265 VOL: 0
;PCODE: $00000266 VOL: 0
;PCODE: $00000267 VOL: 0
;PCODE: $00000268 VOL: 0
; 0000 016E                     printf("\rADC_TO_V * 10^3 = %d", (u16)(ADC_TO_VOLTAGE * (float)1000));
;PCODE: $00000269 VOL: 0
;PCODE: $0000026A VOL: 0
;PCODE: $0000026B VOL: 0
;PCODE: $0000026C VOL: 0
;PCODE: $0000026D VOL: 0
;PCODE: $0000026E VOL: 0
;PCODE: $0000026F VOL: 0
;PCODE: $00000270 VOL: 0
;PCODE: $00000271 VOL: 0
;PCODE: $00000272 VOL: 0
;PCODE: $00000273 VOL: 0
;PCODE: $00000274 VOL: 0
;PCODE: $00000275 VOL: 0
;PCODE: $00000276 VOL: 0
;PCODE: $00000277 VOL: 0
; 0000 016F 
; 0000 0170 					calibration = 0;
;PCODE: $00000278 VOL: 0
;PCODE: $00000279 VOL: 1
; 0000 0171 					SetHV(HV);
;PCODE: $0000027A VOL: 0
;PCODE: $0000027B VOL: 0
;PCODE: $0000027C VOL: 0
;PCODE: $0000027D VOL: 0
; 0000 0172 					printf("\r");
;PCODE: $0000027E VOL: 0
;PCODE: $0000027F VOL: 0
;PCODE: $00000280 VOL: 0
;PCODE: $00000281 VOL: 0
;PCODE: $00000282 VOL: 0
;PCODE: $00000283 VOL: 0
;PCODE: $00000284 VOL: 0
; 0000 0173 					break;
;PCODE: $00000285 VOL: 0
; 0000 0174 
; 0000 0175 				case 'A':
;PCODE: $00000286 VOL: 0
;PCODE: $00000287 VOL: 0
;PCODE: $00000288 VOL: 0
; 0000 0176 					if(LastChar == ' ')
;PCODE: $00000289 VOL: 0
;PCODE: $0000028A VOL: 0
;PCODE: $0000028B VOL: 0
; 0000 0177 					{
; 0000 0178 						temp = GetWORD();
;PCODE: $0000028C VOL: 0
;PCODE: $0000028D VOL: 0
; 0000 0179 						if(temp && temp < 253) MyAddress = temp;
;PCODE: $0000028E VOL: 0
;PCODE: $0000028F VOL: 0
;PCODE: $00000290 VOL: 0
;PCODE: $00000291 VOL: 0
;PCODE: $00000292 VOL: 0
;PCODE: $00000293 VOL: 0
;PCODE: $00000294 VOL: 0
;PCODE: $00000295 VOL: 0
;PCODE: $00000296 VOL: 0
;PCODE: $00000297 VOL: 0
;PCODE: $00000298 VOL: 0
;PCODE: $00000299 VOL: 0
; 0000 017A 					}
;PCODE: $0000029A VOL: 0
; 0000 017B 
; 0000 017C                     printf("ADDR = %d\r", MyAddress);
;PCODE: $0000029B VOL: 0
;PCODE: $0000029C VOL: 0
;PCODE: $0000029D VOL: 0
;PCODE: $0000029E VOL: 0
;PCODE: $0000029F VOL: 0
;PCODE: $000002A0 VOL: 0
;PCODE: $000002A1 VOL: 0
;PCODE: $000002A2 VOL: 0
;PCODE: $000002A3 VOL: 0
;PCODE: $000002A4 VOL: 0
;PCODE: $000002A5 VOL: 0
;PCODE: $000002A6 VOL: 0
; 0000 017D 					break;
;PCODE: $000002A7 VOL: 0
; 0000 017E 
; 0000 017F 				case 'V':
;PCODE: $000002A8 VOL: 0
;PCODE: $000002A9 VOL: 0
;PCODE: $000002AA VOL: 0
; 0000 0180            			temp = GetWORD();
;PCODE: $000002AB VOL: 0
;PCODE: $000002AC VOL: 0
; 0000 0181                     if(temp > HV_MAX) temp = HV_MAX;
;PCODE: $000002AD VOL: 0
;PCODE: $000002AE VOL: 0
;PCODE: $000002AF VOL: 0
;PCODE: $000002B0 VOL: 0
;PCODE: $000002B1 VOL: 0
; 0000 0182 					if(temp < HV_MIN) temp = HV_MIN;
;PCODE: $000002B2 VOL: 0
;PCODE: $000002B3 VOL: 0
;PCODE: $000002B4 VOL: 0
;PCODE: $000002B5 VOL: 0
;PCODE: $000002B6 VOL: 0
;PCODE: $000002B7 VOL: 0
; 0000 0183     				HV = temp;
;PCODE: $000002B8 VOL: 0
;PCODE: $000002B9 VOL: 0
;PCODE: $000002BA VOL: 0
;PCODE: $000002BB VOL: 0
; 0000 0184 					SetHV(temp);
;PCODE: $000002BC VOL: 0
;PCODE: $000002BD VOL: 0
; 0000 0185 					printf("HV=%d\r", HV);
;PCODE: $000002BE VOL: 0
;PCODE: $000002BF VOL: 0
;PCODE: $000002C0 VOL: 0
;PCODE: $000002C1 VOL: 0
;PCODE: $000002C2 VOL: 0
;PCODE: $000002C3 VOL: 0
;PCODE: $000002C4 VOL: 0
;PCODE: $000002C5 VOL: 0
;PCODE: $000002C6 VOL: 0
;PCODE: $000002C7 VOL: 0
;PCODE: $000002C8 VOL: 0
; 0000 0186 					break;
;PCODE: $000002C9 VOL: 0
; 0000 0187 
; 0000 0188 				case 'H':
;PCODE: $000002CA VOL: 0
;PCODE: $000002CB VOL: 0
;PCODE: $000002CC VOL: 0
; 0000 0189 					printf("HV=%d\r", HV);
;PCODE: $000002CD VOL: 0
;PCODE: $000002CE VOL: 0
;PCODE: $000002CF VOL: 0
;PCODE: $000002D0 VOL: 0
;PCODE: $000002D1 VOL: 0
;PCODE: $000002D2 VOL: 0
;PCODE: $000002D3 VOL: 0
;PCODE: $000002D4 VOL: 0
;PCODE: $000002D5 VOL: 0
;PCODE: $000002D6 VOL: 0
;PCODE: $000002D7 VOL: 0
; 0000 018A 					break;
;PCODE: $000002D8 VOL: 0
; 0000 018B 
; 0000 018C 				case 'S':
;PCODE: $000002D9 VOL: 0
;PCODE: $000002DA VOL: 0
;PCODE: $000002DB VOL: 0
; 0000 018D 					PWM_EN = 0;
;PCODE: $000002DC VOL: 0
;PCODE: $000002DD VOL: 0
; 0000 018E 					printf("HV OFF\r");
;PCODE: $000002DE VOL: 0
;PCODE: $000002DF VOL: 0
;PCODE: $000002E0 VOL: 0
;PCODE: $000002E1 VOL: 0
;PCODE: $000002E2 VOL: 0
;PCODE: $000002E3 VOL: 0
;PCODE: $000002E4 VOL: 0
; 0000 018F 					break;
;PCODE: $000002E5 VOL: 0
; 0000 0190 
; 0000 0191 				case 'G':
;PCODE: $000002E6 VOL: 0
;PCODE: $000002E7 VOL: 0
;PCODE: $000002E8 VOL: 0
; 0000 0192 					PWM_EN = 1;
;PCODE: $000002E9 VOL: 0
;PCODE: $000002EA VOL: 0
; 0000 0193 					printf("HV ON\r");
;PCODE: $000002EB VOL: 0
;PCODE: $000002EC VOL: 0
;PCODE: $000002ED VOL: 0
;PCODE: $000002EE VOL: 0
;PCODE: $000002EF VOL: 0
;PCODE: $000002F0 VOL: 0
;PCODE: $000002F1 VOL: 0
; 0000 0194 					break;
;PCODE: $000002F2 VOL: 0
; 0000 0195 
; 0000 0196 				case 'P': //Set PWM
;PCODE: $000002F3 VOL: 0
;PCODE: $000002F4 VOL: 0
;PCODE: $000002F5 VOL: 0
; 0000 0197 					calibration = 1;
;PCODE: $000002F6 VOL: 0
;PCODE: $000002F7 VOL: 1
; 0000 0198 					temp = GetWORD();
;PCODE: $000002F8 VOL: 0
;PCODE: $000002F9 VOL: 0
; 0000 0199 					SetOCR1B(temp);
;PCODE: $000002FA VOL: 0
;PCODE: $000002FB VOL: 0
; 0000 019A 					printf("OCR1B = %d\r", temp);
;PCODE: $000002FC VOL: 0
;PCODE: $000002FD VOL: 0
;PCODE: $000002FE VOL: 0
;PCODE: $000002FF VOL: 0
;PCODE: $00000300 VOL: 0
;PCODE: $00000301 VOL: 0
;PCODE: $00000302 VOL: 0
;PCODE: $00000303 VOL: 0
;PCODE: $00000304 VOL: 0
;PCODE: $00000305 VOL: 0
; 0000 019B 					break;
;PCODE: $00000306 VOL: 0
; 0000 019C 
; 0000 019D 			}
;PCODE: $00000307 VOL: 0
; 0000 019E 		}
; 0000 019F 	}
;PCODE: $00000308 VOL: 0
;PCODE: $00000309 VOL: 0
;PCODE: $0000030A VOL: 0
; 0000 01A0 }
;PCODE: $0000030B VOL: 0
;PCODE: $0000030C VOL: 0
;PCODE: $0000030D VOL: 0
;PCODE: $0000030E VOL: 0
