Touch interrupts

  • Hello,


    I've an NetDCU10 with an discharged IO-Board which is connected over can. I' ve two threads each to toggle one Output.
    The first thread has a priority of 94 and toggle a local dout on the NetDCU. The second thread toggle an output on the IO-Board over can. Both have a toggle time of 10ms.
    By operating the display, the thirst thread operates with no interrupts. But the second has an interrupt of around 90ms.
    Has the touch-driver the heigher priority as the can-driver? What does the touch-driver, that he interrupt the can driver for so long?


    Thanks for your help.


    Regards

  • The default priority of the Touch driver is 109. The Priority of the CAN driver is 103, so that traffic on the CAN bus should be handled independent from the touch driver in principle. But please try to adjust the priority of the CAN interface to a higher one. This can be done in registry :

    Code
    1. [HKLM\Drivers\BuiltIn\CAN<2/3>]
    2. Priority256=dword:<Priority>


    Does the behaviour change in this case?
    Your second thread, "feeding" the CAN interface is also running at priority 94?

    Software developer, F&amp;S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Yes, I've set the can priority to 99 and the behaviour is changed. Both toggle are now not interrupted through the touch.
    After that, I've set one threads priority to 108 and the other threads priority to 110. If the touch priority will be 109, one toggle would by interrupted and this one with the priority 108 not. The result was, that both were interrupted. I've reducing the priorities until one thread was not interrupted. So I expect, that the touch priority is 102. This will be also the reason why the touch interrupted the can thread with the priority of 103. I tried to change the priority of the touch, but my registry has no key "touch" under "HKEY_LOCAL_MACHINE\DRIVERS\BUILTIN\". When I create this key with the priority dword the system doesn't incur the value.
    In your driver documenation has the priority key of the touch the following comment:


    Set this value to adjust the priority of the touch panel driver.


    What means that? Is there a second possiblity to set the priority?


    One click on the touch cause two interrupts of 100ms each with a gap of 50ms. What does the driver in the pretty long time?

  • Quote


    Set this value to adjust the priority of the touch panel driver.
    What means that? Is there a second possiblity to set the priority?


    No, there is no other way to change the priority. But If not defined the default values will be used.

    Quote

    One click on the touch cause two interrupts of 100ms each with a gap of 50ms. What does the driver in the pretty long time?


    The touch driver will sample the current position on the screen several times. Depending on the "TouchSamples" value configured in registry this of course may take some time. But when touching on the screen I do not think that only the touch driver will interrupt some lower threads. Even windows itself must handle this event and maybe perform some additional actions (modify display content,...).
    How did you meassure these values?


    The touch driver has two priorities. It should be possible to adjust the priority of the touch driver via registry (see <!-- m --><a class="postlink" href="http://msdn.microsoft.com/en-us/library/aa931494.aspx">http://msdn.microsoft.com/en-us/library/aa931494.aspx</a><!-- m -->).

    Code
    1. [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Touch]
    2. "Priority256"=dword:89
    3. "HighPriority256"=dword:79


    According to the latest source and the default value should be 109. By the way: Which kernel version are you using?

    Software developer, F&amp;S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Quote

    How did you meassure these values?


    I toggle an output and showed this with the KO. By operating the display, the toggle signal is interrupted.


    Quote

    Which kernel version are you using?


    I work with Version 1.30.


    I' ve just found out, that the priority of the touch driver is really 109. But it looks like this task call an other one with the priority 102.
    Have you got any ideas which task this could by?
    The system has only one thread with the priority of 109. When i change the priority of the touch driver, this thread changes his priority. But the can is interrupted as long as his priority is bigger than 102. When I'm operating the system with the mouse, the can isn't interrupted.