Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.02.2013, 16:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
Сообщение от miwutka
|
изза чего жэ тогда может так начинать тормозить МК? как думаете? Если я свои 4 кейса заменяю на 4 for'а(и это все в прерывании которое срабатывает каждые 200 мкс, частота 16 МГЦ ядра) то всё тормозит, а отображение на ЖК выводится спустя минуту ))
|
Тормозить может токо от кривой программы.
Вот Вам кусочек вашего цикла обнуления чего то там написаное на АСМе для Атмеги128 на 16МГц.
Это 54 микросекунды.
СИ все это напишет гораздо кривее.
Встаньте "мутным глазом" на Clock и синхронизирйтесь от Latch и посмотрите сколько времени съедаете на прерывание - что то мне кажется что будет некоторое удивление .
|
|
|
|
20.02.2013, 16:50
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
Сообщение от Boba_spb
|
Это 54 микросекунды.
СИ все это напишет гораздо кривее.
|
Ну не "гораздо"... Вечером проверю и дам точный результат.
|
|
|
|
20.02.2013, 17:04
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
Сообщение от Boba_spb
|
Тормозить может токо от кривой программы.
|
Собственно, возразить нечего. Для примера на ATMega640 - 11.059 я делаю кластер бегущей строки разрешением 72 * 16 светодиодов с 16 градациями яркости. Это 1152 светодиода. Регенерация 60 Гц. При этом вывожу текст и графику. В смысле мультики. Всё это на чистом Си.
|
|
|
|
20.02.2013, 17:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
Что такое 1000 диодов ?
Вот 320 Х 80 Х 3 - полноцвет на то же Атмега128.
|
|
|
|
20.02.2013, 17:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
а можете массив дополнить хотябы тремя символами, ну как там записать их в массиве к примеру.
symbol[30][3]
*ptr = &symbol[sym]
Почему массив двумерный, а указатель указывает на одномерный? Как понять объясните плиз. и где sym задаеться ?
|
|
|
|
20.02.2013, 18:01
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
Напишу ... только поздно
|
|
|
|
20.02.2013, 18:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
ну да много, но как тогда правильнее сделать? У меня 12 регистрой подключенных последоательно. На первых 4-ех вывод столбика на светодиодах, на вторых 4-ех - тоже самое ток другое значение, (это 8 регистров), 9-ый зажигает нужные сегменты у семсегментников, 10,11,12-ые зажигают нужную цыфру у индикаторов.Индикаторы по 3 цыфры, отображают разные значения. Ну и это все каждые 200 мкс. это всё я и разделил на 4 кейса. И как ток заменяю один кейс на оператор for сражу переключение жк по кнопке происходит с опозданием 3-5 сек. Подскажите хотябы как правильнее это сделать плиз..... Я понимаю что каряво написал, вот и прошу помощи...
|
|
|
|
20.02.2013, 18:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
miwutka, нарисуйте все на бумаге, со слов мало что понятно. Крайне желательно использовать таймеры. Там проще реализовать программный шим, что даст еще и регулировку яркости.
|
|
|
|
20.02.2013, 18:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
но как тогда правильнее сделать? У меня 12 регистрой подключенных последоательно. На первых 4-ех вывод столбика на светодиодах, на вторых 4-ех - тоже самое ток другое значение, (это 8 регистров), 9-ый зажигает нужные сегменты у семсегментников, 10,11,12-ые зажигают нужную цыфру у индикаторов.Индикаторы по 3 цыфры, отображают разные значения. Ну и это все каждые 200 мкс. это всё я и разделил на 4 кейса. И как ток заменяю один кейс на оператор for сражу переключение жк по кнопке происходит с опозданием 3-5 сек. Подскажите хотябы как правильнее это сделать плиз..... Я понимаю что каряво написал, вот и прошу помощи...
|
|
|
|
20.02.2013, 19:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: НС595 - помогите оптимизировать код
for (i2=0;i2‹=31;i2++)
{
if (i‹=Number) DATA=0; else DATA=1;
CLK=1; CLK=0; //32 Спидометр
};*/
этот код выполняеться на много дольше чем
switch (Number)
{
case 0:
DATA=0; CLK=1; CLK=0; //32
break;
.....
case 32:
.......
break;
};
ПОЧЕМУ?.....
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:52.
|
|