This will not work, because your 'timing' variable is a local dynamic variable, that will be newly created and set to 0 with every call to led_blink. You must define this as a static variable.
static unsigned long timing = 0;
This will not work, because your 'timing' variable is a local dynamic variable, that will be newly created and set to 0 with every call to led_blink. You must define this as a static variable.
static unsigned long timing = 0;