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

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

      <userControl name="applyButton">
        <dialogConfig type="applyButton" caption="none"></dialogConfig>
        <userAction name="apply">
          <claimResource type="register" registerField="OWN_QEI" value="010"></claimResource>
          <claimResource type="register" registerField="QEIM2" value="0"></claimResource>
          <claimResource type="register" registerField="QEIM1" value="0"></claimResource>
          <claimResource type="register" registerField="TQCS" value="0"></claimResource>
        </userAction>
      </userControl>

    </userControlSubGroup>
  </userControlGroup>

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

      <userControl name="enable">
        <dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
        <userAction name="enable">
          <claimResource type="register" registerField="QEIM0" value="1"></claimResource>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="QEIM0" value="0"></claimResource>
        </userAction>
      </userControl>

      <userControl name="gatedTimeEnable">
        <dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
        <userAction name="enable">
          <claimResource type="register" registerField="TQGATE" value="1"></claimResource>
          <claimResource type="pin" pin="QEA" polarity="Inp"></claimResource>
        </userAction>
        <userAction name="disable">
          <claimResource type="register" registerField="TQGATE" value="0"></claimResource>
        </userAction>
      </userControl>

      <userControl name="prescale">
        <dialogConfig type="CB" caption="Time Clock Prescale">
          <selection name="setTo0" value="1:1"></selection>
          <selection name="setTo1" value="1:8"></selection>
          <selection name="setTo2" value="1:64"></selection>
          <selection name="setTo3" value="1:256"></selection>
        </dialogConfig>
        <userAction name="setTo3">
          <claimResource type="register" registerField="TQCKPS1" value="1"></claimResource>
          <claimResource type="register" registerField="TQCKPS0" value="1"></claimResource>
        </userAction>
        <userAction name="setTo2">
          <claimResource type="register" registerField="TQCKPS1" value="1"></claimResource>
          <claimResource type="register" registerField="TQCKPS0" value="0"></claimResource>
        </userAction>
        <userAction name="setTo1">
          <claimResource type="register" registerField="TQCKPS1" value="0"></claimResource>
          <claimResource type="register" registerField="TQCKPS0" value="1"></claimResource>
        </userAction>
        <userAction name="setTo0">
          <claimResource type="register" registerField="TQCKPS1" value="0"></claimResource>
          <claimResource type="register" registerField="TQCKPS0" value="0"></claimResource>
        </userAction>
      </userControl>

<!-- timerPeriod is currently hardcoded and should not be present -->

      <userControl type="readOnly" name="timerFrequency">
        <dialogConfig type="general" caption="Baud Rate Error (%)"></dialogConfig>
        <userAction>
</userAction>
      </userControl>

      <userControl name="operateDuringIdle">
        <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" registerField="QEISIDL" value="1"></claimResource>
        </userAction>
        <userAction name="continueOnIdle">
          <claimResource type="register" registerField="QEISIDL" value="0"></claimResource>
        </userAction>
      </userControl>

      <userControl name="countDirectionControl">
        <dialogConfig type="CB" caption="Time Clock Prescale">
          <selection name="internalDn" value="Internal count down"></selection>
          <selection name="internalUp" value="Internal count up"></selection>
          <selection name="external" value="External count updown via UPDN pin"></selection>
        </dialogConfig>
        <userAction name="external">
          <claimResource type="register" registerField="UPDN_CNT" value="1"></claimResource>
          <claimResource type="register" registerField="UPDN" value="0"></claimResource>
          <claimResource type="pin" pin="UPDN" polarity="Inp"></claimResource>
        </userAction>
        <userAction name="internalUp">
          <claimResource type="register" registerField="UPDN_CNT" value="0"></claimResource>
          <claimResource type="register" registerField="UPDN" value="1"></claimResource>
        </userAction>
        <userAction name="internalDn">
          <claimResource type="register" registerField="UPDN_CNT" value="0"></claimResource>
          <claimResource type="register" registerField="UPDN" value="0"></claimResource>
        </userAction>
      </userControl>

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

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

    </userControlSubGroup>
  </userControlGroup>

</featureDefinitions>
