Цитата(unichorn @ Jul 14 2006, 11:39)

Интересный подход. А остальная программа в момент приёма/передачи пакета ничего не делает.
PC.
Вафли ловит.
Да, ничего не делает, она сильно занята(:-)!
Отсюда вытекает интереснейший вопрос. Щас я его попробую сформулировать, может его надо бы в отдельную ветку вынести, чтобы не перегружать, ну да ладно.
Есть некая микроконтроллерная система, состоящая из нескольких МК, обменивающихся между собой, скажем по SPI. Как лучше сделать обмен, с точки зрения экономии производительности МК, по прерываниям или максимально быстрый программно-аппаратный обмен, как описано мною выше?
Поясню на примере, что имею ввиду. Хотим передать 128 байт. При программно-аппаратном обмене мы потеряем 16*128=2048 МЦ. При обмене по прерываниям мы должны учесть вызов прерывания, сохранение/восстановление временного регистра и статуса, возврат из прерывания, плюс такое же тело подпрограммы, если ничего не забыл, то получается не менее 22 МЦ (это если регистры указателей закреплены за данным прерыванием!). Все это надо делать для каждого байта, так что, в сумме будет 22*128=2816 МЦ на каждый обмен. Еще надо учесть, что прерывания должны следовать каждые 22 МЦ, значит максимальная скорость передачи будет ниже. чем при программно-аппаратном обмене! Да еще не забыть, что есть запасные 8 МЦ в каждом цикле, стоит ими грамотно распорядиться(:-). Конечно, экономия копеешная, но иногда ее так не хватает!
Вот такой философский вопрос по использованию и НЕ использованию прерываний где попало. Думайте сами, решайте сами, прерывать или не прерывать.
И еще, маленькая просьба, пжлст, не пишите РС, если нет подписи, это моветон, не обижайтесь. Okey-dokey?