Здравствуйте. Программа по запросу с Мастера должна передать по 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
|