 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd" >
<featureDefinitions name="DMA" iconName="DMA" 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="DMASettings" caption="DMA Settings">
     <userControlSubGroup name="DMA%indexControl%" caption="DMA%indexControl%">
		   
		 <userControl name="enableChannel%indexControl%" range="7">	
		 
			<dialogConfig type="CK" caption="Enable Channel"></dialogConfig>
			<userAction name="enable">
			  <claimResource type="register" registerField="CHEN_%indexControl%" value="1"></claimResource>
			</userAction>
			<userAction name="disable">
			  <claimResource type="register" registerField="CHEN_%indexControl%" value="0"></claimResource>
			</userAction>
		  </userControl>
		  
		<userControl name="EnableNullDataPeripheralWrite%indexControl%" range="7">						
			<dialogConfig type="CK" caption="Enable Null Data Peripheral Write"></dialogConfig>
			<userAction name="enable">
			  <claimResource type="register" registerField="NULLW_%indexControl%" value="1"></claimResource>
			</userAction>
			<userAction name="disable">
			  <claimResource type="register" registerField="NULLW_%indexControl%" value="0"></claimResource>
			</userAction>
		  </userControl>		  
		  
		<userControl name="RequestSourceSelection%indexControl%" range="7">
		
			<dialogConfig type="CB" caption="DMA Request Source Selection">
				<selection name="INT0" value="INT0"></selection> 
				<selection name="InputCapture1" value="Input Capture 1"></selection> 
				<selection name="InputCapture2" value="Input Capture 2"></selection> 
				<selection name="OutputCompare1" value="Output Compare 1"></selection> 
				<selection name="OutputCompare1SecondaryData" value="Output Compare 1 Secondary"></selection> 				
				<selection name="OutputCompare2" value="Output Compare 2"></selection> 
				<selection name="OutputCompare2SecondaryData" value="Output Compare 2 Secondary"></selection> 				
				<selection name="Timer2" value="Timer2"></selection> 
				<selection name="Timer3" value="Timer3"></selection> 
				<selection name="SPI1" value="SPI1"></selection> 
				<selection name="SPI2" value="SPI2"></selection> 
				<selection name="UART1Reception" value="UART1 Reception"></selection> 
				<selection name="UART1Transmission" value="UART1 Transmission"></selection> 
				<selection name="UART2Reception" value="UART2 Reception"></selection> 
				<selection name="UART2Transmission" value="UART2 Transmission"></selection> 
				<selection name="DC1RX" value="DCI Reception"></selection> 					
				<selection name="DC1TX" value="DCI Transmission"></selection> 					
				<selection name="ADC1" value="ADC1"></selection> 				
			</dialogConfig>					
			
			<!-- If the first digit of value is "1", then the value is parsed as binary data. Otherwise the
			value is parsed as decimal	-->
			<userAction name="ADC1">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0001101"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1100000000"></claimResource>				
			</userAction>
			<userAction name="DC1TX">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0111100"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1010011000"></claimResource>				
			</userAction>			

			<userAction name="DC1RX">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0111100"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1010010000"></claimResource>				
			</userAction>						
			<userAction name="UART2Transmission">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0011111"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1000110100"></claimResource>				
			</userAction>
			<userAction name="UART2Reception">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0011110"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1000110110"></claimResource>				
			</userAction>
			<userAction name="UART1Transmission">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0001100"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1000100100"></claimResource>				
			</userAction>
			<userAction name="UART1Reception">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0001011"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1000100110"></claimResource>				
			</userAction>
			<userAction name="SPI2">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0100001"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1001101000"></claimResource>				
			</userAction>
			<userAction name="SPI1">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0001010"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="1001001000"></claimResource>				
			</userAction>
			<userAction name="Timer3">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0001000"></claimResource>							
			</userAction>
			<userAction name="Timer2">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000111"></claimResource>								
			</userAction>
			<userAction name="OutputCompare2SecondaryData">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000110"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="110000110"></claimResource>				
			</userAction>
			<userAction name="OutputCompare2">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000110"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="110001000"></claimResource>				
			</userAction>
			<userAction name="OutputCompare1SecondaryData">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000010"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="110000000"></claimResource>				
			</userAction>			
			<userAction name="OutputCompare1">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000010"></claimResource>				
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="110000010"></claimResource>				
			</userAction>
			<userAction name="InputCapture2">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000101"></claimResource>			
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="101000100"></claimResource>				
			</userAction>
			<userAction name="InputCapture1">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0000001"></claimResource>
				<claimResource type="register" instance="1" registerField="PAD_%indexControl%" value="101000000"></claimResource>				
			</userAction>
			<userAction name="INT0">
				<claimResource type="register" registerField="IRQSEL_%indexControl%" value="0"></claimResource>				
			</userAction>	
			
			
		</userControl>
		
		<userControl name="addressingMode%indexControl%" range="7">
			<dialogConfig type="CB" caption="DMA Addressing Mode">
				<selection name="PeripheralIndirectAddressing" value="Peripheral Indirect Addressing"></selection> 
				<selection name="RegisterIndirectwithoutPost-Increment" value="Register Indirect without Post-Increment"></selection> 
				<selection name="RegisterIndirectwithPost-Increment" value="Register Indirect with Post-Increment"></selection> 
			</dialogConfig>			
			<userAction name="RegisterIndirectwithPost-Increment">
				<claimResource type="register" registerField="AMODE1_%indexControl%" value="0"></claimResource>
				<claimResource type="register" registerField="AMODE0_%indexControl%" value="0"></claimResource>
			</userAction>
			<userAction name="RegisterIndirectwithoutPost-Increment">
				<claimResource type="register" registerField="AMODE1_%indexControl%" value="0"></claimResource>
				<claimResource type="register" registerField="AMODE0_%indexControl%" value="1"></claimResource>
			</userAction>			
			<userAction name="PeripheralIndirectAddressing">
				<claimResource type="register" registerField="AMODE1_%indexControl%" value="1"></claimResource>
				<claimResource type="register" registerField="AMODE0_%indexControl%" value="0"></claimResource>
			</userAction>
		</userControl>
		
		<userControl name="operationMode%indexControl%" range="7">
		<dialogConfig type="CB" caption="DMA Channel operating mode">
			<selection name="OneShotPingPongEnb" value="One-Shot Ping-Pong Mode Enable"></selection> 
			<selection name="ContinuousPingPongEnb" value="Continuous Ping-Pong Mode Enable"></selection> 
			<selection name="OneShotPingPongDis" value="One-Shot Ping-Pong Mode Disable"></selection>
			<selection name="ContinuousPingPongDis" value="Continuous Ping-Pong Mode Disable"></selection> 
		</dialogConfig>
			<userAction name="ContinuousPingPongDis">
				<claimResource type="register" registerField="MODE1_%indexControl%" value="0"></claimResource>
				<claimResource type="register" registerField="MODE0_%indexControl%" value="0"></claimResource>
			</userAction>	
			<userAction name="OneShotPingPongDis">
				<claimResource type="register" registerField="MODE1_%indexControl%" value="0"></claimResource>
				<claimResource type="register" registerField="MODE0_%indexControl%" value="1"></claimResource>
			</userAction>
					<userAction name="ContinuousPingPongEnb">
				<claimResource type="register" registerField="MODE1_%indexControl%" value="1"></claimResource>
				<claimResource type="register" registerField="MODE0_%indexControl%" value="0"></claimResource>
			</userAction>	
			<userAction name="OneShotPingPongEnb">
				<claimResource type="register" registerField="MODE1_%indexControl%" value="1"></claimResource>
				<claimResource type="register" registerField="MODE0_%indexControl%" value="1"></claimResource>
			</userAction>

		</userControl>

		 <userControl name="StartAddrRegisterA%indexControl%" range="7">
			<dialogConfig type="TB" caption="DPSRAM Start Address Offset Register A"></dialogConfig>
			<userAction>
				<claimResource type="register" instance="1" registerField="STA_%indexControl%" value="0" variable="1"></claimResource>			
			</userAction>
		</userControl>
		
				
		 <userControl name="StartAddrRegisterB%indexControl%" range="7">
			<dialogConfig type="TB" caption="DPSRAM Start Address Offset Register B"></dialogConfig>
			<userAction>
				<claimResource type="register" instance="1" registerField="STB_%indexControl%" value="0" variable="1"></claimResource>			
			</userAction>
		</userControl>		
		
		 
		 <userControl name="TransferCountRegister%indexControl%" range="7">
			<dialogConfig type="TB" caption="Transfer Count Register"></dialogConfig>
			<userAction>
				<claimResource type="register" instance="1" registerField="CNT_%indexControl%" value="0" variable="1"></claimResource>			
			</userAction>
		</userControl>				
		  
		  
		<userControl name="DataTransferSize%indexControl%" range="7">
			<dialogConfig type="CB" caption="Data Transfer Size">
				<selection name="Byte" value="Byte"></selection> 
				<selection name="Word" value="Word"></selection> 
			</dialogConfig>
				<userAction name="Word">
				<claimResource type="register" registerField="SIZE_%indexControl%" value="0"></claimResource>
				</userAction>
				<userAction name="Byte">
					<claimResource type="register" registerField="SIZE_%indexControl%" value="1"></claimResource>
				</userAction>
	
		</userControl>
		
		<userControl name="DataTransferDirection%indexControl%" range="7">				
				<dialogConfig type="CB" caption="Data Transfer Size">
					<selection name="FromAPeripheralToDMA" value="From a peripheral to DMA"></selection> 
					<selection name="FromDMAToAPeripheral" value="From DMA to a peripheral"></selection> 
				</dialogConfig>
				<userAction name="FromDMAToAPeripheral">
					<claimResource type="register" registerField="DIR_%indexControl%" value="1"></claimResource>
				</userAction>
				<userAction name="FromAPeripheralToDMA">
				<claimResource type="register" registerField="DIR_%indexControl%" value="0"></claimResource>
				</userAction>	
		</userControl>
		
		
		
		
		<userControl name="interruptEnable%indexControl%" range="7" enableForInt="DMA%indexControl%">
			 <dialogConfig type="CK" caption="Enable Interrupt on Startup"></dialogConfig>
					<userAction name="enable">
						<claimResource type="register" registerField="DMA%indexControl%IE" value="1"></claimResource>
					</userAction>
					<userAction name="disable">
						<claimResource type="register" registerField="DMA%indexControl%IE" value="0"></claimResource>
					</userAction>
		</userControl>					
		<userControl name="interruptPriority%indexControl%" range="7" priorityForInt="DMA%indexControl%">
				  <dialogConfig type="CB" range="7" caption="Interrupt Priority">
					   <selection name="PriorityLevelTo%index%" value="%index%"></selection>
				  </dialogConfig>
				  <userAction>
					 <claimResource type="register" registerField="DMA%indexControl%IP" method="PriorityLevel3Bit"></claimResource>
				  </userAction>
		</userControl>
		<userControl name="TCIntSelection%indexControl%" range="7" >
				  <dialogConfig type="CB" caption="Transfer Complete Interrupt Selection">
					   <selection name="BTComplete" value="Block Transfer Complete"></selection>
					   <selection name="HBTComplete" value="Half Block Transfer Complete"></selection>
				  </dialogConfig>
				  <userAction name="HBTComplete">
					 <claimResource type="register" registerField="HALF_%indexControl%" value="1"></claimResource>
				  </userAction>
				  <userAction name="BTComplete">
					 <claimResource type="register" registerField="HALF_%indexControl%" value="0"></claimResource>
				  </userAction>
		</userControl>		
		
		
	 </userControlSubGroup>
  </userControlGroup>
</featureDefinitions>
