Страница 1 из 1

I2C+OS

Добавлено: Пн май 15, 2017 12:01:42
pokk
Добрый день, понадобилось портировать свой проект на другую плату, а там половина мелкой периферии(кнопки термодатчики, дисплей) сидит все на I2C, и все должно гарантированно работать, после замыкания размыкания линии.

Так вот из за этого решил сделать для диспетчер для I2C, который будет запускать все процессы периферии касательно I2C и обрабатывать аварии. Так как периферии много и вложений функций больше 3-4 решил сделать во время ожидания флагов I2C выход с сохранением адреса возврата.

Вначале функции поставил переход на адрес ожидания флагов, а само ожидание сделал так:

Код: Выделить всё

SAVE_CONTENT();
NOP;
while(condition){
//NOP или действия
return OS_WORK;
}
Для одной функции всего работает, но вот как появились вложения, то там сразу все повисло из за того что миную вход в функцию,а выход есть.Пока думаю в сторону что бы выход происходит все время в диспетчер,а он там сам разгребался.
В общем, какое то мутное представление всего, как это выглядит правильно ?