Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 19.07.2015, 23:51  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Тему пока ,что не закрываю.
Буду пробовать два варианта.
Первый это свой вариант.Когда каждый сегмент индикатора имеет свой байт в памяти
Итого 4 счетчика по 4 байта на каждый 16 байт. и вывод суммы счетчиков, плюс ещё два байта. 18 байт.

Второй вариант,это предложенный Yurkin2014.

Читать с EEPROM буду только один раз в начале программы.Дальше пускай все переменные живут в озу . Так все таки правильнее будет.

Всем ответившем ОГРОМНОЕ СПАСИБО. Хорошо ,что есть этот форум.
Реклама:
ARTEM277 вне форума  
Непрочитано 20.07.2015, 01:29  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,915
Сказал спасибо: 2,980
Сказали Спасибо 3,160 раз(а) в 2,145 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Ну и контрольный выстрел: Алгоритмы BCD на сайте Atmel. Там есть и исходники, но на ассемблере.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
ARTEM277 (20.07.2015)
Непрочитано 20.07.2015, 06:31  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ForcePoint Посмотреть сообщение
Ну и контрольный выстрел: Алгоритмы BCD на сайте Atmel. Там есть и исходники, но на ассемблере.

Вот, что-то подобное я и находил. Только ссылку не сохранил блин.... сейчас найти не могу....
ARTEM277 вне форума  
Непрочитано 20.07.2015, 09:27  
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

А для "спасибо" есть кнопочка.
baiderin вне форума  
Сказали "Спасибо" baiderin
ARTEM277 (21.07.2015)
Непрочитано 21.07.2015, 06:24  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от baiderin Посмотреть сообщение
А для "спасибо" есть кнопочка.
Извини. От радости ,что понял забыл. СПАСИБО ОГРОМНОЕ !
ARTEM277 вне форума  
Непрочитано 23.07.2015, 07:59  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию 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* (звёздочкой я обозначил вообще не понятный символ.)

Ну а так ,полет нормальный
ARTEM277 вне форума  
Непрочитано 23.07.2015, 11:06  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,904
Сказал спасибо: 2,542
Сказали Спасибо 11,816 раз(а) в 5,922 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Поменяйте, наконец, понятия на традиционные: "сегмент" это часть "знака" или "цифры", а то, что Вы обзываете "сегмент", называется "разряд" или "знакоместо".
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 23.07.2015, 13:33  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
Маленько пришлось доработать функцию
Ну, молодец!
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
и тогда строчки с "if (i==0){return;}" совсем не нужны будут.
Yurkin2014 вне форума  
Непрочитано 23.07.2015, 13:42  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от Yurkin2014 Посмотреть сообщение
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
Хорошо ! Попробую....
ARTEM277 вне форума  
Непрочитано 23.07.2015, 14:00  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
Сообщение от Yurkin2014
Попробуйте ещё и первое сравнение заменить на "больше или равно"
Цитата:
while(i›=10000)
Хорошо ! Попробую....

Тоже нормалек всё. Спасибо. С экономил 24 байта пзу.
ARTEM277 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Re-0505S помогите советом Superki Источники питания и свет 2 08.10.2008 20:14
Помогите советом начинающему eler Делимся опытом 64 11.09.2008 17:28
Товарищи помогите советом!!! Mrak Микроконтроллеры, АЦП, память и т.д 13 17.11.2005 18:46
[Решено] Помогите советом Madison Видеотехника 9 06.08.2005 04:17
[Решено] помогите советом pioneer KEH-P7450 sreg kr Информация по радиокомпонентам 2 20.07.2005 18:57


Часовой пояс GMT +4, время: 20:59.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot