<?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"/>
          <claimResource type="pin" pin="INDX" 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">
          <selection name="x2" value="X2"/>
          <selection name="x4" value="X4"/>
        </dialogConfig>
        <userAction name="x4">
          <claimResource type="register" registerField="QEIM1" value="1"/>
        </userAction>
        <userAction name="x2">
          <claimResource type="register" registerField="QEIM1" value="0"/>
        </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="EnableFilterAB">
        <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="FilterClockRatioAB">
        <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="111"/>
        </userAction>
        <userAction name="setTo128">
          <claimResource type="register" registerField="QECK" value="110"/>
        </userAction>
        <userAction name="setTo64">
          <claimResource type="register" registerField="QECK" value="101"/>
        </userAction>
        <userAction name="setTo32">
          <claimResource type="register" registerField="QECK" value="100"/>
        </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>

      <userControl name="EnableFilterI">
        <dialogConfig type="CK" caption="Enable Digital Filter on INDX Pin"/>
        <userAction name="enable">
          <claimResource type="register" registerField="INDOUT" value="1"/>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="INDOUT" value="0"/>
        </userAction>
      </userControl>

      <userControl name="FilterClockRatioI">
        <dialogConfig type="CB" caption="Digital Filter Clock Divide Ratio for INDX Pin">
          <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="INDCK" value="111"/>
        </userAction>
        <userAction name="setTo128">
          <claimResource type="register" registerField="INDCK" value="110"/>
        </userAction>
        <userAction name="setTo64">
          <claimResource type="register" registerField="INDCK" value="101"/>
        </userAction>
        <userAction name="setTo32">
          <claimResource type="register" registerField="INDCK" value="100"/>
        </userAction>
        <userAction name="setTo16">
          <claimResource type="register" registerField="INDCK" value="011"/>
        </userAction>
        <userAction name="setTo4">
          <claimResource type="register" registerField="INDCK" value="010"/>
        </userAction>
        <userAction name="setTo2">
          <claimResource type="register" registerField="INDCK" value="001"/>
        </userAction>
        <userAction name="setTo1">
          <claimResource type="register" registerField="INDCK" 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="register" registerField="QEIM0" value="0"/>
          <claimResource type="register" registerField="POSRES" value="0"/>
        </userAction>
        <userAction name="IntOnINDXAndReset">
          <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>
