AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
23.07.2015, 14:01
|
#31
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от akegor
|
Поменяйте, наконец, понятия на традиционные: "сегмент" это часть "знака" или "цифры", а то, что Вы обзываете "сегмент", называется "разряд" или "знакоместо".
|
Хорошо.Учту
|
|
|
|
23.07.2015, 14:38
|
#32
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от Yurkin2014
|
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
и тогда строчки с "if (i==0){return;}" совсем не нужны будут.
|
Сейчас вспомнил зачем я эти строки if (i==0){return;} туда влепил. Что бы контроллер время не терял. Если получил ноль ,то и не фиг делать больше в этой функции. Я думаю правильно. Но уходит обЪем пзу
|
|
|
|
23.07.2015, 15:43
|
#33
|
Заблокирован
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от ARTEM277
|
Что бы контроллер время не терял.
|
Задумка интересная.
Только вот что. В среднем на "0" заканчиваются 10% чисел, на "00" заканчивается 1% чисел, на "000" - 0.1% и т.д. В остальных 89% случаев преждевременного выхода по нулю не будет, и контроллеру придётся в каждом цикле делать лишние сравнения "if (i==0)", что значительно увеличит время цикла.
Так, что никакого выигрыша по времени тут не получится, а как раз наоборот - одни потери.
|
|
|
|
23.07.2015, 15:56
|
#34
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,485
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от ARTEM277
|
Но уходит обЪем пзу
|
Да что вы так переживаете за объемы то. То ПЗУ, то ОЗУ, то время выполнения... ну что там, ну 8 кБ ПЗУ и 512 Б ОЗУ, ну для нужд таймера-мигалки - ну мало чтоль?
Да этого объема хватит, чтобы замутить графический ЖК-дисплей 128*64 с менюшкой и управление через радиомодуль.
Про BCD-преобразование для индикации во время счета таймера: в принципе, сотые доли секунд (десятки миллисекунд) можно не расчитывать, один фик младшая цифра вовремя счета будет выглядеть в виде сплошной "8". Поэтому, период расчета и обновления данных для дисплея можно увеличить в 10 раз - до 100 мс, расчитывая только до 0,1 с.
Дополнения к принципу индикации:
можно немного улучшить вид отображения, убрав старшие незначащие нули. То есть, показывать число не "001.25", а "1.25". Делается это очень просто. Уже после BCD-преобразования непосредственно перед отображением цифры, проверяются значащие разряды (кроме разрядов единиц и дробных) на равенство 0. Если разряд сотен или десятков =0, то все сегменты цифры на этом знакоместе гасятся.. Разряд единиц и разряды дробных цифр после запятой разумеется на =0 не проверяются.
Не нужно бояться, что это действие отнимет сколько-то байт ПЗУ или несколько шагов процессорного времени. В конце концов, возможности МК для того и сделаны, чтобы воплощать свои задумки, не стесняясь напрячь МК работой.
Последний раз редактировалось NewWriter; 23.07.2015 в 17:53.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
24.07.2015, 06:41
|
#35
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от NewWriter
|
Но уходит обЪем пзу
Да что вы так переживаете за объемы то. То ПЗУ, то ОЗУ, то время выполнения... ну что там, ну 8 кБ ПЗУ и 512 Б ОЗУ, ну для нужд таймера-мигалки - ну мало чтоль?
Да этого объема хватит, чтобы замутить графический ЖК-дисплей 128*64 с менюшкой и управление через радиомодуль.
|
Это мондраж после предыдущего устройства.
Писал программу для ATtiny 26L Регулятор мощности галогенных ламп. Казалось тоже да чё там.... три кнопки два разряда индикатора(семи сегментных) ,синхронизация с сетью(220 в) ,запомнить значения шим ,и цифры на индикаторе при отключении ,плавное включение, трёхступенчатая скорость регулирования мощности(однократное нажатие на кнопку прибавить\убавить значит изменить на один. Если держим кнопку то увеличивается быстрей и потом ещё быстрей ).Вывод ошибки на индикатор и отключение ШИМ при потере синхронизации.
Писал и не задумывался о памяти и скорости. Потом смотрю а у меня 96 байт осталось. А директор у меня креативный мужик. Может прийти и выдать ещё что нибудь веселое по отношению к этому регулятору.
ну как то так.....
по поводу скорости.... Просто такой таймер написали еще на ассемблере. Начинает считать он при определенных положений датчиков. И датчики в виде герконов опрашиваются динамически. Исходники нам отдали на асме.. но я не смотрел их.Не когда вникать. Но при тести показало ,что его ПО глючит когда пневмо-замок открывается. Время изменения сигнала между двумя герконами оказалось 120 ms.
Значит (теоритически я не вникал в его код.) его ПО опрашивает явно их с более медленной скоростью. Отсюда я и начел кроить эти микросекунды. У меня тоже динамически опрашиваемы кнопки. Но там же (за место трех кнопок стоят три геркона) .Я сделал так что герконы у меня опрашиваются со скоростью выше чем кнопки. Мне так очень удобно оказалось.
Вот причины. Может конечно не много глупые. Но я не профессионал еще ,что бы определять хватит мне места в контроллере или нет. Поэтому экономлю.
За одно вопрос задам сразу ? Есть ли какой ни будь контроллер с такой же распиновкой но большей памятью ! Я не нашёл. Мож не так искал конечно..
|
|
|
|
24.07.2015, 06:49
|
#36
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
|
|
|
|
24.07.2015, 12:38
|
#37
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 864
Сказал спасибо: 99
Сказали Спасибо 215 раз(а) в 139 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от ARTEM277
|
.
Писал программу для ATtiny26
За одно вопрос задам сразу ? Есть ли какой ни будь контроллер с такой же распиновкой но большей памятью ! Я не нашёл. Мож не так искал конечно..
|
261;461;861
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
24.07.2015, 13:18
|
#38
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от woroba
|
Сообщение от ARTEM277
.
Писал программу для ATtiny26
За одно вопрос задам сразу ? Есть ли какой ни будь контроллер с такой же распиновкой но большей памятью ! Я не нашёл. Мож не так искал конечно..
261;461;861
|
Извиняюсь ,что не конкретизировал про какой контроллер спросил.
По поводу ATtiny 26 я нашел эти аналоги.Спасибо.
Я имел ввиду ATmega 8535L ее аналог надо с большей пзу
|
|
|
|
24.07.2015, 15:49
|
#39
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,485
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: Помогите советом ATmega8535
http://www.atmel.com/products/microc...r/megaAVR.aspx
Странно, на 8 кБ человеки умудряются навернуть столько всего, а у вас не вмещается простейшее.
|
|
|
|
24.07.2015, 17:27
|
#40
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Вот странно ,не спорю.
Пока вмещается. Но говорю же ... директор мужик креативный. Потенциал
у чипа должен быть как минимум 20 %.
Сейчас пока занято 4 кбайт (если по 8 бит).
Вопрос такой.Это нормально ,что эта temp&=~(1‹‹7);
операция 20 байт занимает ?
Может у меня компилятор не совсем правильно настроен ?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:46.
|
|