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

<featureDefinitions name="QEI1" iconName="QEI" helpIndex="">

  <userControlGroup name="none" caption="none">
    <userControlSubGroup name="none" caption="none">
      <userControl name="applyButton">
        <dialogConfig type="applyButton" caption="none"/>
        <userAction name="apply">
          <claimResource type="register" registerField="OWN_QEI" value="100"/>
          <claimResource type="register" registerField="QEIM2" value="1"/>
          <claimResource type="pin" pin="QEA" polarity="Inp"/>
          <claimResource type="pin" pin="QEB" polarity="Inp"/>
        </userAction>
      </userControl>
    </userControlSubGroup>
  </userControlGroup>

  <userControlGroup name="GroupMeasurement" caption="none">
    <userControlSubGroup name="none" caption="none">

      <userControl name="MeasMode">
        <dialogConfig type="CB" caption="Measurement Mode and Index Pulse Match Options">
          <selection name="X2A0" value="X2: Require Phase A = 0"/>
          <selection name="X2A1" value="X2: Require Phase A = 1"/>
          <selection name="X2B0" value="X2: Require Phase B = 0"/>
          <selection name="X2B1" value="X2: Require Phase B = 1"/>
          <selection name="X4B0A0" value="X4: Require Phase B = 0, A = 0"/>
          <selection name="X4B0A1" value="X4: Require Phase B = 0, A = 1"/>
          <selection name="X4B1A0" value="X4: Require Phase B = 1, A = 0"/>
          <selection name="X4B1A1" value="X4: Require Phase B = 1, A = 1"/>
        </dialogConfig>
        <userAction name="X4B1A1">
          <claimResource type="register" registerField="QEIM1" value="1"/>
          <claimResource type="register" registerField="IMV" value="11"/>
        </userAction>
        <userAction name="X4B1A0">
          <claimResource type="register" registerField="QEIM1" value="1"/>
          <claimResource type="register" registerField="IMV" value="10"/>
        </userAction>
        <userAction name="X4B0A1">
          <claimResource type="register" registerField="QEIM1" value="1"/>
          <claimResource type="register" registerField="IMV" value="01"/>
        </userAction>
        <userAction name="X4B0A0">
          <claimResource type="register" registerField="QEIM1" value="1"/>
          <claimResource type="register" registerField="IMV" value="00"/>
        </userAction>
        <userAction name="X2B1">
          <claimResource type="register" registerField="QEIM1" value="0"/>
          <claimResource type="register" registerField="IMV" value="11"/>
        </userAction>
        <userAction name="X2B0">
          <claimResource type="register" registerField="QEIM1" value="0"/>
          <claimResource type="register" registerField="IMV" value="10"/>
        </userAction>
        <userAction name="X2A1">
          <claimResource type="register" registerField="QEIM1" value="0"/>
          <claimResource type="register" registerField="IMV" value="01"/>
        </userAction>
        <userAction name="X2A0">
          <claimResource type="register" registerField="QEIM1" value="0"/>
          <claimResource type="register" registerField="IMV" value="00"/>
        </userAction>
      </userControl>

      <userControl name="SendPosToPin">
        <dialogConfig type="CK" caption="Count Direction"/>
        <userAction name="enable">
          <claimResource type="register" registerField="PCDOUT" value="1"/>
          <claimResource type="pin" pin="UPDN" polarity="Out"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="PCDOUT" value="0"/>
        </userAction>
      </userControl>

      <userControl name="StopDuringIDLE">
        <dialogConfig type="CK" caption="Stop During IDLE"/>
        <userAction name="enable">
          <claimResource type="register" registerField="QEISIDL" value="1"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="QEISIDL" value="0"/>
        </userAction>
      </userControl>

      <userControl name="SwapSignals">
        <dialogConfig type="CK" caption="Swap QEA/QEB Signals"/>
        <userAction name="enable">
          <claimResource type="register" registerField="SWPAB" value="1"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="SWPAB" value="0"/>
        </userAction>
      </userControl>

    </userControlSubGroup>
  </userControlGroup>

  <userControlGroup name="GroupDigitalFilters" caption="none">
    <userControlSubGroup name="none" caption="none">

      <userControl name="EnableFilter">
        <dialogConfig type="CK" caption="Enable Digital Filter on QEA/QEB Pins"/>
        <userAction name="enable">
          <claimResource type="register" registerField="QEOUT" value="1"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="QEOUT" value="0"/>
        </userAction>
      </userControl>

      <userControl name="FilterClockRatio">
        <dialogConfig type="CB" caption="Digital Filter Clock Divide Ratio">
          <selection name="setTo1" value="1:1"/>
          <selection name="setTo2" value="1:2"/>
          <selection name="setTo4" value="1:4"/>
          <selection name="setTo16" value="1:16"/>
          <selection name="setTo32" value="1:32"/>
          <selection name="setTo64" value="1:64"/>
          <selection name="setTo128" value="1:128"/>
          <selection name="setTo256" value="1:256"/>
        </dialogConfig>
        <userAction name="setTo256">
          <claimResource type="register" registerField="QECK" value="0111"/>
        </userAction>
        <userAction name="setTo128">
          <claimResource type="register" registerField="QECK" value="0110"/>
        </userAction>
        <userAction name="setTo64">
          <claimResource type="register" registerField="QECK" value="0101"/>
        </userAction>
        <userAction name="setTo32">
          <claimResource type="register" registerField="QECK" value="0100"/>
        </userAction>
        <userAction name="setTo16">
          <claimResource type="register" registerField="QECK" value="011"/>
        </userAction>
        <userAction name="setTo4">
          <claimResource type="register" registerField="QECK" value="010"/>
        </userAction>
        <userAction name="setTo2">
          <claimResource type="register" registerField="QECK" value="001"/>
        </userAction>
        <userAction name="setTo1">
          <claimResource type="register" registerField="QECK" value="000"/>
        </userAction>
      </userControl>

    </userControlSubGroup>
  </userControlGroup>

  <userControlGroup name="GroupInterrupts" caption="none">
    <userControlSubGroup name="none" caption="none">

      <userControl name="IntEventAndResponse">
        <dialogConfig type="CB" caption="Interrupt and Reset Conditions">
          <selection name="IntOnMAXCNTAndReset" value="On POSCNT = MAXCNT, Reset Counter"/>
          <selection name="IntOnINDXAndReset" value="On Index Pulse, Reset Counter"/>
          <selection name="IntOnINDX" value="On Index Pulse, Don't Reset Counter"/>
        </dialogConfig>
        <userAction name="IntOnINDX">
          <claimResource type="pin" pin="INDX" polarity="Inp"/>
          <claimResource type="register" registerField="QEIM0" value="0"/>
          <claimResource type="register" registerField="POSRES" value="0"/>
        </userAction>
        <userAction name="IntOnINDXAndReset">
          <claimResource type="pin" pin="INDX" polarity="Inp"/>
          <claimResource type="register" registerField="QEIM0" value="0"/>
          <claimResource type="register" registerField="POSRES" value="1"/>
        </userAction>
        <userAction name="IntOnMAXCNTAndReset">
          <claimResource type="register" registerField="QEIM0" value="1"/>
        </userAction>
      </userControl>

      <userControl name="IntOnPosCountError">
        <dialogConfig type="CK" caption="Interrupt on Position-Count Error"/>
        <userAction name="disable">
          <claimResource type="register" registerField="CEID" value="1"/>
        </userAction>
        <userAction name="enable">
          <claimResource type="register" registerField="CEID" value="0"/>
        </userAction>
      </userControl>

      <userControl name="EnableIntOnStartup" enableForInt="QEI">
        <dialogConfig type="CK" caption="Enable Interrupt on Startup"/>
        <userAction name="enable">
          <claimResource type="register" registerField="QEIIE" value="1"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="QEIIE" value="0"/>
        </userAction>
      </userControl>

      <userControl name="IntPriority" priorityForInt="QEI">
        <dialogConfig type="CB" range="7" caption="Interrupt Priority">
          <selection name="priorityLevelTo%index%" value="%index%"></selection>
        </dialogConfig>
        <userAction>
          <claimResource type="register" registerField="QEIIP" method="priorityLevel3Bit"/>
        </userAction>
      </userControl>

    </userControlSubGroup>
  </userControlGroup>

</featureDefinitions>
