Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Котуинко

Ср май 25, 2022 11:28:42

Практически в любой IDE есть опция контроля ошибок.
После установки выпадает список того, что устранить требуется - всего-то пройтись по исходнику и поправить.
Синтаксис в Си/С++ штука весьма значимая - раз влез в данные ЯВУ - изучай и запоминай!
8)
Я в адуринке включил "файл-настройки-сообщения компилятора - ВСЕ" и весьма тому доволен.
Большинство простейших и все некорректные конструкции заранее указывает.
:hunger:

Re: Котуинко

Вт июн 07, 2022 21:10:15

Наконец таки испекся практически полный аналог КР145ИК1901 на ардуинке.
Схемка макетки
https://img.radiokot.ru/files/20529/2tic4f218y.GIF
Собственно моя версия макета из "подручных кубиков"
https://img.radiokot.ru/files/20529/2tic3k8gq1.jpg
Собственно сам СКОТч:
prvtm.zip
(102.23 KiB) Скачиваний: 71

Исходник с самодельной библиотечкой для дисплея на MAX7219 лежит в папке max72m.
Его надо перекинуть в соответствующий раздел IDE перед запуском компиляции.
Размер конечно жутковатый - результат компиляции под 10 килобайт, менюшкины экраны весьма примитивны - но то ужшшш...возможности дисплея...
Система без RTC на собственном источнике тактирования.
Вот тут более серъезная проблема.
Основной генератор (на основе прерывания SIGNAL(TIMER0_COMPA_vect) ), как оказалось таки дает суточное отклонение (хотя и стабильное)...
Второй вариант - тактирование часов от INT0/INT1+ tone позволяет сделать коррекцию.
Но там вылазит нестабильность при одновременной работе главных часов и кого-то из секундомера/таймера.
Так что все же лучше (при необходимости) запускать часики от RTC.
Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".
Касательно функционала самого устройства -
главные часы (настройка часов, минут, пуск секундомера и корректор точности хода);
секундомер;
таймер обратного отсчета с возможностью ввода уставки (до 99 часов 59 минут);
два будильника с раздельной установкой времени, разрешения и активного уровня на выходе;
ну и там еще 4 свободных места под.... фантазию пользователя.
Из режима индикации главных часов возможно отключение активированного выхода будильника...
УФФ...
Описание работы с менюшками для пользователя отдельно попозже постараюсь нашкрябать, ежли настроение творческо посетит...
:beer:

Re: Котуинко

Ср июн 08, 2022 20:47:27

Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".

Я бы обязательно ответил,или чё нибудь посоветовал,но я ничего в этом не понимаю.

А почему программа крутится в первой части (х) ,хотелось чтобы она переходила через некоторое количество циклов на вторую часть. А потом опять возвращалась...
#include <avr/io.h>

#include <avr/interrupt.h>

float x;
float y;

int main(x){
x=x+3;
sei();
DDRD=(PD0+1);
TIMSK=(TOIE0+1);
TCCR0=(CS00+1);
PIND=(PD0+x);

while(1,x){;}
}

int main1(y){
y=y+3;
sei();
DDRD=(PD0+1);
TIMSK=(TOIE0+1);
TCCR0=(CS00+1);
PIND=(PD0+y);
while(1,y){;}
}

Re: Котуинко

Ср июн 08, 2022 21:18:46

while(1){} = вечный цикл
что такое
while(1,x){} как-то совершенно непонятно...
8)

Re: Котуинко

Ср июн 08, 2022 21:50:51

А перед while(1){} = вечный цикл, какой нибудь переход по условию вставить,чтобы переходил на вторую часть ?

Re: Котуинко

Чт июн 09, 2022 08:52:19

while(1){} = вечный цикл
что такое
while(1,x){} как-то совершенно непонятно...
8)

Учим уроки.) Операция запятая. == while (x);

Re: Котуинко

Чт июн 09, 2022 09:04:54

Собственно а зачем?
В программе один главный цикл.
А уж в него можно вставлять чего угодно - хоть самодельны функции, хоть дополнительные файлы со своими нуждами.
И соответственно требуемых условий переключаться между отдельными программами.
По такому принципу проект аналога КР145ИК1901 на ардуинке и построен..
Правда чуток с корректором точности хода перемудрил.
Вместо

надо поставить

8)
OKF
а ссыль на первоисточник, где оное прописано не предоставите?
Мне такое пока в книжах не встречалось...
:dont_know:

Re: Котуинко

Чт июн 09, 2022 14:48:18

Какие-то непрвильные книжки вы читаете. Откройте лучше стандрат языка - 6.5.17 Comma operator.
На худой конец, педевикию - ищем оператор с самым низким приоритетом.

Re: Котуинко

Чт июн 09, 2022 18:57:40

никак не могу запомнить, какое выражение возвращается оператором запятая - первое или последнее... оно мне как бы и не надо, но чтобы вот такой стреляющий в ногу код понимать, иной раз пригождается

Re: Котуинко

Чт июн 09, 2022 19:21:55

При работе с вариативными шаблонами частенько пригождается. Когда надо сделать какое-то дейстаие над всеми параметрами шаблона или взять последний из пачки параметр.

Ну или просто поприкалываться можно. Вот, кмк, смешная по знакам припинания функция
Код:
bool isKeyPressed()
{
  return key_pressed?key_pressed=false,true:false;
}
Это ещё без плюсов, там куда смешнее получается.

Re: Котуинко

Чт июн 09, 2022 20:30:17

МНДЯАА...
"эксклюзив для садомазохизма"...
:facepalm:

Re: Котуинко

Чт июн 09, 2022 21:56:09

VladislavS писал(а):взять последний из пачки параметр
т.е. все-таки последний... в этот раз попробую запомнить надольше.

Re: Котуинко

Чт июн 09, 2022 22:00:12

смешная по знакам припинания функция
Замечено было, что сия смешная функция (тернарная условная операция) некоторыми компиляторами не очень хорошо оптимизируется, если сравнивать с классической if {} else {}

Re: Котуинко

Чт июн 09, 2022 22:08:17

Выкиньте те мифические компиляторы - они не достойны существования.

Re: Котуинко

Чт июн 09, 2022 22:12:21

Эту функцию (m = n ? a:b) в референс адуринки также "забыли положить", хотя оная там вполне работоспособны и весьма удобна.
:hunger:
Чего не скажешь о вышеупомянутой запятой (,).
:facepalm:

Re: Котуинко

Чт июн 09, 2022 22:24:38

VladislavS, они не мифические и не могу выкинуть - ещё кучка мк для них есть. В частности, это компилятор от Cosmic

Добавлено after 4 minutes 17 seconds:
весьма удобна

если не злоупотреблять: a ? b : c ? d : e уже менее удобочитаема, а ещё один "каскад" и вовсе "вырвиглазен". Хотя, возможно, это субъективно...

Re: Котуинко

Пт июн 10, 2022 09:47:19

На такой случай возможно иные варианты нешения более подходящими окажутся.
Я на СИшные конструкции смотрю с точки зрения ассемблерных приемов - посему особо усложнять
без необходимости желания не имеется - ищем другогй вариант (благо таких в достатке).
8)

Re: Котуинко

Вс июн 12, 2022 21:20:30

Круть-верть...
А без RTC с адуринкой никуда...
Вопрос в самом RTC...
DS1307 работает при питании 5 вольт, DS3231 при 3 (не выше)...
Следовательно или питание стационарно от сети или от аккумулятора...
А хочется соорудить с питанием от акума и зарядкой от сети (через блочек на TP4056...
Но там на схеме может бысть от 5 до 2.5 вольтея при сохранении активного состояния RTC...
Из подручного разве что PCF8583 (остальное из области фэнтэзи)...
:roll:

Re: Котуинко

Вс июн 12, 2022 22:27:01

Согласно ДШ, напряжение питания DS3231 может быть в пределах 2.3 - 5.5В.

Re: Котуинко

Вс июн 12, 2022 23:45:26

В одном месте 2,3-5...
в другом - типовое 3,3 максимальное 5,5...
Но на зарядке стоять аккумулятору несколько часов.
Похоже таки проще просто переключать источник с работы на зарядку.
:roll:
Пора тему закрывать и "на покой"...
:(
Ответить