Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2018, 15:44   #1
Le__mon
Новичок
Джуниор
 
Регистрация: 15.10.2018
Сообщений: 4
По умолчанию Разложение чисел на разряды

Всем доброго времени суток!!! Как дальше разложить число 1000000?

case 4: lcd_data((value/1000)+'0');
case 3: lcd_data(((value/100)%10)+'0');
case 2: lcd_data(((value/10)%10)+'0');
case 1: lcd_data((value%10)+'0');
Le__mon вне форума Ответить с цитированием
Старый 15.10.2018, 15:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если правильно понял вопрос:

Код:
case 7: lcd_data(((value/1000000)%10)+'0');
case 6: lcd_data(((value/100000)%10)+'0');
case 5: lcd_data(((value/10000)%10)+'0');
case 4: lcd_data(((value/1000)%10)+'0');
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2018, 16:31   #3
Le__mon
Новичок
Джуниор
 
Регистрация: 15.10.2018
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если правильно понял вопрос:

Код:
case 7: lcd_data(((value/1000000)%10)+'0');
case 6: lcd_data(((value/100000)%10)+'0');
case 5: lcd_data(((value/10000)%10)+'0');
case 4: lcd_data(((value/1000)%10)+'0');

Дело вот в чем. Я пишу прошивку для самодельного частотомера. Он у меня измеряет только до 10000 Гц. И ни как не пойму, как увеличить этот предел измерений. Данный код, Вами предложенный не работает.
Le__mon вне форума Ответить с цитированием
Старый 15.10.2018, 16:33   #4
Le__mon
Новичок
Джуниор
 
Регистрация: 15.10.2018
Сообщений: 4
По умолчанию

// Функция вывода переменной
void lcd_num_to_str(unsigned int value, unsigned char nDigit)
{
switch(nDigit)
{
case 4: lcd_data((value/1000)+'0');
case 3: lcd_data(((value/100)%10)+'0');
case 2: lcd_data(((value/10)%10)+'0');
case 1: lcd_data((value%10)+'0');
}
Le__mon вне форума Ответить с цитированием
Старый 15.10.2018, 16:45   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Le__mon Посмотреть сообщение
Данный код, Вами предложенный не работает.
ну, извините, значит, я Вас понял неверно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2018, 16:55   #6
Le__mon
Новичок
Джуниор
 
Регистрация: 15.10.2018
Сообщений: 4
По умолчанию

Может подскажите алгоритм разложения чисел по данному примеру? А уж под свой проект я сам попробую доработать
Le__mon вне форума Ответить с цитированием
Старый 15.10.2018, 17:03   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А ничего, что это просто вывод на экран? Ваш датчик/схема измерения позволяет измерять выше? Вы ее перенастроили/номиналы изменили?
p51x на форуме Ответить с цитированием
Старый 15.10.2018, 17:04   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А ничего, что это просто вывод на экран? Ваш датчик/схема измерения позволяет измерять выше? Вы ее перенастроили/номиналы изменили?
ВОТ-Вот! Начать надо с этого!

Цитата:
Сообщение от Le__mon Посмотреть сообщение
Может подскажите алгоритм разложения чисел по данному примеру?
так я уже показал пример разложения десятичных чисел на отдельные разряды по вашему примеру.
Вы на вход вашей функции lcd_num_to_str подайте число > 10000 и посмотрите, как это работает.

p.s. посмотрите, где и как эта функция вызывается.
вангую, что там при вызове по nDigit цикл от 0 до 4
Вот этот цикл Вам и нужно изменить на нужно число разрядов.
(не забыв изменить и тело функции, как я показал выше)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2018, 21:05   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Теме самое место в "Микроконтроллеры".
А для измерения больших частот (МГц), к примеру, вывод на дисплей - не самый большой камень проникновения . МК д.быть достаточно быстродействующим (частота тактирования, время обработки поступающего импульса). Если недостаточно, применяются входные делители частоты. И если в МК нет аппаратной реализации умножения/деления, то о мегагерцах можно забыть.
Хотя м.быть речь о новомодных STM32 ? Эти - да, могут.
Но скорее всего, просто учебное задание ? Ну если воплощение не грозит, то сгодится.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбиение едит на разряды Mixasnt Общие вопросы Delphi 9 16.12.2012 16:44
Чётный разряды м.квадрата FlipFan Общие вопросы Delphi 2 21.06.2012 20:41
старшие разряды Михаил2261 Microsoft Office Excel 13 15.10.2010 02:00
Разложение чисел на множители Masia Паскаль, Turbo Pascal, PascalABC.NET 3 28.05.2009 14:32
Есть ли разряды у программистов? Cubar Свободное общение 6 17.02.2008 13:07