Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
подскажите, как быстрее всего инвертировать вывод порта (+)
Отправлено
йовжик
16 апреля 2008 г. 18:45
пока только так придумал, но медленно:
if(PINC.5 != 0) PORTC.5 = 0;
else PORTC.5 = 1;
Составить ответ
|
Вернуться на конференцию
Ответы
(+):
—
argus98
(16.04.2008 21:14:58
81.23.149.106
, 105 байт)
btg LATC.5 :-)))
—
Крок
(16.04.2008 22:52:46
91.77.198.207
,
пустое
)
Баян :)) -->
—
MBedder
(16.04.2008 21:57:0
80.92.96.19
,
пустое
,
ссылка
)
Не разглядел :) ветка какая-то сложная для глаза...
—
argus98
(16.04.2008 22:01:17
81.23.148.130
,
пустое
)
PORTC.5^=1;
—
ETM
(16.04.2008 18:52:37
62.117.85.103
,
пустое
)
PINC.5=1;
—
MBedder
(16.04.2008 18:51:47
80.92.96.19
,
пустое
)
PORTC.5++;
—
nut
(16.04.2008 18:47:40
83.171.74.213
,
пустое
)
Странно... все эти варианты (кроме нерабочего второго) медленнее моего в 3 ...{+}
—
йовжик
(16.04.2008 19:10:3
216.117.134.180
, 215 байт)
Ответ:Вот что сделал IAR
—
Тумблер
(16.04.2008 19:39:47
194.186.242.78
, 248 байт)
Ага, для ATMega8051 :))
—
MBedder
(16.04.2008 20:05:20
80.92.96.19
,
пустое
)
А во что скомпилил поглядеть не судьба?
—
OlegPowerC
(16.04.2008 19:18:40
91.103.152.238
,
пустое
)
листинг вот, но в асме я ноль, быстрее никак нельзя?
—
йовжик
(16.04.2008 19:42:2
216.117.134.180
, 430 байт)
:)) если хочешь писать действительно быстрые программы - прямая дорога в ассемблер
—
argus98
(16.04.2008 21:26:5
81.23.149.106
,
пустое
)
Можно, чип то какой?
—
OlegPowerC
(16.04.2008 19:45:2
91.103.152.238
,
пустое
)
мега 128
—
йовжик
(16.04.2008 19:59:20
216.117.134.180
,
пустое
)
Короче раз компилятор XOR = в такое Г привратил, либо вставить асм, либо менять компилятор
—
OlegPowerC
(16.04.2008 20:09:31
91.103.152.238
,
пустое
)
что вставить в асм? сишник я галимый :)
—
йовжик
(16.04.2008 20:22:22
87.118.102.154
,
пустое
)
Если хочеш быстро и не нужны флаги, то перенеси на бит 7, и делай PORTC = PORTC+128
—
VasilyS
(16.04.2008 20:40:8
80.92.96.25
,
пустое
)
нельзя перенести на 7...
—
йовжик
(16.04.2008 20:43:49
87.118.102.154
,
пустое
)
А камень поменять можно? на 1281 :-)
—
OlegPowerC
(16.04.2008 20:44:47
91.103.152.238
,
пустое
)
Мда, не быстрее, похоже так же
—
OlegPowerC
(16.04.2008 20:33:37
91.103.152.238
, 148 байт)
тады ладно, нельзя значит нельзя, всё равно спасибо!
—
йовжик
(16.04.2008 20:40:6
87.118.102.154
,
пустое
)
PORTC ^= (1 << 5); Будет 4 команды/4 такта - in tmp1,PORTC; ldi tmp2, 1 << 5; eor tmp1,tmp2; out PORTC,tmp1. Ну нету у АВР команды xori, нету! :))
—
MBedder
(16.04.2008 20:38:16
80.92.96.19
,
пустое
)
Это при условии что эти регистры не используются, а так еще 2x push и 2x pop
—
OlegPowerC
(16.04.2008 20:40:17
91.103.152.238
,
пустое
)
Дык на то и СИфилитики, шоб АСМатики хохотали :))
—
MBedder
(16.04.2008 21:55:28
80.92.96.19
,
пустое
)
Тогда уж и прерывания еще надо-бы запрещать
—
VasilyS
(16.04.2008 21:02:47
80.92.96.25
,
пустое
)
А теперь посмотри на листинг PINC.5=1; и утрись :))
—
MBedder
(16.04.2008 20:03:18
80.92.96.19
,
пустое
)
Да вроде нет этого в 128 меге
—
OlegPowerC
(16.04.2008 20:07:1
91.103.152.238
,
пустое
)
с мега128 не работает. вот что получается PINC.5=1; --- SBI 0x13,5
—
йовжик
(16.04.2008 20:20:6
87.118.102.154
,
пустое
)
Правильно - одна команда/один такт. В следующий раз выбирай нормальный МК, а не гавно мамонта - например, М1281/2561 - деньги те же, но функционал куда больше
—
MBedder
(16.04.2008 20:23:27
80.92.96.19
,
пустое
)
Для тупых, у которых второй вариант "нерабочий" - цитата из ДШ:
Writing a logic one to a bit in the PINx Register, will result in a toggle in the corresponding bit in the Data Register
—
MBedder
(16.04.2008 19:14:3
80.92.96.19
,
пустое
)
Не во всех AVR'ах вроде работает
—
OlegPowerC
(16.04.2008 19:17:21
91.103.152.238
,
пустое
)
Ну так я и не подписывался быть АБСОЛЮТНЫМ телепатом :))
—
MBedder
(16.04.2008 19:25:41
80.92.96.19
,
пустое
)
и главное - не тупой!
—
йовжик
(16.04.2008 19:28:19
216.117.134.180
,
пустое
)
Докажи :))
—
MBedder
(16.04.2008 19:34:37
80.92.96.19
,
пустое
)
эт я про тебя :) как я это докажу? вот телепат ты хреновый, доказано :))
—
йовжик
(16.04.2008 19:38:34
216.117.134.180
,
пустое
)
Докажешь после этого -->
—
MBedder
(16.04.2008 20:04:18
80.92.96.19
,
пустое
,
ссылка
)
в новых только
—
nut
(16.04.2008 19:22:29
83.171.74.213
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 38:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru