AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.12.2014, 10:40
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от akegor
|
Проверка фиксированного бита и сдвиг каждый раз на один разряд. Содержимое байта, конечно, искажается сдвигом.
|
Все правильно. Поэтому (и для увеличения скорости, также) его предварительно нужно скопировать во временную переменную, и дальше работать с копией.
|
|
|
|
22.12.2014, 10:49
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от Boba_spb
|
Дело то как раз и темное - все зависит от m;
PHP код:
|
#define bit_get(p,m) (p & (1 ‹‹ m))
bit_get(PORTA,5) - сдвиги на этапе трансляции.
A вот
int m=5;
bit_get(PORTA,m) - сдвиги на этапе исполнения.
|
|
Так а я о чем? Все абсолютно ясно, что сдвиги на этапе исполнения будут выполняться дольше. У ТС количество сдвигов в цикле постоянно меняется (от 0 до 7). Поэтому будет генерироваться вызов функции сдвига на m.
PS: Кстати в вашем примере "умный" компилятор может заменить m на константу. Но я предпочитаю использовать свой собственный ум.
|
|
|
|
22.12.2014, 10:52
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от akegor
|
Содержимое байта, конечно, искажается сдвигом.
|
Это не содержимое искажается, это реальность искажается. Вместо того чтобы смело перейти на другую платформу, ввиду ступора и упора по быстродействию текущей, вы хором подсказываете как заниматься ананизмом левой ногой за правым ухом.
Кто там колхозит правой? Левой, левой!
|
|
|
|
22.12.2014, 11:00
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от STM32F0
|
Это не содержимое искажается, это реальность искажается. Вместо того чтобы смело перейти на другую платформу, ввиду ступора и упора по быстродействию текущей, вы хором подсказываете как заниматься ананизмом левой ногой за правым ухом.
Кто там колхозит правой? Левой, левой!
|
Ну да, сила есть, ума не надо. Переходить на новую платформу не разобравшись со старой? Да и потом, для перехода на новую платформу должны быть достаточно веские причины. Переход может потребовать дополнительных затрат: времени, денег... Или нет?
|
|
|
|
22.12.2014, 11:10
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от Bill
|
для перехода на новую платформу должны быть достаточно веские причины.
|
Причины для перехода всегда найдутся, даже перечислять нет смысла.
А вот топтание на месте действительно обусловлено причинами, как правило психологического характера, граничащих с фобиями.
Цитата:
|
Переход может потребовать дополнительных затрат: времени, денег... Или нет?
|
В итоге всё окупается. Или нет?(С)
Последний раз редактировалось STM32F0; 22.12.2014 в 11:12.
|
|
|
|
22.12.2014, 11:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от Bill
|
PS: Кстати в вашем примере "умный" компилятор может заменить m на константу. Но я предпочитаю использовать свой собственный ум.
|
Я тоже в таких случаях не полагаюсь на С ![Весело](images/smilies/icon_laugh.gif)
Например, на AVRке для динамического управления строчкой 16*256 RGB с мультипликсированием 4 писал что-то типа этого, где и мигание реализуется и фон и цвет.
PHP код:
|
.if panel == XX
indik:
push r16
push r17
push r18
push r19
push r20
push r21
push r22
push XL
push XH
ldi XL,low(bitmap)
ldi XH,high(bitmap)
lds r18,flag_blank
ind_:
lds r16,number_string
tst r16
brne ind1
ind0:
ldi r16,width_string/8
ind0_b:
push r16
ldi r16,8
ind0_:
ld r20,x+
ld r21,x+
sbrs r18,4
clr r20
sbrs r18,0
clr r21
lds r19,op0+op_BackColor
sbrc r20,4
lds r19,ForeColor+4
lds r22,op1+op_BackColor
sbrc r21,4
lds r22,ForeColor+12
swap r22
or r19,r22
out PORTA,r19
sbi P_CLK,B_CLK
cbi P_CLK,B_CLK
dec r16
brne ind0_
sbiw xh:xl,16
ldi r16,8
ind0_0:
ld r20,x+
ld r21,x+
sbrs r18,4
clr r20
sbrs r18,0
clr r21
lds r19,op0+op_BackColor
sbrc r20,0
lds r19,ForeColor
lds r22,op1+op_BackColor
sbrc r21,0
lds r22,ForeColor+8
swap r22
or r19,r22
out PORTA,r19
sbi P_CLK,B_CLK
cbi P_CLK,B_CLK
dec r16
brne ind0_0
pop r16
dec r16
brne ind0_b
jmp ind_ex
;----
|
Вполне шустренько все работает Atmege128
|
|
|
|
22.12.2014, 11:58
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от Boba_spb
|
в таких случаях не полагаюсь на С
|
Первый звонок из шестой палаты, что нужно переходить на другую платформу, иначе вынос мозга вместе с телом.
|
|
|
|
22.12.2014, 12:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от STM32F0
|
Первый звонок из шестой палаты, что нужно переходить на другую платформу, иначе вынос мозга вместе с телом.
|
Обитателям палаты №6, можно не беспокоиться. Из AVR лет за 8 выжали все и давно перешли на STM32.
|
|
|
|
22.12.2014, 12:19
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от STM32F0
|
В итоге всё окупается.
|
Вполне возможно. Я вот пока всерьез хочу заняться STM8. Но это для себя. Тем более, что для решения простеньких задач его вполне хватает. Когда-нибудь это и окупится. А что касается STM32, то мне приглянулся STM32F051. Думаю, в будущем он мне тоже пригодится.
|
|
|
|
22.12.2014, 12:29
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Подскажите более скоростной вариант?
Сообщение от Bill
|
вот пока всерьез хочу заняться STM8. Но это для себя.
|
Круто повёрнуто! А несколько прошедших лет - это была "игра"? А малява СТМ-щикам?
Мы же не злопамятные, у нас все ходы записаны.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:12.
|
|