Hi thanks for below. All clear and all useful.

Regards,

Roland.




Wolfgang Grandegger wrote:
> Roland Tollenaar wrote:
>> Hello,
>>
>> I have three questions I would like to pose here.
>>
>> 1-Is it possible to subdivide a task to control at what time a certain 
>> command is executed within the task? Example: I have a 1ms task. I 
>> send a CAN sync message at the beginning of the task but I would like 
>> to wait about 300us before performing a read to ensure that all the 
>> messages emitted as a result of this sync have come in. Now I will 
>> have an odd 700us to use the data that has come in to calculate 
>> outputs. However I want the output to be put out as close as possible 
>> to the end of the task time. Is there an elegant manner to delay the 
>> read and the write to give me this kind of control within a taks. If 
>> not any suggestions as to how I should tackle this.
> 
> The task timing services allow to suspend and then resume the task at a 
> defined time, either by specifying a releative delay or an absolute 
> time, e.g. rt_task_sleep() and rt_task_sleep_until() for the native skin.
> 
>>
>> 2-For development I am still using the PEAK CAN dongle. We have 
>> establisched that the ISR responding to an incoming message interrupt 
>> takes 200us to complete. Is anything known about how long it takes 
>> before a message that has been sent is put on the bus? How does this 
>> happen? Reason I ask is to know what kind of variance I can expect in 
>> time between the moment I send the output values and the moment it is 
>> on the bus. If there are routines between those to points that allow 
>> themselves to be pre-empted or for some other reason have varying 
>> execution times my control performance will be badly degraded.
> 
> Reading, but also writing a byte to the port register task time. I 
> think, that setting up a message for transmit takes as much time as 
> reading it. Writing is also done with interrupts disabled.
> 
>> 3-How do I interpret the relative time stamps that can be made visible 
>> with rtcanrev ? IS the time indicated the time between each message 
>> and the last time the message was posted? Or between the message and 
>> its direct predecessor?
> 
> The latter one if the option "-R" was used:
> 
>   $ rtcanrecv -h
>   ...
>     -T, --timestamp       with absolute timestamp
>     -R, --timestamp-rel   with relative timestamp
> 
> Note that the timestamp is added in the ISR.
> 
> Wolfgang
> 

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to