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

 
 
> Помогите добить TWI, Или он добьет меня
ingord
сообщение Jan 5 2008, 23:45
Сообщение #1


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

Группа: Свой
Сообщений: 86
Регистрация: 18-09-07
Пользователь №: 30 627



Здравствуйте! Две AtMega, одна - Master, другая Slave. За основу взял программу на Си, предложенную, не соврать бы, haker fox'ом. Slave корябаю сам. TWI аппаратный. Проблемы:
1. При формировании Master'ом СТАРТ прерывания у Slave возникают на каждый второй запуск. Т.е., первый СТАРТ прошел (импульсы на шинах проскакивают, пробовал менять их длительнсть в широких пределах) - прерывания нет, на второй СТАРТ прерывание возникает, на третий - тишина, четвертый - есть и т.д.
2. При формировании СТАРТ код статуса Master не равен 0х08.
Ну а дальше не смотрел. Добиться бы для начала хоть СТАРТ правильно делать.
Помогите, кто может.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ingord
сообщение Jan 9 2008, 21:14
Сообщение #2


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

Группа: Свой
Сообщений: 86
Регистрация: 18-09-07
Пользователь №: 30 627



Рассказываю по порядку. Программу мастера взял готовую от хакер фокса из темы "Исходники..." -самая верхняя тема подфорума AVR. Добавил только
#pragma interrupt_handler int3_isr:5
void int3_isr(void)
{
i2c_start();
}
void main(void)
{
while (1)
asm ("sleep");
}

По внешнему сигналу на INT3 на шину выдается старт.
У слейва выкинул уже все, оставил только инициализацию и
#pragma interrupt_handler twi_isr:18
void twi_isr(void)
{
PORTB = ~PORTB;
}
Т.е при возникновении прерывания порт B меняет свое состояние (чтобы отследить по светодиодам).
Светодиоды гаснут(засвечиваются) на каждую вторую команду мастера при срабатывании INT3. При этом код статуса у мастера не равен 0х08, т.е. старт не отработан.
Go to the top of the page
 
+Quote Post



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

 


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


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