реклама на сайте
подробности

 
 
> Есть ли какой-нибудь универсальный алгоритм работы по TWI (I2C)?
Glupen'
сообщение Nov 21 2010, 20:40
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



Задача такова: на шине TWI меги16 висят часы DS1307 и термометр DS1621.
1)Чтение времени из часов идет постоянно - раз в 1секунду,
2)запись-установка времени - по моему желанию.
3)Команда "измерить Т" дается 1 раз в 10 секунд,
4)чтение температуры - 1 раз в 10секунд.
Эти четыре пакета, могут накладываться по времени. Как бы правильно организовать "ОЧЕРЕДЬ" пакетов с какими-нибудь указателями/буферами в области памяти, где лежат передаваемые данные и куда складывать принимаемые. Чтоб контроллер сформировал очередной пакет, поставил в "очередь" и...
а дальше два варианта:
- забыл о пакете, а потом использовал данные из памяти, которые "автоматически" обновились во время приема,
- прочитав какой-нибудь "статус", увидел, что пакет обработан или нет.

работа с шиной TWI должна быть в прерывании по "TWI завершение очередного действия", чтоб не останавливать работу.

Хорошо бы, чтоб алгоритм был расширяем на много устройств, был универсальным.

Для этих четырех пакетов, (их вид фиксирован), я написал, но получилось громоздко и коряво, с кучей проверок флагов, хотя работоспособно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016