AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
19.07.2015, 23:51
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Тему пока ,что не закрываю.
Буду пробовать два варианта.
Первый это свой вариант.Когда каждый сегмент индикатора имеет свой байт в памяти
Итого 4 счетчика по 4 байта на каждый 16 байт. и вывод суммы счетчиков, плюс ещё два байта. 18 байт.
Второй вариант,это предложенный Yurkin2014.
Читать с EEPROM буду только один раз в начале программы.Дальше пускай все переменные живут в озу . Так все таки правильнее будет.
Всем ответившем ОГРОМНОЕ СПАСИБО. Хорошо ,что есть этот форум.
|
|
|
|
20.07.2015, 01:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,915
Сказал спасибо: 2,980
Сказали Спасибо 3,160 раз(а) в 2,145 сообщении(ях)
|
Re: Помогите советом ATmega8535
Ну и контрольный выстрел: Алгоритмы BCD на сайте Atmel. Там есть и исходники, но на ассемблере.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
20.07.2015, 06:31
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Вот, что-то подобное я и находил. Только ссылку не сохранил блин.... сейчас найти не могу....
|
|
|
|
20.07.2015, 09:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Помогите советом ATmega8535
А для "спасибо" есть кнопочка.
|
|
|
Сказали "Спасибо" baiderin
|
|
|
21.07.2015, 06:24
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от baiderin
|
А для "спасибо" есть кнопочка.
|
Извини. От радости ,что понял забыл. СПАСИБО ОГРОМНОЕ !
|
|
|
|
23.07.2015, 07:59
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Маленько пришлось доработать функцию преобразования из двоичного в десятичный
void ConvertBinToSegment(volatile unsigned int i)
{
volatile unsigned int f;
f=Timer1+Timer2+Timer3+Timer4;
Segm1 = 0;
Segm2 = 0;
Segm3 = 0;
Segm4 = 0;
Segm5 = 0;
while(i›10000)
{
i -=10000;
Segm5++;
if (i==0){return;} //добавил это
}
while(i›=1000)
{
i -=1000;
Segm4++;
if (i==0){return;}
}
while(i›=100)
{
i -=100;
Segm3++;
if (i==0){return;}
}
while(i›=10)
{
i -=10;
Segm2++;
if (i==0){return;}
}
while(i›0)
{
i -=1;
Segm1++;
}
}
Если это if (i==0){return;} не дописать ,то за место 4000 он выводит 399* (звёздочкой я обозначил вообще не понятный символ.)
Ну а так ,полет нормальный
|
|
|
|
23.07.2015, 11:06
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,904
Сказал спасибо: 2,542
Сказали Спасибо 11,816 раз(а) в 5,922 сообщении(ях)
|
Re: Помогите советом ATmega8535
Поменяйте, наконец, понятия на традиционные: "сегмент" это часть "знака" или "цифры", а то, что Вы обзываете "сегмент", называется "разряд" или "знакоместо".
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
23.07.2015, 13:33
|
|
Заблокирован
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от ARTEM277
|
Маленько пришлось доработать функцию
|
Ну, молодец!
Попробуйте ещё и первое сравнение заменить на "больше или равно"
и тогда строчки с "if (i==0){return;}" совсем не нужны будут.
|
|
|
|
23.07.2015, 13:42
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от Yurkin2014
|
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
|
Хорошо ! Попробую....
|
|
|
|
23.07.2015, 14:00
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите советом ATmega8535
Сообщение от ARTEM277
|
Сообщение от Yurkin2014
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
Хорошо ! Попробую....
|
Тоже нормалек всё. Спасибо. С экономил 24 байта пзу.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:59.
|
|