Ассемблерный сдвиг
23.08.2012, 22:05
|
|
|
Гражданин KAZUS.RUN
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Ассемблерный сдвиг
во первых, где сказано двигать биты по кругу? сам придумал?
во вторых, добавляем к фифо граничные/буферные байты и ничего не надо предварительно грузить.
PS и поосторожнее с лопатой, тебя видимо уже зацепило
|
|
|
|
23.08.2012, 22:11
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от dosikus
|
|
А это не само собой подразумевалось?
|
Как видишь не для всех...
Сообщение от Hives
|
|
PS и поосторожнее с лопатой,
|
http://lurkmore.to/%D0%9B%D0%BE%D0%BF%D0%B0%D1%82%D0%B0
|
|
|
|
23.08.2012, 22:14
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от omercury
|
|
Как видишь не для всех...
|
Если сработает естественный отбор , может оно и к лучшему ?
__________________
Осторожно , злой кот
|
|
|
|
23.08.2012, 22:53
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Ассемблерный сдвиг
Последний раз редактировалось omercury; 23.08.2012 в 22:57.
|
|
|
|
23.08.2012, 23:33
|
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от serj_neo
|
Моргает изображение.
Индикация динамическая. Да и мега 8, а там памяти мало.
|
Если картинка не успевает подготовиться за время свечения одной строки, то сделайте двойную буферизацию. В первом буфере вы будете рисовать изображение вашей строки, второй буфер будет содержать данные в том виде в котором они непосредственно уходят в модули. Поверьте, сразу намного легче станет. И если табло сколь-нибудь серьезное, а не поиграться, то взять камень с памятью поболее, хотяб М32. У М8 мозги быстро кончаются на такое дело.
Да и не забывать про синхронизацию обновления буферов. Выходной буфер может быть обновлен только тогда, когда закончен вывод текущего кадра. Иначе вы получите интересные эффекты в виде подергивания картинки.
|
|
|
|
24.08.2012, 00:25
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,744
Сказал спасибо: 416
Сказали Спасибо 1,236 раз(а) в 550 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от serj_neo
|
|
Это видеобуфер ЛЕД панели 12 модулей 16х16 светодиодов.
|
А такие микры не брались в рассмотрение HT1632C продавец
|
|
|
|
24.08.2012, 07:43
|
|
|
Временная регистрация
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от uk8amk
|
Если картинка не успевает подготовиться за время свечения одной строки, то сделайте двойную буферизацию. В первом буфере вы будете рисовать изображение вашей строки, второй буфер будет содержать данные в том виде в котором они непосредственно уходят в модули. Поверьте, сразу намного легче станет. И если табло сколь-нибудь серьезное, а не поиграться, то взять камень с памятью поболее, хотяб М32. У М8 мозги быстро кончаются на такое дело.
Да и не забывать про синхронизацию обновления буферов. Выходной буфер может быть обновлен только тогда, когда закончен вывод текущего кадра. Иначе вы получите интересные эффекты в виде подергивания картинки.
|
Спасибо за подсказку но в данном проекте это не требуется.
Всё поместилось и управляется по RS485.
|
Сообщение от Hives
|
во первых, где сказано двигать биты по кругу? сам придумал?
во вторых, добавляем к фифо граничные/буферные байты и ничего не надо предварительно грузить.
|
Нужно было быстро сделать сдвиг изображения на один бит, и не по кругу.
Так как после сдвига например влево, необходимо вычислить вертикальную строчку нужного символа, которую и вывести в самый конец буфера.
вот код который собственно всё это делает:
|
Код:
|
#define Modules 12 //количество модулей
unsigned char Buf[16][24];//буфер в озу
//передаётся строка которую надо вывести,В какую сторону двигать
void LED_SHIFT(unsigned char * str,unsigned char mode)
{
volatile unsigned int i,a=0;
cli();
if (mode)
{
//получаем по индексу в строке, вертикальный столбик
a = Get_Stolbik_for_Shift(str,index);
asm volatile (
"ldi R30,lo8(Buf) \n"
"ldi R31,hi8(Buf) \n"
"ldi R19,128 \n"
"ldi R20,2 \n"
"clc \n"
"Cycle2: \n"
"ld R25,Z \n"
"ror R25 \n"
"st Z+,R25 \n"
"dec r19 \n"
"brne Cycle2 \n"
"dec r20 \n"
"brne Cycle2 \n"
); //Выводим в начало буфера полученный столбик
if(--index == 0)index = lenght-1;
for(i=0;i‹16;i++)
{
if(a & 0x8000)Buf[i*Modules*2] |= 0x80;
else Buf[i*Modules*2] &= ~0x80;
a ‹‹= 1;
}
}
else
{
a = Get_Stolbik_for_Shift(str,index);
asm volatile (
"ldi R30,lo8(Buf+384) \n"
"ldi R31,hi8(Buf+384) \n"
"ldi R19,128 \n"
"ldi R20,2 \n"
"clc \n"
"Cycle: \n"
"ld R25,-Z \n"
"rol R25 \n"
"st Z,R25 \n"
"dec r19 \n"
"brne Cycle \n"
"dec r20 \n"
"brne Cycle \n"
);
if (++index ›= lenght)index = 0;
for(i=1;i‹17;i++)
{
if(a & 0x8000)Buf[i*Modules*2-1] |= 0x01;
else Buf[i*Modules*2-1] &= ~0x01;
a ‹‹= 1;
}
}
sei();
} |
|
Сообщение от anatol378
|
|
А такие микры не брались в рассмотрение HT1632C продавец
|
Мы сами не собирали эти модули. Так сказать это часть китайского информационного табло для ледового дворца.
В общем делаю матчконтроллер на stm32 а управление табло на mege8, и ещё в пределах ледового дворца раскиданны восемь pic1822(всякие часы,фонари в воротах).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Сдвиг фаз при помощи ЦОС
|
lexa1000 |
Цифровые сигнальные процессоры |
11 |
05.04.2013 15:12 |
|
Сдвиг в тестбэнче
|
Aleksashka1 |
Микроконтроллеры, АЦП, память и т.д |
1 |
17.01.2011 16:26 |
|
Выбор, включение, модуляция, сдвиг и выключение
|
majorka65 |
Микроконтроллеры, АЦП, память и т.д |
1 |
26.05.2010 19:34 |
|
Сдвиг сигнала, почему?
|
Gonchar |
Микроконтроллеры, АЦП, память и т.д |
11 |
24.05.2010 23:42 |
|
Как или чем определить фазовый сдвиг
|
Online |
Измерительное оборудование |
19 |
06.11.2006 15:12 |
Часовой пояс GMT +4, время: 15:56.
|
|