Компиляция прошла без ошибок далее что делать?vladimir74 писал(а):подключить библиотеку math.h не вариант?
#include <math.h>
Мои проекты на Ардуино
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
vladimir74
- Почётный участник

- Сообщения: 544
- Зарегистрирован: 25 май 2011, 14:14
- Репутация: 19
- Откуда: Магнитогорск
- Контактная информация:
Re: Мои проекты на Ардуино
покажи полностью листинг
пока предполагаю что
s=(lrint(s*10))/10;
lcd.print(s);
скорее всего должно ругаться на типы, но проверь.
пока предполагаю что
s=(lrint(s*10))/10;
lcd.print(s);
скорее всего должно ругаться на типы, но проверь.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
vladimir74 писал(а):покажи полностью листинг
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
vladimir74
- Почётный участник

- Сообщения: 544
- Зарегистрирован: 25 май 2011, 14:14
- Репутация: 19
- Откуда: Магнитогорск
- Контактная информация:
Re: Мои проекты на Ардуино
long Fr_min = 23.33;
Fr_min = (long)(Fr_min*10); //умножаем на 10
Fr_min = lrint(Fr_min1); //преобразуем к целому
Fr_min = Fr_min/10;//делим на десять и должны получить 1 число после запятой
string Fr_min = Fr_min.ToString(); //преобразуем в строку
lcd.print(Fr_min); //выводим на экран
Скажи на что компилятор будет ругаться.
Fr_min = (long)(Fr_min*10); //умножаем на 10
Fr_min = lrint(Fr_min1); //преобразуем к целому
Fr_min = Fr_min/10;//делим на десять и должны получить 1 число после запятой
string Fr_min = Fr_min.ToString(); //преобразуем в строку
lcd.print(Fr_min); //выводим на экран
Скажи на что компилятор будет ругаться.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Така задача - нужно секунды перевести в формат d h m s
Ардуино насчитало сколько времени прошло с запуска например прошло 277780сек вот их нужно перевести в удобный формат примерно такой 3d 23h 59m 01s
Как можно сделать функцию чтоб ей передали сек, а она вернуло готовую строку
Ардуино насчитало сколько времени прошло с запуска например прошло 277780сек вот их нужно перевести в удобный формат примерно такой 3d 23h 59m 01s
Как можно сделать функцию чтоб ей передали сек, а она вернуло готовую строку
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Мои проекты на Ардуино
Ну это ручками, последовательным целочисленным делением и взятием остатка.
Разумеется, буфер должен иметь достаточный размер.
Код: Выделить всё
void timeint(char[] buffer, unsigned long sec)
{
int days, hours, mins;
days = sec / 86400;
sec %= 86400;
hours = sec / 3600;
sec %= 3600;
mins = sec / 60;
sec %= 60;
sprintf(buffer, %iD %iH %iM %iS", days, hours, mins, (int)sec);
return;
}
Последний раз редактировалось Rafiq 08 ноя 2012, 22:55, всего редактировалось 2 раза.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Спасибо!
Тоже нашел что нужно:
Тоже нашел что нужно:
Код: Выделить всё
//--------------------------------------------------------------------------------------------------------------------------------------------------
// КОНВЕРТАЦИЯ СЕК в ЧЧ:ММ:СС
//--------------------------------------------------------------------------------------------------------------------------------------------------
char * TimeToHHMMSS(unsigned long t)
{
static char str[12];
long h = t / 3600;
t = t % 3600;
int m = t / 60;
int s = t % 60;
//sprintf(str, "%04ld:%02d:%02d", h, m, s);
sprintf(str, "%03ld:%02d:%02d", h, m, s);
return str;
}Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Мои проекты на Ардуино
Те же яйца, что и мой код, только в профиль. И без дней.
Но согласен, более правильным будет давать тип unsigned long для аргумента в секундах, поскольку просто int явно не хватит. И int() оказалось лишним, надо убрать. Свой код я подправил.
Но согласен, более правильным будет давать тип unsigned long для аргумента в секундах, поскольку просто int явно не хватит. И int() оказалось лишним, надо убрать. Свой код я подправил.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мои проекты на Ардуино
В некоторых языках есть функция date, которая форматирует дату из стандартной юниксовской даты в нужный формат. А дата в юнихах определяется количествомсекун прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (четверг);
http://ru.wikipedia.org/wiki/Date
Хотя, ваши способы лучше, это я так просто для общей информации написал
http://ru.wikipedia.org/wiki/Date
Хотя, ваши способы лучше, это я так просто для общей информации написал
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Мои проекты на Ардуино
Вполне возможно, что в avr-libc реализована функция strftime(), но дело в том, что она, как и date(), работает с датой, а нам нужен интервал.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мои проекты на Ардуино
ну так делаем date(a-b, "%e дней %H:%M%S")... до 30 дней сработает
. Я же говорил, ваши способы лучше.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Ардуино к некоторым не относитсяNick писал(а):В некоторых языках есть функция date,
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Мои проекты на Ардуино
А чего STM32 забросил?
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
решил с простого начать. STM32 там много чего не понятного для меняImpartial писал(а):А чего STM32 забросил?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Мои проекты на Ардуино
Походу решил на кошечках потренироваться. 
P.S. Для ардуины наверняка сделали модуль на DS1302 или DS1307 - это удобные часики реального времени с возможностью подключения резервной батарейки.
P.S. Для ардуины наверняка сделали модуль на DS1302 или DS1307 - это удобные часики реального времени с возможностью подключения резервной батарейки.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Мои проекты на Ардуино
Мозги набекрень будут от их новаций.
Брось ты эту затею. Ты делаешь все то же, что делал бы с СТМ. Только извращенно как то, даже в самых простых вещах.
Брось ты эту затею. Ты делаешь все то же, что делал бы с СТМ. Только извращенно как то, даже в самых простых вещах.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Мне нужно термодатчики приделать. С примерами DS18b20 для СТМ32 не разобрался.Impartial писал(а):Мозги набекрень будут от их новаций.
Следующая засада как в ардуино вывести строку в порт? POS принтеру нужно послать команду установить жирный шрифт, а потом напечатать текст и отключить жирность.
Вот кусок мануала. Разные примеры с инета перепробовал нифига не выходит
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мои проекты на Ардуино
Что именно ты пробовал? Скинь свой код.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Мои проекты на Ардуино
Наверно вот так:
serial.print("\x1bE1Напечатанный текст\x1bE0\n");
Только на счёт 0 и 1 не уверен, надо в документации смотреть.
Если С почти настоящий, то и вот так должно работать:
serial.print("\eE1Напечатанный текст\eE0\n");
serial.print("\x1bE1Напечатанный текст\x1bE0\n");
Только на счёт 0 и 1 не уверен, надо в документации смотреть.
Если С почти настоящий, то и вот так должно работать:
serial.print("\eE1Напечатанный текст\eE0\n");
Последний раз редактировалось Serg 09 ноя 2012, 01:42, всего редактировалось 1 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Разное
Код: Выделить всё
Serial.println("Proba");
//Serial.print("\ESC\B\1", DEC);
//Serial.print(byte(27)); // символ ESC
//delay(100);
//Serial.print(byte(66)) ; // символ B
//delay(100);
//Serial.print(byte(49)) ; // цифра 0
Serial.print(65, HEX); // выводит "А";
Serial.print("\t");
Serial.println("Proba");Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
