Dark-Dante - Тут больше решает объем памяти а не я)) На ассемблере можно гораздо компактнее сделать, но увы пока не умею)) А что еще в этом скетче оптимизировать я уже увы не знаю...
alexadresat - Отлично! Исправил и перезалил! Попробуй быструю настройку с изменением параметров и без.
mambavamba14 - У меня к тебе просьба не забрасывать ArDos_with_RADON_v1.6.5, ты мне как то обещал исправить в Доза и Статистика строки на Дни:00 12:34:56
Шкала прогресса начинает идти как переходит на экран вычисления даже не нажимая Старт, При этом выдает Параметры, преобразователь не работает. Он начинает работать когда нажимаешь Старт.
При долгом нажатии ОК не выходит в начальное меню.
19.06.20 #ArDos_utility_for_debug_0.0.2 - Также теперь есть отдельная утилита для настройки и отладки преобразователя. С её помощью можно как и быстро настроить (введя всего сопротивления делителя, напряжение питания и напряжение ВВ), так и в ручном режиме отладить все параметры ещё более точно. Также есть инструмент для автоматической настройки длинны импульса.
От вас требуется только прошить утилиту(параметры в скетче менять не обязательно), при первом старте откроется быстрая настройка. Ваши действия: "Начать" -> Вводите верхнее и нижнее плечо вашего делителя(можно просто номиналы купленных сопротивление) -> "Далее" -> Подключаете мультиметр к источнику питания вашего дозиметра и вводите показания в параметр "батарея" -> "Далее" -> Подключаете мультиметр к выходу преобразователя ВВ(конденсатору на выходе) вашего дозиметра и вводите показания в параметр "накачка" -> "Далее" -> "Готово". Если преобразователь был успешно настроен, то вы увидите финишное окно со всеми основными параметрами, которые нужно будет просто переписать в скетч с прошивкой дозиметра(названия параметров и переменных(дефайнов) в скетче совпадают).
Для более правильной работы, необходимо настроить длину импульса. Для этого есть два способа, в ручную настроить "эмпирическим" путем в "Ручной настройке" или же воспользоваться инструментом "Автонастройка импульса", после нажатия на "старт" пойдет процесс подстройки(занимает +- 30сек), в конце сразу же откроется финишное окно со всеми основными параметрами.
Всем привет. Помогите пожалуйста разобраться с загрузкой скетча, в этом деле не разбираюсь. Прошиваю через программатор CH340. Выдает следующую ошибку:
Arduino: 1.8.13 (Windows 8.1), Плата:"Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void loop()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:364:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ДОЗА И ВРЕМЯ"), CENTER, 16);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:365:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОБНУЛЕНЫ"), CENTER, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:478:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ДОЗА И ВРЕМЯ"), CENTER, 16);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:479:52: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОБНУЛЕНЫ"), CENTER, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void lcd_poisk()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:568:43: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBC\xBE\xBF", 43, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:572:47: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBC\xBD\xBE\xBF", 43, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:610:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.setFont(SmallFontRus); myGLCD.print(utf8rus("мР/ч"), RIGHT, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:622:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.setFont(SmallFontRus); myGLCD.print(utf8rus("мкР/ч"), RIGHT, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:631:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("мР/ч"), RIGHT, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:635:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("мкР/ч"), RIGHT, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:646:74: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.printNumF(doz_v, 1, 41, 24); myGLCD.print(utf8rus("мкР"), RIGHT, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:650:74: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.printNumF(doz_v, 1, 34, 24); myGLCD.print(utf8rus("мкР"), RIGHT, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:655:77: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.printNumF(doz_v / 1000.0, 2, 41, 24); myGLCD.print(utf8rus("мР"), RIGHT, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void lcd_menu()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:691:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ПОРОГ 1"), 5, 0); myGLCD.printNumI(treviga_1, 55, 0); myGLCD.print("\xBC\xBD\xBE\xBF", RIGHT, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:691:123: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ПОРОГ 1"), 5, 0); myGLCD.printNumI(treviga_1, 55, 0); myGLCD.print("\xBC\xBD\xBE\xBF", RIGHT, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:692:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ПОРОГ 2"), 5, 6); myGLCD.printNumI(treviga_2, 55, 6); myGLCD.print("\xBC\xBD\xBE\xBF", RIGHT, 6);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:692:123: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ПОРОГ 2"), 5, 6); myGLCD.printNumI(treviga_2, 55, 6); myGLCD.print("\xBC\xBD\xBE\xBF", RIGHT, 6);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:693:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ПОДСВЕТКА"), 5, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:694:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
if (podsvetka) { myGLCD.print(utf8rus("ВКЛ."), RIGHT, 12); }
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:695:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
else { myGLCD.print(utf8rus("ВЫКЛ."), RIGHT, 12); }
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:696:46: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ТИП. ГРАФИКА"), 5, 18); myGLCD.printNumI(graph_type, 59, 18); myGLCD.print("0-1", RIGHT, 18); //
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:696:125: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ТИП. ГРАФИКА"), 5, 18); myGLCD.printNumI(graph_type, 59, 18); myGLCD.print("0-1", RIGHT, 18); //
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:697:46: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОБН. ГРАФИКА"), 5, 24); myGLCD.printNumI(scrin_GRAF, 59, 24); myGLCD.print(utf8rus("СЕК."), RIGHT, 24);//
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:697:125: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОБН. ГРАФИКА"), 5, 24); myGLCD.printNumI(scrin_GRAF, 59, 24); myGLCD.print(utf8rus("СЕК."), RIGHT, 24);//
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:698:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ИНДИКАЦИЯ"), 5, 30); //пункт меню выбора индикации частиц
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:702:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ВЫКЛ."), RIGHT, 30); //индикация выключена
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:705:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ЗВУК"), RIGHT, 30); //индикация звуком
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:708:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СВЕТ"), RIGHT, 30); //индикация светом
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:711:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ЗВУК+СВЕТ"), RIGHT, 30); //индикация звуком и светом
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:714:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ВИБРО"), RIGHT, 30); //индикация вибрацией
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:717:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("err", RIGHT, 30); // если значение не равно 1,2,3 или 0 - выводим ошибку
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:719:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ВЫХОД"), 5, 36);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:720:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СОХРАНИТЬ"), 5, 42);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:721:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(">", 0, n_menu * 6);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void lcd_sys()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:731:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОПОРН."), 5, 0); myGLCD.printNumF(opornoe, 2, CENTER, 0); myGLCD.print("VCC", 55, 0); myGLCD.printNumF(VCC, 2, RIGHT, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:731:111: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ОПОРН."), 5, 0); myGLCD.printNumF(opornoe, 2, CENTER, 0); myGLCD.print("VCC", 55, 0); myGLCD.printNumF(VCC, 2, RIGHT, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:733:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("НАКАЧКА"), 5, 6); myGLCD.printNumI(puls, 55, 6); myGLCD.printNumI(hv_400, RIGHT, 6);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:734:43: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СБРОС ДОЗЫ"), 5, 12);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:735:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("ВЫХОД"), 5, 18);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:736:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СОХРАНИТЬ"), 5, 24);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:737:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("БЕТА"), 5, 30); myGLCD.printNumI(beta_time, 55, 30); myGLCD.print(utf8rus("МИН."), RIGHT, 30);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:737:110: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("БЕТА"), 5, 30); myGLCD.printNumI(beta_time, 55, 30); myGLCD.print(utf8rus("МИН."), RIGHT, 30);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:738:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(">", 0, sys_menu * 6);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:739:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СКОРОСТЬ"), 5, 40); myGLCD.printNumI(speed_nak, 40, 40); myGLCD.print(utf8rus("ИМП/СЕК"), RIGHT, 40);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:739:124: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("СКОРОСТЬ"), 5, 40); myGLCD.printNumI(speed_nak, 40, 40); myGLCD.print(utf8rus("ИМП/СЕК"), RIGHT, 40);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void zamer_beta()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:780:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("НАЖМИТЕ OK"), CENTER, 36);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:809:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(":", 5 + otsup, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:813:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(" ", 5 + otsup, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:815:88: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.printNumI(sek, 10 + otsup, 0); myGLCD.print("\xBC"":""\xB9", 23 + otsup, 0);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:820:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("Замер0"), LEFT, 10); myGLCD.print(utf8rus("Замер1"), RIGHT, 10);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:820:87: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("Замер0"), LEFT, 10); myGLCD.print(utf8rus("Замер1"), RIGHT, 10);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:825:49: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("Идёт замер"), CENTER, 30); myGLCD.printNumI(bet_z, RIGHT, 30);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:830:48: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("Результат"), CENTER, 30);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:831:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.printNumI(bet_r, CENTER, 38); myGLCD.print(utf8rus("мкР/ч"), RIGHT, 38);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void eeprom_wrS()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1175:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(utf8rus("Сохранено"), CENTER, 20);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino: In function 'void ind_doze_time()':
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1274:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("M", 13, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1278:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("M", 9, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1282:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("M", 5, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1287:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBB", 26, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1291:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBB", 23, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1299:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBB", 9, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1303:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBB", 5, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1308:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBA", 26, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1312:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBA", 23, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1320:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBA", 9, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1324:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBA", 5, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1329:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBC", 26, 26);
^
C:\Program Files (x86)\Arduino\ardos\ardos.ino:1333:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("\xBC", 23, 26);
^
Скетч использует 21250 байт (69%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1543 байт (75%) динамической памяти, оставляя 505 байт для локальных переменных. Максимум: 2048 байт.
Недостаточно памяти, программа может работать нестабильно.
Произошла ошибка при загрузке скетча
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Romka5110, АрдуиноИДЕ не видит плату. Проверяйте наличие драйвера под переходник CH340 (это не программатор, а конвертер юсб>юарт), проверяйте правильно ли выставлен номер виртуального ком-порта в настройках ИДЕ, верно ли подключены проводники к ардуинке. Пробуйте записать любой пример из штатных.
Смотрите номер виртуального ком-порта в диспетчере устройств.
Обратите внимание, выводы RX и TX при подключении перекрещиваются (RX переходника к TX ардуинки и наоборот).
Если переходник без вывода DTR - в момент, когда заканчивается компиляция и ИДЕ начинает процесс загрузки прошивки в микроконтроллер нужно кратковременно нажать ресет на ардуинке. Поймать этот момент не так легко, может понадобиться несколько попыток.
установил наконец-то прошивку. пытался прошить pl2303 загрузчик не получилось, правильно я понял, что надо usbasp прошивать?
в статистике время замирает, чтобы обновилось, надо сначала в дозе сбросить счёт.
можно ли в быстром меню картинки поменять местами? вниз, ок, вверх. в файле resources.c что-то подвинуть надо?
не очень удобно настраивать отдельной программой, мне надо почти полностью разобрать прибор (это не претензия, просто заметка, я понимаю что памяти мало)
пытался прошить pl2303 загрузчик не получилось, правильно я понял, что надо usbasp прошивать?
Да. Через USBasp из АрдуиноИДЕ или через любой ICSP программатор отдельной софтиной хексом. Дисплей и счётчик на время прошивки снять. После заливки загрузчика далее можно снова шить по переходнику юсб2ком.
Для заливки через ИДЕ, скорее всего, придётся заморочиться с драйверами и задигом.
ivancheg8 - Прошивать загрузчик не обязательно, на данный момент все будет шиться и работать на любом загрузчике.
В статистике отображаются сохраненные в память время и доза, те до момента сохранения(полного заполнения бара и его обнуления в дозе) данные в статистике не меняются и соответственно при сбросе текущей дозы она уходит в память.
Это не картинки а одна картинка размером 84х8(fast_down_img[]), если нужно другое расположение то придется перерисовать и заменить битмап-карту.
Если вы уже знаете свои параметры преобразователя и опорного, достаточно их вбить при прошивке и ничего менять не придется, но если это так уж сильно нужно, то в прошивке 1.6.5 эта возможность осталась и на данный момент 1.6.5 и 1.7.0 по части дозиметра не отличаются. Утилита нужна для отладки нового устройства, тк иногда в процессе подбирая коеф.делителя и значение АЦП приходится по несколько раз прошивать у-во чтобы изменить эти параметры, да и в общем утилита направленна на упрощение этого процесса по средствам автоматической подстройки этих параметров, когда от пользователя требуется всего ввести номиналы резисторов и напряжения с мультиметра.
Wik - Решил разделить, тк из-за множества версий уже получается какое-то месево... а по папкам если разделить, то уже мне будет не удобно обновлять архив))
alexadresat - А зачем в статистике менять время на такой же формат с секундами?? Все равно там же показания статичны... Мб тогда в дозе с сек. а в статистике без?
И ещё бы былоб неплохо накидать какой-нить дизайник для разностного замера...Хотяб примерно где что должно располагаться, а то мне что-то пока ничего путного в голову не приходит, кроме как в баре название "замер"...
mambavamba14 fast_down_img[] это нижняя картинка со стрелочками? а картинка с фонариками и выключателем это какая? мне нужно "стрелочку вверх" и "ок" поменять местами, соответственно картинки тоже.
ivancheg8 - Да, это нижняя картинка со стрелками и ок. "fast_flash_img[]" - фонарик, "fast_light_img[]" - подсветка, "fast_power_img[]" - выкл.питания. У вас перепутаны местами клавиши? Или для чего это?
mambavamba14 картинки местами я поменял, но не получается конвертнуть картинку. использовал программу LCDAssistant, но получаются кракозябры. я поле с ноликами тупо скопировал и заменил. подскажите, какой программой вы делаете, я ещё попробую.
У меня изначально в ардосе так: влево-ок-вправо. там было неважно, как разместить. у меня своя плата, делал под корпус элат сим-03
Pav_13 - Неплохая идея, но я вот все думаю мб как-то все это дело уместить на одном экране(без кнопок далее и начать), а замер начинать останавливать по нажатию/удержанию одной из кл.
Да кстати, я тут все думал, мб на перемещение по режимам оставить одну кнопку(например вверх), а другую освободить для дополнительных действий/задач(как например в режиме поиск нажатие на кл.вниз - пауза графика, удер.кл.вниз сброс графика) и тд. по остальным экранам?
По поводу кнопок хочу сказать, может быть я и не прав, но как по мне в меню "настройки" (да и в остальных меню) при движении по пунктам меню, кнопки "вверх" и "вниз" так и просятся поменяться местами. То-есть кнопка "вверх" (она же "вперед" >) на мой взгляд должна переводить курсор к следующему пункту меню, т.е. вниз, а кнопка "вниз" (она же "назад" <) наоборот поднимать курсор. По логике чтения книги каждая последуюшая строка находится все ниже.. (т.е. движемся "вперед" - вниз, и "назад" - вверх). Надеюсь ясно выразился.
alexadresat - возможно звучит абсурдно... я имел ввиду движение по пунктам, а не изменение величин в этих пунктах.
Как, допустим, нумеруется любой список? начиная с первого пункта, который находится вверху и далее к низу, как ни странно, число пунктов увеличивается "вверх")))
Согласен с alexadresat - не надо вводить путаницу. Где-то в десяти-пятнадцати процентах промышленных контроллеров малой автоматизации в меню применён подобный принцип вверх-вниз (в остальных вполне нормально и логично), и это жутко бесит. Мы двигаем курсор по экрану, а не списку. К подобным отклонениям от общепринятого антипатия ещё со времён игр на первой соньке, когда девелоперы меняли принцип направления на вращение.
Вы автор, Вам решать как и что реализовать, я просто поделился своим мнением)
mambavamba14 - Вроде бы заработало...
Dark-Dante - Тут больше решает объем памяти а не я)) На ассемблере можно гораздо компактнее сделать, но увы пока не умею)) А что еще в этом скетче оптимизировать я уже увы не знаю...
alexadresat - Отлично! Исправил и перезалил! Попробуй быструю настройку с изменением параметров и без.
mambavamba14 - Остался третий пункт настроек?
alexadresat - Да, вот сижу думаю как сделать его...
mambavamba14 - У меня к тебе просьба не забрасывать ArDos_with_RADON_v1.6.5, ты мне как то обещал исправить в Доза и Статистика строки на Дни:00 12:34:56
alexadresat - Да да, я помню, все сделаем, куда мы денемся))
Утилиту обновил, добавлена автонастройка импульса(будет длится +- 30с) затем выведет на финишный экран со всеми параметрами.
Шкала прогресса начинает идти как переходит на экран вычисления даже не нажимая Старт, При этом выдает Параметры, преобразователь не работает. Он начинает работать когда нажимаешь Старт.
При долгом нажатии ОК не выходит в начальное меню.
alexadresat - Да, мой косяк...исправил и перезалил! также сделал если на финишном экране нажать выход, загрузятся последние настройки.
При выборе Автонастройка импульса сразу попадаешь сюда...
alexadresat - Исправил, презалил!
На главном экране атонастройка импульсЯ.
Надо с заглавной буквы менюшку сделать - Быстрая настройка - Ручная настройка - Автонастройка импульса
Исправь потом попробую...
alexadresat - Вроде нормально работает, кнопки исправил, максимальную длину импульса уменьшил до 25. Архив перезалил.
UPD.Буквы исправил, сделал полоску прогресса поуже и 0-е значение с 1пкс.
В меню выбора настроек когда инверсия надпись с маленькой буквой, и когда нет инверсии на третьем меню опечатка импульсЯ.
Строчку прогресс и полосу прогресса подними повыше, посередине между второй строкой и последней.
И максимальную длину импульса наверное надо увеличить хотя бы до 30.
Исправил, не заметил сразу...
К сожалению невозможно.. либо впритык к верхней или впритык к нижней.
Хорошо, сделал, подумал что 30 многовато будет...
UPD2. Добавил вкл/выкл подсветки в основном меню(удерж. Ок - вкл/выкл подсветку).
mambavamba14 - Надо еще чтоб подсветка выключалась/включалась, скажем в меню выбора настроек удержанием кнопки вверх, а то фоткать не удобно...
mambavamba14 - когда вкл/выкл подсветку инверсия выбора меню беспорядочно бегает
alexadresat - Да я уже понял что удержание будет пересекаться с выбором параметров. Сделал на удерж. Ок в основном меню.
UPD. Исправил начальное значение автонастройки импульса.
mambavamba14 - Ну теперь давай расписывай что должен делать пользователь, все действия по трем настройкам..
19.06.20 #ArDos_utility_for_debug_0.0.2 - Также теперь есть отдельная утилита для настройки и отладки преобразователя. С её помощью можно как и быстро настроить (введя всего сопротивления делителя, напряжение питания и напряжение ВВ), так и в ручном режиме отладить все параметры ещё более точно. Также есть инструмент для автоматической настройки длинны импульса.
От вас требуется только прошить утилиту(параметры в скетче менять не обязательно), при первом старте откроется быстрая настройка. Ваши действия: "Начать" -> Вводите верхнее и нижнее плечо вашего делителя(можно просто номиналы купленных сопротивление) -> "Далее" -> Подключаете мультиметр к источнику питания вашего дозиметра и вводите показания в параметр "батарея" -> "Далее" -> Подключаете мультиметр к выходу преобразователя ВВ(конденсатору на выходе) вашего дозиметра и вводите показания в параметр "накачка" -> "Далее" -> "Готово". Если преобразователь был успешно настроен, то вы увидите финишное окно со всеми основными параметрами, которые нужно будет просто переписать в скетч с прошивкой дозиметра(названия параметров и переменных(дефайнов) в скетче совпадают).
Для более правильной работы, необходимо настроить длину импульса. Для этого есть два способа, в ручную настроить "эмпирическим" путем в "Ручной настройке" или же воспользоваться инструментом "Автонастройка импульса", после нажатия на "старт" пойдет процесс подстройки(занимает +- 30сек), в конце сразу же откроется финишное окно со всеми основными параметрами.
mambavamba14 - Давай заодно и нажатие кнопок озвучь...
mambavamba14 - Ты заметил разницу показаний puls= Быстрая настройка и Автонастройка импульса?
alexadresat - Просто даже фиг знает что написать, вроде и так интерфейс максимально (на сколько это возможно) "юзерюзер-френдли")))
Ну так в быстрой предыдущее состояние импульса, а в автонастройке новое...поидее вроде так.
20.06.20 #ArDos_utility_for_debug_0.0.2 - Мелкие исправления.
20.06.20 #ArDos_with_RADON_1.7.0 - Интегрирована работа с утилитой по настройке ВВ преобразователя.
...
Romka5110 - ИДЕ не видит плату...
Romka5110, АрдуиноИДЕ не видит плату. Проверяйте наличие драйвера под переходник CH340 (это не программатор, а конвертер юсб>юарт), проверяйте правильно ли выставлен номер виртуального ком-порта в настройках ИДЕ, верно ли подключены проводники к ардуинке. Пробуйте записать любой пример из штатных.
Смотрите номер виртуального ком-порта в диспетчере устройств.
Обратите внимание, выводы RX и TX при подключении перекрещиваются (RX переходника к TX ардуинки и наоборот).
Если переходник без вывода DTR - в момент, когда заканчивается компиляция и ИДЕ начинает процесс загрузки прошивки в микроконтроллер нужно кратковременно нажать ресет на ардуинке. Поймать этот момент не так легко, может понадобиться несколько попыток.
Всем спасибо! Дальше настройка)))
установил наконец-то прошивку. пытался прошить pl2303 загрузчик не получилось, правильно я понял, что надо usbasp прошивать?
в статистике время замирает, чтобы обновилось, надо сначала в дозе сбросить счёт.
можно ли в быстром меню картинки поменять местами? вниз, ок, вверх. в файле resources.c что-то подвинуть надо?
не очень удобно настраивать отдельной программой, мне надо почти полностью разобрать прибор (это не претензия, просто заметка, я понимаю что памяти мало)
.
Да. Через USBasp из АрдуиноИДЕ или через любой ICSP программатор отдельной софтиной хексом. Дисплей и счётчик на время прошивки снять. После заливки загрузчика далее можно снова шить по переходнику юсб2ком.
Для заливки через ИДЕ, скорее всего, придётся заморочиться с драйверами и задигом.
mambavamba14 - в архиве что-то утилиты не видать... или куда то не туда смотрю?
ivancheg8 - Прошивать загрузчик не обязательно, на данный момент все будет шиться и работать на любом загрузчике.
В статистике отображаются сохраненные в память время и доза, те до момента сохранения(полного заполнения бара и его обнуления в дозе) данные в статистике не меняются и соответственно при сбросе текущей дозы она уходит в память.
Это не картинки а одна картинка размером 84х8(fast_down_img[]), если нужно другое расположение то придется перерисовать и заменить битмап-карту.
Если вы уже знаете свои параметры преобразователя и опорного, достаточно их вбить при прошивке и ничего менять не придется, но если это так уж сильно нужно, то в прошивке 1.6.5 эта возможность осталась и на данный момент 1.6.5 и 1.7.0 по части дозиметра не отличаются. Утилита нужна для отладки нового устройства, тк иногда в процессе подбирая коеф.делителя и значение АЦП приходится по несколько раз прошивать у-во чтобы изменить эти параметры, да и в общем утилита направленна на упрощение этого процесса по средствам автоматической подстройки этих параметров, когда от пользователя требуется всего ввести номиналы резисторов и напряжения с мультиметра.
Wik - Она теперь по отдельной ссылке в том же посте #4225 только ниже. https://yadi.sk/d/Whzl3NczZ9IJ8A
mambavamba14 - Пардон, не доглядел))) По началу было же все в одном архиве)
Wik - Решил разделить, тк из-за множества версий уже получается какое-то месево... а по папкам если разделить, то уже мне будет не удобно обновлять архив))
alexadresat - А зачем в статистике менять время на такой же формат с секундами?? Все равно там же показания статичны... Мб тогда в дозе с сек. а в статистике без?
И ещё бы былоб неплохо накидать какой-нить дизайник для разностного замера...Хотяб примерно где что должно располагаться, а то мне что-то пока ничего путного в голову не приходит, кроме как в баре название "замер"...
mambavamba14 fast_down_img[] это нижняя картинка со стрелочками? а картинка с фонариками и выключателем это какая? мне нужно "стрелочку вверх" и "ок" поменять местами, соответственно картинки тоже.
ivancheg8 - Да, это нижняя картинка со стрелками и ок. "fast_flash_img[]" - фонарик, "fast_light_img[]" - подсветка, "fast_power_img[]" - выкл.питания. У вас перепутаны местами клавиши? Или для чего это?
mambavamba14 картинки местами я поменял, но не получается конвертнуть картинку. использовал программу LCDAssistant, но получаются кракозябры. я поле с ноликами тупо скопировал и заменил. подскажите, какой программой вы делаете, я ещё попробую.
У меня изначально в ардосе так: влево-ок-вправо. там было неважно, как разместить. у меня своя плата, делал под корпус элат сим-03
ivancheg8 - Картинки делаю в программе "Image generate". Про "LCDAssistant" не слышал, поэтому с ней помочь не могу.
А так вот держите, сдвинул битмап-карту как выше вы и писали "вниз, ок, вверх".
mambavamba14 спасибо большое! я поискал программы, это первая попавшаяся. Image generate сохранил, поковыряю её.
а пока всё работает, глюков не заметил. про время и дозу алгоритм понял. осталось только вибру прикрутить и фонарик.
mambavamba14 - Привет! Просто думал чтоб все однотипно было. Делай только в Дозе, а в Статистике пусть остается...
mambavamba, по поводу режима «замер» (кстати, название мне такое же в голову приходило):
дизайн сделать как режим «фон», только вверху перед большими цифрами надпись «замер 1»,
большие цифры дозы, динамическая полоска, отображающая время замера, и в нижней строке «старт» и «далее».
После запуска замера1 бежит полоска и бегут цифры, по окончании времени и полоска и цифры фиксируются в максимальном значении.
После нажатия «далее» такое же окно « замер 2».
После второго замера и нажатии «далее» окно «результат» и внизу выбор «повтор» и «выход» .
(рисовать сейчас не могу...)
alexadresat - Хорошо, сделаю.
Pav_13 - Неплохая идея, но я вот все думаю мб как-то все это дело уместить на одном экране(без кнопок далее и начать), а замер начинать останавливать по нажатию/удержанию одной из кл.
Да кстати, я тут все думал, мб на перемещение по режимам оставить одну кнопку(например вверх), а другую освободить для дополнительных действий/задач(как например в режиме поиск нажатие на кл.вниз - пауза графика, удер.кл.вниз сброс графика) и тд. по остальным экранам?
Я тоже про один экран думал, но, боюсь, тесновато будет... сокращений много будет... в кнопках путаться...
Прикинуть надо...
Короче, начинай, а там «Толкач муку покажет!» (поговорка) :)
По поводу кнопок хочу сказать, может быть я и не прав, но как по мне в меню "настройки" (да и в остальных меню) при движении по пунктам меню, кнопки "вверх" и "вниз" так и просятся поменяться местами. То-есть кнопка "вверх" (она же "вперед" >) на мой взгляд должна переводить курсор к следующему пункту меню, т.е. вниз, а кнопка "вниз" (она же "назад" <) наоборот поднимать курсор. По логике чтения книги каждая последуюшая строка находится все ниже.. (т.е. движемся "вперед" - вниз, и "назад" - вверх). Надеюсь ясно выразился.
Wik - вверх по лестнице ведущий в низ...
alexadresat - возможно звучит абсурдно... я имел ввиду движение по пунктам, а не изменение величин в этих пунктах.
Как, допустим, нумеруется любой список? начиная с первого пункта, который находится вверху и далее к низу, как ни странно, число пунктов увеличивается "вверх")))
Согласен с alexadresat - не надо вводить путаницу. Где-то в десяти-пятнадцати процентах промышленных контроллеров малой автоматизации в меню применён подобный принцип вверх-вниз (в остальных вполне нормально и логично), и это жутко бесит. Мы двигаем курсор по экрану, а не списку. К подобным отклонениям от общепринятого антипатия ещё со времён игр на первой соньке, когда девелоперы меняли принцип направления на вращение.