Я что-то похожее делал в составе проекта.
У меня вывод на индикатор с 8531 из буфера в памяти 128х32.
Несколько раз в секунду обновление экрана.
Для старта вывода
Код
void start(void)
{
I20CONCLR = 0xFF;
I20CONSET= 0x40;
I20CONSET|= 0x20;
}
Затем вся процедура вывода идет внутри прерывания И2С
В Вашем случае я бы выставил флаг если возникло прерывание от часов и опрашивал бы его где-то в теле программы.
Если при опросе "1", то старт передачи по И2С.
Можно еще определить прерывание от И2С как более приоритетное. И еще можно сделать программно вложенные прерывания с опросом приоритета.
Примерно так, если я Вас правильно понял.
Модератор. Из сообщения удалено ненужное в данном случае цитирование.