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

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

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

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

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

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

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

 
Опции темы

Помогите советом ATmega8535

Непрочитано 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.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,512 раз(а) в 2,393 сообщении(ях)
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.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
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
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
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 Делимся опытом 100 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, время: 12:47.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.