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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Способы вывода данных на семисегментный индикатор

Непрочитано 28.07.2011, 14:32  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от Easyrider83 Посмотреть сообщение
На 2,4,8.. делю сдвигом
Ну это само собой (old school ). А чем плоха на 8 битниках математика? Смотри только за разрядностью используемых переменных.
Реклама:
heady69 вне форума  
Непрочитано 28.07.2011, 14:35  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Десятки микросекунд и меньше 50 слов кода. Это для 8-ногой тиньки
niXto вне форума  
Непрочитано 28.07.2011, 14:37  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от heady69 Посмотреть сообщение
Индикация явно не динамика. Вывод через сдвиговые регистры с зящелкой на выходе. Да и код конечно... особенно это:
Код:
while (SUM ›=100)
{
tens++;
SUM -=100;
};
while (SUM ›= 10)
{
one++;
SUM -= 10;
fractions=SUM;
};
делить на 100 и на десять методом вычитания это ЖЕСТЬ!! Вообще с СИ сеть операторы: "/"разделить, "%"взять остаток деления .
А ещё практикуют математику с вещественными числами реализовывать на сдвигах и ..и много ещё чего - какой ужас!

Это не жесть, это адекватное понимание возможностей платформы с которой имеешь дело.
Вы сравните размер и скорость выполнения кода - сами примете на вооружение.
Nfc вне форума  
Эти 2 пользователя(ей) сказали Спасибо Nfc за это сообщение:
-jonns- (02.08.2011), artyomugr (03.08.2011)
Непрочитано 28.07.2011, 14:46  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от Nfc Посмотреть сообщение
Вы сравните размер и скорость выполнения кода - сами примете на вооружение.
Только дурак не заглядывает в то,что компилятор наваял. Ессесно приходится иногда и код править для оптимальной компиляции.
heady69 вне форума  
Непрочитано 28.07.2011, 15:13  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Цитата:
делить на 100 и на десять методом вычитания это ЖЕСТЬ!! Вообще с СИ сеть операторы: "/"разделить, "%"взять остаток деления
для типа char деление на 100 дает 1 или 2 вычитания - стандартный способ двоично-десятичного преобразования для 8-битных архитектур. Использовался еще на 8080. И если компилятор умный, то он сам заменит 8 сдвигов / вычитаний на те же самые две операции.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 28.07.2011, 16:11  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от MisterDi Посмотреть сообщение
для типа char деление на 100 дает 1 или 2 вычитания - стандартный способ двоично-десятичного преобразования для 8-битных архитектур.
Понятно,что не больше 2 (char= 255 max). На "старичке" Sinclaire таким "вычитательным" образом делии. Только в программе делится не char , а uint.

Последний раз редактировалось heady69; 28.07.2011 в 16:14.
heady69 вне форума  
Непрочитано 28.07.2011, 16:21  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от MisterDi Посмотреть сообщение
И если компилятор умный, то он сам заменит 8 сдвигов / вычитаний на те же самые две операции.
Надеемся на это и уповаем. Конечно компилеры далеко не глупые люди пишут,но всн варианты как говорится не предусмотришь.

Последний раз редактировалось heady69; 28.07.2011 в 16:23.
heady69 вне форума  
Непрочитано 28.07.2011, 16:23  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от heady69 Посмотреть сообщение
Надеемся на это и уповаем.
Проверил. Мой не умный. Таких вещей делать не умеет. Но на 2 делит правильно.
Easyrider83 вне форума  
Непрочитано 28.07.2011, 16:45  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Сообщение от Easyrider83 Посмотреть сообщение
heady69, много проще через BCD формат все сделать
А по подробнее, для чайника можете обьяснить?
artyomugr вне форума  
Непрочитано 28.07.2011, 16:58  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Способы вывода данных на семисегментный индикатор

Код:
unsigned char led_update ( unsigned char a, unsigned char  b, unsigned char  c, unsigned char  d, unsigned char  e, unsigned char  f )
     {
        led_buff[0]=led_table[a]; //Çàïîëíÿåì áóôåð ðàçðÿäîâ
        led_buff[1]=led_table[b]; // èíäèêàöèÿ CUrOUt òîê âûõîäà
        led_buff[2]=led_table[c];
        led_buff[3]=led_table[d];
        led_buff[4]=led_table[e];
        led_buff[5]=led_table[f]; 
        
        return a,b,c,d,e,f;
     }


    led_update(1,2,3,4,F_,H_);


Ничего пока толковей чем это не придумал...

хочу делать таким образом:

led_update(1,2,3,4,F_,H_);

led_update(2,3,4,F_,H_,__);

led_update(3,4,F_,H_,__,1); // подчеркивание это пробел

Код:
#define __ 10
#define t_ 12 
#define L_ 13
#define A_ 14
#define r_ 15
#define d_ 16
#define b_ 17
#define dp_ 18
#define P_ 19
#define C_ 20
#define U_ 21
#define E_ 22
#define H_ 23
#define F_ 24
#define tC_ 25

Это я переделал код уважаемого товарища АРВ
вопрос такой, зачем здесь надо "return" ? поясните мне пожалуйста.
с Ув. Артем



Кидаю вам проект, вот такое я хочу сделать, выталкивание предыдущего меню.
Вложения:
Тип файла: rar Atmega128 AMPL самая свежая версия.rar (252.2 Кб, 42 просмотров)

Последний раз редактировалось artyomugr; 28.07.2011 в 17:38.
artyomugr вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методика и способы воостановления данных diman_the_best Ремонт оргтехники 0 25.10.2010 00:20


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


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