In my view, timer and counter are both ticked by signal pulses. Timer typically uses the internal periodic clock sources, while counter may record discrete internal or external events. For timer, a proper ratio is set to make a tick as a second. Of course, counter also may have some overflow settings. If timer and counter can invoke the core to run some operations, then they can run as watchdog. Otherwise, programs should look up those event registers from time to time.
Am I right?