Hi TW
I think that I can explain this. It is due to the task configuration:
If you look in the task configuration table (in TaskConfig.h) you will see entries like:
{ "ARP", fnTaskArp, MEDIUM_QUE, (DELAY_LIMIT)(0.05 * SEC), 0, UTASKER_STOP},
{ "Eth", fnTaskEthernet, (HEADER_LENGTH * 12), (DELAY_LIMIT)(0.05 * SEC), 0, UTASKER_STOP},
and
{ "app", fnApplication, MEDIUM_QUE, (DELAY_LIMIT)(0.10 * SEC), 0, UTASKER_STOP},
etc.
These tasks are started with a delay.
The problem is that if you increase TICK to above 50ms it will cause some values to become zero:
(DELAY_LIMIT)(0.05 * SEC) == 0.05 * ( 1000 / TICK_RESOLUTION ) == 0.5
This requires half a TICK and DELAY_LIMIT is an integer value, which rounds down to 0. The task(s) will never start and so you will have no Ethernet - for example.
Note that when using routines like uTaskerMono() it is not that serious since the routine will interpret a zero value as a single TICK - it will thus at least get a delay, although rounded up in this case. In the task table, the compiler decides and so if a delay is rounded down to zero it can not be caught. This means that when increasing TICK_RESOLUTION also the possible impact on the task configuration (as well as the general resolution of the SW timers in the project) need to be considered.
In your case (when you want to use quite large values), a simple ways around this is to declare the start up delays directly in TICKs rather than in SEC.
The start up time will be a bit slower but the system will still be started in an ordered manor with no risk of difficulties when TICK_RESOLUTION is further increased.
{ "ARP", fnTaskArp, MEDIUM_QUE, 1, 0, UTASKER_STOP}, // delays specified in TICKs
{ "Eth", fnTaskEthernet, (HEADER_LENGTH * 12), 1, 0, UTASKER_STOP},
{ "app", fnApplication, MEDIUM_QUE, 2, 0, UTASKER_STOP},
etc.
Regards
Mark