Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Практически в любой IDE есть опция контроля ошибок.
После установки выпадает список того, что устранить требуется - всего-то пройтись по исходнику и поправить.
Синтаксис в Си/С++ штука весьма значимая - раз влез в данные ЯВУ - изучай и запоминай!
8)
Я в адуринке включил "файл-настройки-сообщения компилятора - ВСЕ" и весьма тому доволен.
Большинство простейших и все некорректные конструкции заранее указывает.
:hunger:
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Наконец таки испекся практически полный аналог КР145ИК1901 на ардуинке.
Схемка макетки
https://img.radiokot.ru/files/20529/2tic4f218y.GIF
Собственно моя версия макета из "подручных кубиков"
https://img.radiokot.ru/files/20529/2tic3k8gq1.jpg
Собственно сам СКОТч:
prvtm.zip
(102.23 КБ) 121 скачивание
Исходник с самодельной библиотечкой для дисплея на MAX7219 лежит в папке max72m.
Его надо перекинуть в соответствующий раздел IDE перед запуском компиляции.
Размер конечно жутковатый - результат компиляции под 10 килобайт, менюшкины экраны весьма примитивны - но то ужшшш...возможности дисплея...
Система без RTC на собственном источнике тактирования.
Вот тут более серъезная проблема.
Основной генератор (на основе прерывания SIGNAL(TIMER0_COMPA_vect) ), как оказалось таки дает суточное отклонение (хотя и стабильное)...
Второй вариант - тактирование часов от INT0/INT1+ tone позволяет сделать коррекцию.
Но там вылазит нестабильность при одновременной работе главных часов и кого-то из секундомера/таймера.
Так что все же лучше (при необходимости) запускать часики от RTC.
Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".
Касательно функционала самого устройства -
главные часы (настройка часов, минут, пуск секундомера и корректор точности хода);
секундомер;
таймер обратного отсчета с возможностью ввода уставки (до 99 часов 59 минут);
два будильника с раздельной установкой времени, разрешения и активного уровня на выходе;
ну и там еще 4 свободных места под.... фантазию пользователя.
Из режима индикации главных часов возможно отключение активированного выхода будильника...
УФФ...
Описание работы с менюшками для пользователя отдельно попозже постараюсь нашкрябать, ежли настроение творческо посетит...
:beer:
Реклама
Аватара пользователя
главный колбасист
Это не хвост, это антенна
Сообщения: 1331
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край
Контактная информация:

Re: Котуинко

Сообщение главный колбасист »

[uquote="BOB51",url="/forum/viewtopic.php?p=4242190#p4242190"]Ранние конструкции под ассемблером такой пакостью не страдали - но... там я абсолютно владел структурой программы, а в данном случае специально ограничивался рамками "референса".[/uquote]
Я бы обязательно ответил,или чё нибудь посоветовал,но я ничего в этом не понимаю.

А почему программа крутится в первой части (х) ,хотелось чтобы она переходила через некоторое количество циклов на вторую часть. А потом опять возвращалась...
#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){;}
}
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

while(1){} = вечный цикл
что такое
while(1,x){} как-то совершенно непонятно...
8)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
главный колбасист
Это не хвост, это антенна
Сообщения: 1331
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край
Контактная информация:

Re: Котуинко

Сообщение главный колбасист »

А перед while(1){} = вечный цикл, какой нибудь переход по условию вставить,чтобы переходил на вторую часть ?
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1392
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Котуинко

Сообщение OKF »

[uquote="BOB51",url="/forum/viewtopic.php?p=4242631#p4242631"]while(1){} = вечный цикл
что такое
while(1,x){} как-то совершенно непонятно...
8)[/uquote]
Учим уроки.) Операция запятая. == while (x);
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

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

Код: Выделить всё

// обработчик "генератора секунды"
// главных часов и секундмера/таймера
void mainClk()
{
 static int ClkDat = rtime;
 ClkDat--;
 if (!ClkDat)
  {
   FCnt_B = 1; ClkDat = rtime;
  }
}
надо поставить
Спойлер

Код: Выделить всё

void mainClk()
{
 static int ClkDat = 5000;
 ClkDat--;
 if (!ClkDat)
  {
   FCnt_B = 1; ClkDat = 5000;
  }
}
8)
OKF
а ссыль на первоисточник, где оное прописано не предоставите?
Мне такое пока в книжах не встречалось...
:dont_know:
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

Какие-то непрвильные книжки вы читаете. Откройте лучше стандрат языка - 6.5.17 Comma operator.
На худой конец, педевикию - ищем оператор с самым низким приоритетом.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

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

Ну или просто поприкалываться можно. Вот, кмк, смешная по знакам припинания функция

Код: Выделить всё

bool isKeyPressed() 
{ 
  return key_pressed?key_pressed=false,true:false; 
}
Это ещё без плюсов, там куда смешнее получается.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

МНДЯАА...
"эксклюзив для садомазохизма"...
:facepalm:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

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

Мой уютный бложик... заходите!
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Котуинко

Сообщение Martian »

[uquote="VladislavS",url="/forum/viewtopic.php?p=4242992#p4242992"]смешная по знакам припинания функция[/uquote]Замечено было, что сия смешная функция (тернарная условная операция) некоторыми компиляторами не очень хорошо оптимизируется, если сравнивать с классической if {} else {}
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Котуинко

Сообщение VladislavS »

Выкиньте те мифические компиляторы - они не достойны существования.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Эту функцию (m = n ? a:b) в референс адуринки также "забыли положить", хотя оная там вполне работоспособны и весьма удобна.
:hunger:
Чего не скажешь о вышеупомянутой запятой (,).
:facepalm:
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Котуинко

Сообщение Martian »

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

Добавлено after 4 minutes 17 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4243096#p4243096"]весьма удобна[/uquote]
если не злоупотреблять: a ? b : c ? d : e уже менее удобочитаема, а ещё один "каскад" и вовсе "вырвиглазен". Хотя, возможно, это субъективно...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

На такой случай возможно иные варианты нешения более подходящими окажутся.
Я на СИшные конструкции смотрю с точки зрения ассемблерных приемов - посему особо усложнять
без необходимости желания не имеется - ищем другогй вариант (благо таких в достатке).
8)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

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

Re: Котуинко

Сообщение Ser60 »

Согласно ДШ, напряжение питания DS3231 может быть в пределах 2.3 - 5.5В.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

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

Вернуться в «Разные вопросы по МК»