<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd">

<featureDefinitions name="Oscillator" iconName="oscillator" helpIndex="">
	
<userControlGroup name="none" caption="none">
		<userControlSubGroup name="none" caption="none">
			<userControl name="applyButton">
				<dialogConfig type="applyButton" caption="none"></dialogConfig>
				<userAction name="apply"></userAction>
			</userControl>
		</userControlSubGroup>
	</userControlGroup>
	<userControlGroup name="PrimaryOscSettings" caption="Primary Oscillator Settings">
		<userControlSubGroup name="none" caption="none">
			<userControl name="ClockFreq">
				<dialogConfig type="TB" caption="System Clock Frequency"></dialogConfig>
				<userAction>
					<!-- this is needed for baud calc and should just be stored -->
				</userAction>
			</userControl>
			<userControl type="readOnly" name="Fcy">
				<dialogConfig type="general" caption="Fcy"></dialogConfig>
				<userAction></userAction>
			</userControl>
			<userControl name="ShowAdvanced">
				<dialogConfig type="CK" caption="View Advanced Oscillator Settings"></dialogConfig>
				<userAction name="enable">
					<!-- what to do here????? -->
				</userAction>
				<userAction name="disable"></userAction>
			</userControl>
		</userControlSubGroup>
	</userControlGroup>
	<userControlGroup name="AdvancedOscGroup" caption="Advanced Oscillator Settings">
		<userControlSubGroup name="none" caption="none">
			<userControl name="ClockSrc">
				<dialogConfig type="CB" caption="Clock Source">
					<selection name="InternalFRC" value="Internal FRC"></selection>
					<selection name="InternalFRCWithDivideByN" value="Internal FRC Div by N"></selection>
					<selection name="InternalFRCWithPLL" value="Internal FRC With PLL"></selection>
					<selection name="InternalLPRC" value="Internal LPRC"></selection>
					<selection name="Secondary" value="Secondary Oscillator"></selection>
					<selection name="PrimaryXT" value="Primary XT Oscillator"></selection>
					<selection name="PrimaryHS" value="Primary HS Oscillator"></selection>
					<selection name="PrimaryEC" value="Primary EC Oscillator"></selection>
					<selection name="PrimaryXTWithPLL" value="Primary XT Oscillator With PLL"></selection>
					<selection name="PrimaryHSWithPLL" value="Primary HS Oscillator With PLL"></selection>
					<selection name="PrimaryECWithPLL" value="Primary EC Oscillator With PLL"></selection>
				</dialogConfig>
				<userAction name="PrimaryECWithPLL">
					<claimResource type="register" registerField="FNOSC" value="011"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="00"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="PrimaryHSWithPLL">
					<claimResource type="register" registerField="FNOSC" value="011"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="10"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="PrimaryXTWithPLL">
					<claimResource type="register" registerField="FNOSC" value="011"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="01"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="PrimaryEC">
					<claimResource type="register" registerField="FNOSC" value="010"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="00"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="PrimaryHS">
					<claimResource type="register" registerField="FNOSC" value="010"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="10"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="PrimaryXT">
					<claimResource type="register" registerField="FNOSC" value="010"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="01"></claimResource>
					<claimResource type="pin" pin="OSC1" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="OSC2" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="Secondary">
					<claimResource type="register" registerField="FNOSC" value="100"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="11"></claimResource>
				</userAction>
				<userAction name="InternalLPRC">
					<claimResource type="register" registerField="FNOSC" value="101"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="11"></claimResource>
				</userAction>
				<userAction name="InternalFRCWithPLL">
					<claimResource type="register" registerField="FNOSC" value="001"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="11"></claimResource>
				</userAction>
				<userAction name="InternalFRCWithDivideByN">
					<claimResource type="register" registerField="FNOSC" value="111"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="11"></claimResource>
				</userAction>
				<userAction name="InternalFRC">
					<claimResource type="register" registerField="FNOSC" value="000"></claimResource>
					<claimResource type="register" registerField="POSCMOD" value="11"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="PeripheralClkPS">
				<dialogConfig type="CB" caption="Internal FRC Postscaler:">
					<selection name="setToDiv8" value="Divide by 8"></selection>
					<selection name="setToDiv4" value="Divide by 4"></selection>
					<selection name="setToDiv2" value="Divide by 2"></selection>
					<selection name="setToDiv1" value="Divide by 1"></selection>
				</dialogConfig>

				<userAction name="setToDiv1">
					<claimResource type="register" registerField="FPBDIV" value="00"></claimResource>
				</userAction>

				<userAction name="setToDiv2">
					<claimResource type="register" registerField="FPBDIV" value="01"></claimResource>
				</userAction>

				<userAction name="setToDiv4">
					<claimResource type="register" registerField="FPBDIV" value="10"></claimResource>
				</userAction>

				<userAction name="setToDiv8">
					<claimResource type="register" registerField="FPBDIV" value="11"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="ClockDivider">
				<dialogConfig type="CB" caption="Internal FRC Postscaler:">
					<selection name="setToDiv256" value="Divide by 256"></selection>
					<selection name="setToDiv64" value="Divide by 64"></selection>
					<selection name="setToDiv32" value="Divide by 32"></selection>
					<selection name="setToDiv16" value="Divide by 16"></selection>
					<selection name="setToDiv8" value="Divide by 8"></selection>
					<selection name="setToDiv4" value="Divide by 4"></selection>
					<selection name="setToDiv2" value="Divide by 2"></selection>
					<selection name="setToDiv1" value="Divide by 1"></selection>
				</dialogConfig>
				<userAction name="setToDiv1">
					<claimResource type="register" registerField="FRCDIV" value="000"></claimResource>
				</userAction>
				<userAction name="setToDiv2">
					<claimResource type="register" registerField="FRCDIV" value="001"></claimResource>
				</userAction>
				<userAction name="setToDiv4">
					<claimResource type="register" registerField="FRCDIV" value="010"></claimResource>
				</userAction>
				<userAction name="setToDiv8">
					<claimResource type="register" registerField="FRCDIV" value="011"></claimResource>
				</userAction>
				<userAction name="setToDiv16">
					<claimResource type="register" registerField="FRCDIV" value="100"></claimResource>
				</userAction>
				<userAction name="setToDiv32">
					<claimResource type="register" registerField="FRCDIV" value="101"></claimResource>
				</userAction>
				<userAction name="setToDiv64">
					<claimResource type="register" registerField="FRCDIV" value="110"></claimResource>
				</userAction>
				<userAction name="setToDiv256">
					<claimResource type="register" registerField="FRCDIV" value="111"></claimResource>
				</userAction>
			</userControl>
			<userControl name="SwitchingAndMonitorMode">
				<dialogConfig type="CB" caption="Switching and Monitor Mode">
					<selection name="SelectNone" value="Switching Disabled, Monitor Disabled"></selection>
					<selection name="SelectSwitching" value="Switching Enabled, Monitor Disabled"></selection>
					<selection name="SelectSwitchingAndMonitor" value="Switching Enabled, Monitor Enabled"></selection>
				</dialogConfig>
				<userAction name="SelectSwitchingAndMonitor">
					<claimResource type="register" registerField="FCKSM" value="00"></claimResource>
				</userAction>
				<userAction name="SelectSwitching">
					<claimResource type="register" registerField="FCKSM" value="01"></claimResource>
				</userAction>
				<userAction name="SelectNone">
					<claimResource type="register" registerField="FCKSM" value="11"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="EnableAuxOsc">
				<dialogConfig type="CK" caption="Enable Auxuliary 32KHz Oscillator"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="SOSCEN" value="1"></claimResource>
					<claimResource type="pin" pin="SOSCO" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="SOSCI" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="SOSCEN" value="0"></claimResource>
				</userAction>
			</userControl>
			

			<userControl name="SleepMdEnable">
				<dialogConfig type="CK" caption="Enable Auxuliary 32KHz Oscillator"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="SLPEN" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="SLPEN" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="EnableClkSel">
				<dialogConfig type="CK" caption="Clock Selection Lock Enable bit"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="CLKLOCK" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="CLKLOCK" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="EnablePBClkOut">
				<dialogConfig type="CK" caption="PB Clock Out Enable"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="OSCIOFNC" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="OSCIOFNC" value="0"></claimResource>
				</userAction>
			</userControl>
			
		</userControlSubGroup>
	</userControlGroup>
	<userControlGroup name="PLLConfiguration" caption="PLL Configuration">
		<userControlSubGroup name="none" caption="none">
			<userControl name="N1">
				<dialogConfig type="CB" caption="N1">
					<selection name="DivideBy12" value="Divide by 12"></selection>
					<selection name="DivideBy10" value="Divide by 10"></selection>
					<selection name="DivideBy6" value="Divide by 6"></selection>
					<selection name="DivideBy5" value="Divide by 5"></selection>
					<selection name="DivideBy4" value="Divide by 4"></selection>
					<selection name="DivideBy3" value="Divide by 3"></selection>
					<selection name="DivideBy2" value="Divide by 2"></selection>
					<selection name="DivideBy1" value="Divide by 1"></selection>
				</dialogConfig>
				
				<userAction name="DivideBy1">
					<claimResource type="register" registerField="FPLLIDIV" value="000"></claimResource>
				</userAction>
				<userAction name="DivideBy2">
					<claimResource type="register" registerField="FPLLIDIV" value="001"></claimResource>
				</userAction>
				<userAction name="DivideBy3">
					<claimResource type="register" registerField="FPLLIDIV" value="010"></claimResource>
				</userAction>
				<userAction name="DivideBy4">
					<claimResource type="register" registerField="FPLLIDIV" value="011"></claimResource>
				</userAction>
				<userAction name="DivideBy5">
					<claimResource type="register" registerField="FPLLIDIV" value="100"></claimResource>
				</userAction>
				<userAction name="DivideBy6">
					<claimResource type="register" registerField="FPLLIDIV" value="101"></claimResource>
				</userAction>
				<userAction name="DivideBy10">
					<claimResource type="register" registerField="FPLLIDIV" value="110"></claimResource>
				</userAction>
				<userAction name="DivideBy12">
					<claimResource type="register" registerField="FPLLIDIV" value="111"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="M">
				<dialogConfig type="CB" caption="M">
					<selection name="MultiplyBy24" value="Multiply by 24"></selection>
					<selection name="MultiplyBy21" value="Multiply by 21"></selection>
					<selection name="MultiplyBy20" value="Multiply by 20"></selection>
					<selection name="MultiplyBy19" value="Multiply by 19"></selection>
					<selection name="MultiplyBy18" value="Multiply by 18"></selection>
					<selection name="MultiplyBy17" value="Multiply by 17"></selection>
					<selection name="MultiplyBy16" value="Multiply by 16"></selection>
					<selection name="MultiplyBy15" value="Multiply by 15"></selection>
				</dialogConfig>
				<userAction name="MultiplyBy15">
					<claimResource type="register" registerField="FPLLMUL" value="000"></claimResource>
				</userAction>
				<userAction name="MultiplyBy16">
					<claimResource type="register" registerField="FPLLMUL" value="001"></claimResource>
				</userAction>
				<userAction name="MultiplyBy17">
					<claimResource type="register" registerField="FPLLMUL" value="010"></claimResource>
				</userAction>
				<userAction name="MultiplyBy18">
					<claimResource type="register" registerField="FPLLMUL" value="011"></claimResource>
				</userAction>
				<userAction name="MultiplyBy19">
					<claimResource type="register" registerField="FPLLMUL" value="100"></claimResource>
				</userAction>
				<userAction name="MultiplyBy20">
					<claimResource type="register" registerField="FPLLMUL" value="101"></claimResource>
				</userAction>
				<userAction name="MultiplyBy21">
					<claimResource type="register" registerField="FPLLMUL" value="110"></claimResource>
				</userAction>
				<userAction name="MultiplyBy24">
					<claimResource type="register" registerField="FPLLMUL" value="111"></claimResource>
				</userAction>

			</userControl>
			
			<userControl name="N2">
				<dialogConfig type="CB" caption="N2">
					<selection name="DivideBy256" value="Divide by 256"></selection>
					<selection name="DivideBy64" value="Divide by 64"></selection>
					<selection name="DivideBy32" value="Divide by 32"></selection>
					<selection name="DivideBy16" value="Divide by 16"></selection>
					<selection name="DivideBy8" value="Divide by 8"></selection>
					<selection name="DivideBy4" value="Divide by 4"></selection>
					<selection name="DivideBy2" value="Divide by 2"></selection>
					<selection name="DivideBy1" value="Divide by 1"></selection>
				</dialogConfig>
				
				<userAction name="DivideBy1">
					<claimResource type="register" registerField="FPLLODIV" value="000"></claimResource>
				</userAction>
				<userAction name="DivideBy2">
					<claimResource type="register" registerField="FPLLODIV" value="001"></claimResource>
				</userAction>
				<userAction name="DivideBy4">
					<claimResource type="register" registerField="FPLLODIV" value="010"></claimResource>
				</userAction>
				<userAction name="DivideBy8">
					<claimResource type="register" registerField="FPLLODIV" value="011"></claimResource>
				</userAction>
				<userAction name="DivideBy16">
					<claimResource type="register" registerField="FPLLODIV" value="100"></claimResource>
				</userAction>
				<userAction name="DivideBy32">
					<claimResource type="register" registerField="FPLLODIV" value="101"></claimResource>
				</userAction>
				<userAction name="DivideBy64">
					<claimResource type="register" registerField="FPLLODIV" value="110"></claimResource>
				</userAction>
				<userAction name="DivideBy256">
					<claimResource type="register" registerField="FPLLODIV" value="111"></claimResource>
				</userAction>
			</userControl>
				
			<userControl name="EnableFSCM">
				<dialogConfig type="CK" caption="FSCM interrupt enable"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="FSCMIE" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="FSCMIE" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="interruptPriority" priorityForInt="I2C%instance%">
				<dialogConfig type="CB" range="7" caption="Interrupt Priority">
					<selection name="PriorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>
					<claimResource type="register" registerField="FSCMIP" method="PriorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="interruptSubPriority" priorityForInt="I2C%instance%">
				<dialogConfig type="CB" range="3" caption="Interrupt Priority">
					<selection name="PriorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>
					<claimResource type="register" registerField="FSCMIS" method="PriorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>
		</userControlSubGroup>
	</userControlGroup>
</featureDefinitions>