<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd" >
<featureDefinitions name="IC" iconName="IC" 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="ICSettings" caption="IC Settings">
		<userControlSubGroup name="IC%indexControl%" caption="IC%indexControl%">
			
			<userControl name="enable%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
				<userAction name="enable"></userAction>
				<userAction name="disable"></userAction>
			</userControl>
			
			<userControl name="captureMode%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="Capture Mode %indexControl%">
					<selection name="disable" value="Disable"></selection>
					<selection name="falling" value="Capture every falling edge"></selection>
					<selection name="rising" value="Capture every rising edge"></selection>
					<selection name="4thRising" value="Capture every 4th rising edge"></selection>
					<selection name="16thRising" value="Capture every 16th rising edge"></selection>
					<selection name="risingFalling" value="Capture every rising and falling edge"></selection>
					<selection name="idleWakeup" value="Interrupt or wake up from idle"></selection>
				</dialogConfig>
				<userAction name="idleWakeup">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="111"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="risingFalling">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="001"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="16thRising">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="101"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="4thRising">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="100"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="rising">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="011"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="falling">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="010"></claimResource>
					<claimResource type="pin" pin="IC%indexControl%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" instance="1" registerField="IC%indexControl%M" value="000"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="timerSelection%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="Timer select %indexControl%">
					<selection name="timer1" value="Timer 1"></selection>
					<selection name="timer2" value="Timer 2"></selection>
					<selection name="timer3" value="Timer 3"></selection>
					<selection name="timer4" value="Timer 4"></selection>
					<selection name="timer5" value="Timer 5"></selection>
					<selection name="SystemClock" value="System Clock"></selection>					
				</dialogConfig>
				<userAction name="timer1">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="100"></claimResource>
				</userAction>
				<userAction name="timer2">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="001"></claimResource>
				</userAction>
				<userAction name="timer3">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="000"></claimResource>
				</userAction>
				<userAction name="timer4">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="010"></claimResource>
				</userAction>
				<userAction name="timer5">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="011"></claimResource>
				</userAction>				
				<userAction name="SystemClock">
					<claimResource type="register" instance="1" registerField="IC%indexControl%TSEL" value="111"></claimResource>
				</userAction>
			</userControl>

			<userControl name="captureEvent%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="Capture event %indexControl%">
					<selection name="every" value="Capture every event"></selection>
					<selection name="2nd" value="Capture 2nd event"></selection>
					<selection name="3rd" value="Capture 3rd event"></selection>
					<selection name="4th" value="Capture 4th event"></selection>
				</dialogConfig>
				<userAction name="4th">
					<claimResource type="register" instance="1" registerField="IC%indexControl%I" value="11"></claimResource>
				</userAction>
				<userAction name="3rd">
					<claimResource type="register" instance="1" registerField="IC%indexControl%I" value="10"></claimResource>
				</userAction>
				<userAction name="2nd">
					<claimResource type="register" instance="1" registerField="IC%indexControl%I" value="01"></claimResource>
				</userAction>
				<userAction name="every">
					<claimResource type="register" instance="1" registerField="IC%indexControl%I" value="00"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="operateDuringIdle%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="CPU Idle Operation">
					<selection name="continueOnIdle" value="Continue"></selection>
					<selection name="stopOnIdle" value="Stop"></selection>
				</dialogConfig>
				<userAction name="stopOnIdle">
					<claimResource type="register" instance="%instance%" registerField="IC%indexControl%SIDL" value="1"></claimResource>
				</userAction>
				<userAction name="continueOnIdle">
					<claimResource type="register" instance="%instance%" registerField="IC%indexControl%SIDL" value="0"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="interruptEnable%indexControl%" range="1,2,3,4,5,6,7,8,9" enableForInt="IC%indexControl%">
				<dialogConfig type="CK" caption="Enable Interrupt on Startup"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="IC%indexControl%IE" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="IC%indexControl%IE" value="0"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="interruptPriority%indexControl%" range="1,2,3,4,5,6,7,8,9" priorityForInt="IC%indexControl%">
				<dialogConfig type="CB" range="7" caption="Interrupt Priority">
					<selection name="priorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>
					<claimResource type="register" registerField="IC%indexControl%IP" method="priorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>

			<!-- 
				Additional User Controls as per the DOS-00942
				Features as implemented in ICxCON2
				
				CASCEN_x - Cascade Enable
				TRIGEN_x - Trigger Enable
				SYNCSEL_x - Source for Synchronization & Trigger operation (5 bits) : 32
			-->

			<userControl name="cascadeEnable%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CK" caption="Enable Cascade Module Operaton"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" instance="%instance%" registerField="CASCEN_%indexControl%" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" instance="%instance%" registerField="CASCEN_%indexControl%" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="triggerOperationSelect%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="Use Synchronization Input To">
					<selection name="triggerTimer" value="Trigger the module timer"></selection>
					<selection name="syncAnotherModuleTimer" value="Sync to another module timer"></selection>
				</dialogConfig>
				<userAction name="triggerTimer">
					<claimResource type="register" instance="%instance%" registerField="TRIGEN_%indexControl%" value="1"></claimResource>
				</userAction>
				<userAction name="syncAnotherModuleTimer">
					<claimResource type="register" instance="%instance%" registerField="TRIGEN_%indexControl%" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="syncSource%indexControl%" range="1,2,3,4,5,6,7,8,9">
				<dialogConfig type="CB" caption="Source for Synchronization and Trigger %indexControl%">
					<selection name="disable" value="Disable trigger operation"></selection>
					<selection name="OC1" value="Output Compare 1(OC1)"></selection>
					<selection name="OC2" value="Output Compare 2(OC2)"></selection>
					<selection name="OC3" value="Output Compare 3(OC3)"></selection>
					<selection name="OC4" value="Output Compare 4(OC4)"></selection>
					<selection name="OC5" value="Output Compare 5(OC5)"></selection>
					<selection name="OC6" value="Output Compare 6(OC6)"></selection>
					<selection name="OC7" value="Output Compare 7(OC7)"></selection>
					<selection name="OC8" value="Output Compare 8(OC8)"></selection>
					<selection name="OC9" value="Output Compare 9(OC9)"></selection>

					<selection name="ICAP1" value="Input Capture 1(IC1)"></selection>
					<selection name="ICAP2" value="Input Capture 2(IC2)"></selection>
					<selection name="ICAP3" value="Input Capture 3(IC3)"></selection>
					<selection name="ICAP4" value="Input Capture 4(IC4)"></selection>
					<selection name="ICAP5" value="Input Capture 5(IC5)"></selection>
					<selection name="ICAP6" value="Input Capture 6(IC6)"></selection>
					<selection name="ICAP7" value="Input Capture 7(IC7)"></selection>
					<selection name="ICAP8" value="Input Capture 8(IC8)"></selection>
					<selection name="ICAP9" value="Input Capture 9(IC9)"></selection>
					
										
					<selection name="timer1" value="Timer 1(TMR1)"></selection>
					<selection name="timer2" value="Timer 2(TMR2)"></selection>
					<selection name="timer3" value="Timer 3(TMR3)"></selection>
					<selection name="timer4" value="Timer 4(TMR4)"></selection>
					<selection name="timer5" value="Timer 5(TMR5)"></selection>


					<selection name="CMP1" value="Comparator 1(CMP1)"></selection>
					<selection name="CMP2" value="Comparator 2(CMP2)"></selection>
					<selection name="CMP3" value="Comparator 3(CMP3)"></selection>
					<selection name="AD"   value="Analog To Digital Converter(A2D)"></selection>
					<selection name="CTMU" value="Capacitor Time Measurement Unit(CTMU)"></selection>

				</dialogConfig>
				<userAction name="disable">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00000"></claimResource>
				</userAction>

				<userAction name="OC1">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00001"></claimResource>
				</userAction>
				<userAction name="OC2">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00010"></claimResource>
				</userAction>
				<userAction name="OC3">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00011"></claimResource>
				</userAction>
				<userAction name="OC4">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00100"></claimResource>
				</userAction>
				<userAction name="OC5">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00101"></claimResource>
				</userAction>
				<userAction name="OC6">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00110"></claimResource>
				</userAction>
				<userAction name="OC7">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="00111"></claimResource>
				</userAction>
				<userAction name="OC8">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01000"></claimResource>
				</userAction>
				<userAction name="OC9">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01001"></claimResource>
				</userAction>
				
				<userAction name="ICAP5">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01010"></claimResource>
				</userAction>

				<userAction name="timer1">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01011"></claimResource>
				</userAction>
				<userAction name="timer2">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01100"></claimResource>
				</userAction>
				<userAction name="timer3">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01101"></claimResource>
				</userAction>
				<userAction name="timer4">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01110"></claimResource>
				</userAction>
				<userAction name="timer5">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="01111"></claimResource>
				</userAction>

				<userAction name="ICAP7">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10010"></claimResource>
				</userAction>
				<userAction name="ICAP8">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10011"></claimResource>
				</userAction>
				<userAction name="ICAP1">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10100"></claimResource>
				</userAction>
				<userAction name="ICAP2">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10101"></claimResource>
				</userAction>
				<userAction name="ICAP3">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10110"></claimResource>
				</userAction>
				<userAction name="ICAP4">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="10111"></claimResource>
				</userAction>
				<userAction name="CMP1">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11000"></claimResource>
				</userAction>
				<userAction name="CMP2">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11001"></claimResource>
				</userAction>
				<userAction name="CMP3">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11010"></claimResource>
				</userAction>
				<userAction name="AD">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11011"></claimResource>
				</userAction>
				<userAction name="CTMU">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11100"></claimResource>
				</userAction>
				<userAction name="ICAP6">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11101"></claimResource>
				</userAction>
				<userAction name="ICAP9">
					<claimResource type="register" instance="1" registerField="SYNCSEL_%indexControl%" value="11110"></claimResource>
				</userAction>
				
			</userControl>
			
		</userControlSubGroup>
	</userControlGroup>
</featureDefinitions>
