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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
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, время: 19:03.


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