Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Инверсия двух лапок AVR за один такт?
Отправлено
Rud (93.81.204.109) 26 января 2010, г. 11:26
На SPI два девайса, надо переключать CS. Причём ОЧЕНЬ хочется, чтобы при включении одного девайса, второе автоматически отключалось. Дабы не поиметь казы на линии.
Пока в голову приходит одно:
#define FLASH 4
#define MODULE 1
#define DISABLE(x) PORTD |= (1<<x)
#define ENABLE(x) PORTD &= ~(1<<x)
Ну и юзать DISABLE(FLASH); ENABLE(MODULE);
Быстро, но не одновременно...
А как сделать, чтобы была инверсия?
ПС. Конечно можно накидать функцию со свичём, но это не по пацански...
Составить ответ | Вернуться на конференцию
Ответы
- Можно битами принудительной установки выходных битов в таймерах FOCn. - Quasy (26.01.2010, 12:07:49 192.168.0.207,80.243.9.34, пустое)
- Cчитываешь состояние порта. Правишь в нём нужные биты и заливаешь его обратно. - Trashy (26.01.2010, 11:54:29 192.168.2.39,213.167.60.22, пустое)
- А так не прёт ? - miv (26.01.2010, 11:51:6 195.177.121.139, 212 байт)
- Хотя если чесно ! То за один такт ваще не возможно ! В моём примере это три такта, думаю что быстрее ваще низя ! - miv (26.01.2010, 11:57:25 195.177.121.139, пустое)
- Дык главное не за один такт, а одновременность... Раньше вон вообще изощренностью начинки портов не баловали - приходилось держать в памяти переменную для хранения состояния выходов. И ничего - работало ;) - Гудвин (26.01.2010, 12:08:30 78.138.168.169, пустое)
- Гы ! В вопросе звучит ОДИН такт ! А одновременность в моём варианте гарантирована. - miv (26.01.2010, 12:37:23 195.177.121.139, пустое)
- Неверно выразился. Важен не один такт, а исключение одновременного появление 1 на обоих CS. Есл...{+} - Rud (26.01.2010, 13:07:57 93.81.204.109, 285 байт)
- Помоему так: - Trashy (26.01.2010, 13:52:6 192.168.2.39,213.167.60.22, 270 байт, ссылка)
- Ошибко: - Trashy (26.01.2010, 13:56:5 192.168.2.39,213.167.60.22, 83 байт)
- OUT PINx, Rx - для тех AVR, где есть функция "Toggling the Pin" - argus98 (26.01.2010, 11:40:22 81.22.205.230, пустое)
- Надо было чипселекты на один порт разводить. - Trashy (26.01.2010, 11:31:43 192.168.2.39,213.167.60.22, пустое)
- А что, щас в АВР вывод в порт упразднили? Оставили только побитный? - Гудвин (26.01.2010, 11:30:57 78.138.168.169, пустое)
- поставьте на выходе транзистор :) и инвертируйте им ... - UraGun (26.01.2010, 11:28:59 188.163.64.194, пустое)