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

 
 
> Как маскировать прерывания I2C в atmega128?, Нужно запрещать и разрешать прерывания I2C без изменения состояния FSM
Pechka
сообщение Jun 5 2013, 15:03
Сообщение #1


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

Группа: Свой
Сообщений: 144
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 210



Каким способом можно не меняя состояния конечного автомата I2C запретить или разрешить прерывание по I2C? Например, в одной из функций программы нужно на время запретить прерывание I2C (и только его!) а затем включить, но чтобы при этом не портить состояние конечного автомата? Через регистр TWCR портится состояние и обмен происходит с ошибками. Глобальным cli, sei не подходит - другие функции должны работать.
P.S. контроллер atmega128
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Артём_
сообщение Jun 5 2013, 15:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Pechka @ Jun 5 2013, 18:03) *
Каким способом можно не меняя состояния конечного автомата I2C запретить или разрешить прерывание по I2C?

Код
void disableTwiInterrupt()
{
TWCR=(1<<TWEN) | (1<<TWEA) |(0<<TWIE);
}



Цитата(Pechka @ Jun 5 2013, 18:03) *
Через регистр TWCR портится состояние и обмен происходит с ошибками.

Что именно портится? Каким образом меняете TWCR?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 03:44
Рейтинг@Mail.ru


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