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

 
 
> как бы реализовать условие?
naskar
сообщение May 17 2011, 10:45
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 14-01-11
Пользователь №: 62 219



Здравствуйте. Программа по запросу с Мастера должна передать по SPI данные другому МК, но разрешенное временя на ожидание передачи ограничено. О говности Подчиненного к передаче сигнализирует соотв.уровень на линии порта С.
1. Запускается 16 разр. счетчик
2. Выставляем сигнал готовности
3. Ожидается запрос на передачу
4. Если запрос не произошел в течение периода пока счетчик не насчитал допустим 100 -> Конец подпрограммы.
5. Если пришел запрос в разрешенном интервале -> передача 3 байта данных -> Конец подпрограммы.
В общем вопрос такой - как организовать такой условный переход? МК mega48.
привожу отрывок программы:

void SPI_Transmit(unsigned long data)
{
SPDR=(unsigned char)(data>>16);
while(!(SPSR&(1<<SPIF)));
SPDR=(unsigned char)(data>>8);
while(!(SPSR&(1<<SPIF)));
SPDR=(unsigned char)data;
while(!(SPSR&(1<<SPIF)));
};

...
Запуск таймера;
...
ClearBit(PORTC,PORTC1); // transmit ready
SPI_Transmit(narabotka);
SetBit(PORTC,PORTC1); // busy
return;
};
...

Прошу прощения, написал не совсем в тему, прошу переместить в AVR.

Сообщение отредактировал naskar - May 17 2011, 10:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение May 19 2011, 06:12
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Это означает, что процесс монопольный?
Т.е. можно ждать тайм-аута без риска задержать обработку других событий?
Go to the top of the page
 
+Quote Post
zombi
сообщение May 19 2011, 06:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(_Pasha @ May 19 2011, 09:12) *
Это означает, что процесс монопольный?
Т.е. можно ждать тайм-аута без риска задержать обработку других событий?

Если я правильно понял, то TS именно об этом и пишет: ->Конец подпрограммы
Цитата(naskar @ May 17 2011, 13:45) *
4. Если запрос не произошел в течение периода пока счетчик не насчитал допустим 100 -> Конец подпрограммы.
5. Если пришел запрос в разрешенном интервале -> передача 3 байта данных -> Конец подпрограммы.
Go to the top of the page
 
+Quote Post



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

 


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


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