24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Таймер

Здесь только проекты на ATtiny
Forum rules
test2
Post Reply
Zed
Пробегал мимо
Posts: 4
Joined: 28 Jan 2009 02:59

Таймер

Post by Zed »

Есть предложение дополнить проекты еще одним на базе той же схемы :oops: :-)
У фирмы Овен есть реле времени двухканальное, функций дофига, но штука в быту нужная.
Например, уезжаю я из дому, а обогреватель шурует целый день, а с этакой штукой выставил циклический таймер ему на сутки (типа час работает, два стоит) и ок.
Наворотов конечно у овна полно, а вот если упростить, то как дополнение к остальным устройствам суппер будет.
http://kipshop.ru/Documentation/passport/ut24_353.pdf
User avatar
hardlock
Администратор
Posts: 3959
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Таймер

Post by hardlock »

Пишите, что хотите от таймера, а я подумаю в этом направлении как будет время.

А для обогревателя как раз и делался термостат, чтобы можно было оставлять хоть на неделю...
Zed
Пробегал мимо
Posts: 4
Joined: 28 Jan 2009 02:59

Re: Таймер

Post by Zed »

Прибор можно накрапать на базе схемы терморегулятора http://hardlock.org.ua/mc/tiny/termostat_v1/index.html
То есть две кнопки (Pa1,Pa0)
Два выхода (Pd3,Pd2)
Внешний сигнал (Старт,стоп) (Pd6)
Сброс (Reset)

Первое включение:
Видим мигающие 00.00 на Pd3,Pd2 состояние Z
Вход в меню осуществляется удержанием на протяжении 3 сек кнопок + и -
После входа первая цифра (т.е. Pd5) индицирует 1, что означает первый временной интервал.
Максимальное количество интервалов 4.
Перемещение по меню осуществляется кнопками + и -.
Вход и выход в\из подменю - кратковременное нажатие кнопок + и -.
Выход в режим отсчета осуществляется удержанием на протяжении 3 сек кнопок + и -.

Задание интервала 1,2,3,4:
После входа в 1 (+и-) видим 00.00
Первые две цифры - это часы , вторые, секунды.
Установка осуществляется нажатием + или - (Чем дольше держишь кнопку, тем быстрее происходит изменение значения)
Максимальный диапазон 99 часов 99 мин
Минимальный 1 секунда
Для установки минут и секунд необходимо из стартового входа просто листать - (значение будет меняться от 99.99 к 00.01)
Отличительная часть часового и минутного интервалов можно сделать точку (В часовом она будет мигать раз в 1 сек. , а в мин 4 раза в сек)

Каждый из интервалов может устанавливаться индивидуально от запроса хазяина прибора. Запись производится в энергонезависемую память.

Листая меню
5-------Выход канала 1 (1 прямой, 0- инверсный) По умолчанию 0
6-------Выход канала 2 (1 прямой, 0- инверсный) По умолчанию 0
Каналу 1 соответствует 1-й временной интервал, а каналу 2 соответствует 2-й временной интервал.
Интервалы 3 и 4 служат для так называемых пауз.
7-------Активация по внешнему сигналу (1 -активна, 0- не активна) По умолчанию 0 . При замыкании на Gnd начинается отсчет, при повторном нажатии - прекращается.

Работа прибора после установок.
При заданном только интервале 5 часов 00 мин (Канал 1)
И выходе канала - прямой
После подачи питания на прибор видим обратный отсчет времени, мигающий раз в 1 сек разделитель 04.99 и логическую 1 на выходе.
При пропадании питания отсчет опять начинается с ранее установленного интервала. При дохождении времени до 1 часа индикация переходит в 59.59 ,а мерцание разделителя меняется на 4 раза в пол секунды. Достигнув 00.00 на выходе появляется 0, который удерживается до сброса питания.
На сегодня все. Дальнейшие пояснения позже :-)
User avatar
hardlock
Администратор
Posts: 3959
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Таймер

Post by hardlock »

Zed, хорошее описание! Прямо тех задание! Спасибо!
Как только появится время - постараюсь реализовать, а сейчас ввязался в комерческий проект, который не оставляет время, поэтому пока беру на заметку Ваше техзадание!
Zed
Пробегал мимо
Posts: 4
Joined: 28 Jan 2009 02:59

Re: Таймер

Post by Zed »

Я сам пытаюсь писать, но есть камни, такие как таймеры и вектора прерываний.
User avatar
hardlock
Администратор
Posts: 3959
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Таймер

Post by hardlock »

Zed wrote:но есть камни, такие как таймеры и вектора прерываний
Та мвроде бы ничегосложного, если понять принцип работы.
Valentin_N
Пробегал мимо
Posts: 3
Joined: 12 Feb 2009 23:44
Location: ЮФО

Re: Таймер

Post by Valentin_N »

собственно афтору...
огромное спасибо с большим поклоном, за ваше желание поделится своими наработками с такими как я...
с паяльником на ты уже навена лет так 15... а еще и программист,на Delphi напишу чего угодно :)
но с МК к сожелению на ВЫ, думаю что это явление временное, но не сейчас....
для родителей собрал по вашей схеме устройство ТЕРМОСТАТ для инкубатора, заработало с пол пинка ;) очень радует, что родители довольны, т.к. не приходится бегать с градусником...
но вот для себя решил собрать таймер времяни.... касяк получился... в нете ток фельдиперсовые или очень дорогие схемы...
берем схему ТЕРМОСТАТА.... практически готовая, только на вход датчика температуры добавляем кнопку start/stop, и меняем софт (в чем и проблема)....
вот и готов таймер...
мелоч осталось, написать софт :)
т.к. что огромная просьба афтору сайта уделить внимание данной теме :) она очень актуальна...
простой одиночный таймер с зумером (тех реализация зумера мелочи)...
готов к альфа и бета тестированию...
User avatar
hardlock
Администратор
Posts: 3959
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Таймер

Post by hardlock »

Valentin_N wrote:т.к. что огромная просьба афтору сайта уделить внимание данной теме она очень актуальна...
простой одиночный таймер с зумером (тех реализация зумера мелочи)...
готов к альфа и бета тестированию...
к сожалению сейчас занят сменой машины (свою продаю, новую беру), поэтому времени даже на форум иногда не находится... Напишите подробно, чего хочется от таймера (очень подробно), своего рода техзадание, а я в свою очередь постараюсь выкроить время.
Lektor
Пробегал мимо
Posts: 20
Joined: 13 Oct 2009 23:18

Re: Таймер

Post by Lektor »

Вот переодически захожу на данный форум в надежде улицезреть долгожданный таймер,а его все нет и нет :( Эх
User avatar
hardlock
Администратор
Posts: 3959
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Таймер

Post by hardlock »

Наверное и не будет. Работа не даёт заниматься даже тем, что уже есть, не говоря о чём-то новом.

ЗЫ: Поищите в инете. Думаю найдте подобные проекты.
Lektor
Пробегал мимо
Posts: 20
Joined: 13 Oct 2009 23:18

Re: Таймер

Post by Lektor »

Поищите в инете. Думаю найдте подобные проекты.
Так я ж и ищу ток все безрезультатно. :( Хотелось бы чтото на родной :-) ATtiny2313 или ATmega8.
Coviraylhik
Частенько бываю
Posts: 69
Joined: 18 Feb 2010 23:05
Location: ZP.UA

Re: Таймер

Post by Coviraylhik »

Я тоже интересуюсь таким таймером.Есть такой таймер на ATtiny2313 http://avr.inf.ua/timer_v2.html (на ЛСД , мне больше подошел бы на индикаторах) ,если кто сделает отпишитесь,а то там отзывы не написаны.
strem
Пробегал мимо
Posts: 5
Joined: 03 Feb 2010 12:37
Location: Мелитополь

Re: Таймер

Post by strem »

посмотрите на http://arv.radioliga.com/content/view/213/44/ таймер, собранный на микроконтроллере attiny2313.

Таймер предназначен для управления бытовыми нагрузками по одному из 3 алгоритмов:

Цикл: непрерывное включение нагрузки на заданный интервал времени с последующим отключением на другой заданный интервал;
Выдержка и однократное включение – включение нагрузки по истечению заданного интервала времени;
Выдержка и однократное отключение – отключение нагрузки по истечению заданного интервала времени.
Lektor
Пробегал мимо
Posts: 20
Joined: 13 Oct 2009 23:18

Re: Таймер

Post by Lektor »

strem wrote:
посмотрите на http://arv.radioliga.com/content/view/213/44/ таймер, собранный на микроконтроллере attiny2313.
Там пока прошивка сыроватая с глюками,релиз совсем недавно вышел. :-)
FDoich
Частенько бываю
Posts: 43
Joined: 01 Mar 2009 21:30

Re: Таймер

Post by FDoich »

Один хороший человек мне сделал.
http://narod.ru/disk/20329132000/%D0%A2 ... 8.rar.html
Demckiy
Частенько бываю
Posts: 37
Joined: 13 Apr 2010 18:49

Re: Таймер

Post by Demckiy »

Может кому то пригодится или поможет...

В одной из статей о таймере я рассказал, как с помощью прерывания по переполнению можно отсчитывать временные промежутки. В этой статье я хочу рассказать о еще одном способе отсчета временных интервалов. Основан он на использовании прерывания по совпадению. В составе микроконтроллера Mega8 есть шестнадцатиразрядный таймер-счетчик Timer/Counter1, который может выполнять функцию сравнения с

заранее заданным числом и при совпадении вырабатывать прерывание по сравнению. Этот таймер может работать в нескольких режимах (генерация ШИМ, генерация ШИМ с фазовой коррекцией, сброс счетчика при совпадении и т.д.), которые задаются управляющими регистрами TCCR1A и TCCR1B. Подробнее о них вы сможете прочитать в соответствующей литературе по микроконтроллерам, которую можно скачать на сайте. Мы будем использовать режим сброса счетчика при совпадении. Как он работает? В специальный регистр заносится число, определяющее коэфициент деления счетчика. Таймер считает с нуля, и как только досчитает до числа, которое записано врегистре, сбрасывается в ноль и вырабатывает прерывание по совпадению. Таким образом, можно задавать любой коэфициент деления в пределах от 0 до 65535. Например для кварца 11,0592 МГц, чтобы получит перывание с интервалом в 1с нужно установит коэфициент предделителя равным f/1024, а в регистр сравнения записать число 0x2A2F или 10799 в десятичной системе счисления. Как мы получили это число? Да очень просто, тактовую частоту делим на 1024 (11059200/1024-1=10799). Именно такая частота будет на входе счетчика после предделителя. А тепер, чтобы получит частоту 1 Гц, нам нужно входную частоту поделить на 10799 - именно это число мы и записыванм в регистр сравнения. Когда таймер досчитает до 10799, он выработает прерывание и сбросится в ноль. Таким образом прерывание будет выполнятся 1 раз в секунду. Программа с использованием прерывания по совпадению будет выглядеть так:

Code: Select all

#include "Mega8.h"
#include "m8def.h"
#include "delay.h"
#define LED PORTC.0  // Выход на исполняющий модуль
#define ON 1
#define OFF 0

#define IND_1 PORTC.2      // Аноды семисегментных индикаторов
#define IND_2 PORTC.3      // катоды подключены к порту D
#define IND_3 PORTC.4     
#define IND_4 PORTC.5     

#define BT1 PINB.0      //Сюда подключены кнопки управления
#define BT2 PINB.1     
#define BT3 PINB.2

unsigned char dsp = 1;   
unsigned char Disp1, Disp2, Disp3, Disp4;

unsigned char Dig[13];     

unsigned char buton1, buton2, buton3;  //Переменные для кнопок

unsigned int minute, second;  
unsigned int old_minute, old_second;
bit stoptimer = 1;              // Флаг остановки таймера
//-----------------------------------------------------
// Описание символов
void init_symbol()
{
    Dig[0] = 192;            // "0"
    Dig[1] = 249;            // "1"
    Dig[2] = 164;            // "2"
    Dig[3] = 176;            // "3"
    Dig[4] = 153;            // "4"
    Dig[5] = 146;            // "5"
    Dig[6] = 130;            // "6"
    Dig[7] = 248;            // "7"
    Dig[8] = 128;            // "8"
    Dig[9] = 144;            // "9"
    Dig[10] = 255;            // " "
    Dig[11] = 134;           // "E"
    Dig[12] = 135;           // "t"
}

// ----------------------------------------------------
// Функция вывода на дисплей

void Display (unsigned int Number)
{
    unsigned char Num1, Num2, Num3, Num4;
    unsigned int temp;  // Временная переменная

    Num1 = Num2 = Num3 = Num4 = 0;
    temp = Number;
    //-------------------------------
    while (temp >= 1000)
    {
        temp -= 1000;
        Num1++;
    }

    while (temp >= 100)
    {
        temp -= 100;
        Num2++;
    }

    while (temp >= 10)
    {
        temp -= 10;
        Num3++;
    }

    Num4 = temp;
   
   
   
    Disp1 = Dig[Num1]; 
    Disp2 = Dig[Num2] & 0b01111111; // Включаем десятичную точку
    Disp3 = Dig[Num3]; 
    Disp4 = Dig[Num4];

}



//-------------------------------------------------
// Инициализация портов
void Init_Port(void)
{
  DDRB = 0b11111000;
  PORTB = 0b00000111;
  DDRC = 0b11111111;
  PORTC = 0b00000000;
  DDRD = 0b11111111;
  PORTD = 0b00000000;
}

void Timer0_Init(void)
{
   TCCR0 |= (1 << CS02);
   TIMSK |= (1 << TOIE0);  
}

void Timer1_Init(void)
{
   TCCR1B |= (1 << WGM12)|(1 << CS12)|(1 << CS10);    // Устанавливаем коэфициент предделителя 1/1024 и сброс таймера при совпадении
   OCR1AH = 0x2A;   //Записываем коэфициент деления в регистр сравнения (старший байт)
   OCR1AL = 0x2F;    //Записываем коэфициент деления в регистр сравнения (младший байт)
   TIMSK |= (1 << OCIE1A);            // разрешаем прерывание таймера 1 по совпадению
  
}

//---------------------------------------------
// Функция установки минут
void Set_Minute(void)
{
   minute ++;
   if (minute>59)
   {
      minute = 0;
   }
}
//---------------------------------------------
// Функция установки секунд
void Set_Second(void)
{
   second ++;
   if (second>59)
   {
      second = 0;
   }            
}
//---------------------------------------------------------
// Инициализация сторожевого таймера

void WDOG_Init()
{
    WDTCR = (1 << WDP1);
    #asm("WDR");
    WDTCR |= (1 << WDE);
}

//*********************************************
void main(void)
{
   init_symbol();
   Init_Port();
   Timer0_Init();
   Timer1_Init();
   WDOG_Init();
   #asm ("sei");
  
   while(1)
   {
      if (stoptimer==1)
      {
         LED = OFF;

         if ((buton1>=84)&(buton2==0)&(buton3==0))   //Если нажата кнопка 1
         {                 //устанавливаем значение минут
            buton1 = 0;
            Set_Minute();
         }
         if ((buton2>=84)&(buton1==0)&(buton3==0))   // Если нажата кнопка 2
         {                 // устанавливаем значение секунд
            buton2 = 0;
            Set_Second();
         }
      }

      if ((buton3>=17)&(buton1==0)&(buton2==0))   // Если нажата кнопка 3
      {                 // запускаем или останавливаем таймер
         buton3 = 0;
         if (stoptimer==1)
         {
            if ((minute==0)&(second==0))
            {
               minute = old_minute;
               second = old_second;
            }
            else
            {
               old_minute = minute;
               old_second = second;
               stoptimer = 0;
               LED = ON;
            }
         }
         else           
         {
            stoptimer = 1;
            LED = OFF;
         }
         delay_ms(1000);
      }
      Display(minute*100+second);
   }
}
//**********************************************
//Прерывание по совпадению таймера 1
interrupt [TIM1_COMPA] void Time_s()
{
   if (stoptimer==0)
   {
      second--;        // Уменьшаем на 1 значение second
     
  
      if ((second>59)&(minute !=0))
      {
         second = 59;  // уменьшаем минуты на 1
         minute --;
      }           
      if ((minute==0)&(second==0))
      {
         stoptimer = 1;
      }
   }

//-----------------------------------

}
//Прерывание таймера 0 по переполнению
interrupt [TIM0_OVF] void Refresh_Display()
{
      #asm("WDR");
      if (dsp == 1)
      {
          IND_4 = 1;
          PORTD = Disp1;
          IND_1 = 0;
      }

      if (dsp == 2)
      {
          IND_1 = 1;
          PORTD = Disp2;
          IND_2 = 0;
      }

      if (dsp == 3)
      {
          IND_2 = 1;
          PORTD = Disp3;
          IND_3 = 0;
       }

      if (dsp == 4)
      {
          IND_3 = 1;
          PORTD = Disp4;
           IND_4 = 0;
       }

 
      dsp ++;
      if (dsp == 5)
      {
          dsp = 1;
      }

//---------------------------------
   if (BT1 == 1)    // Проверяем нажатие кнопок
   {
      buton1 = 0;
   }
   else
   {
      buton1 ++;
   }

   if (BT2 == 1)
   {
      buton2 = 0;
   }
   else
   {
      buton2 ++;
   }
   if (BT3 == 1)
   {
      buton3 = 0;
   }
   else
   {
      buton3 ++;
   }

} 
http://samodelkin.kiev.ua/2010-02-07-17 ... -timer-new
Lektor
Пробегал мимо
Posts: 20
Joined: 13 Oct 2009 23:18

Re: Таймер

Post by Lektor »

FDoich wrote:Один хороший человек мне сделал.
http://narod.ru/disk/20329132000/%D0%A2 ... 8.rar.html
FDoich,а более детальную информацию можешь подкинуть?Очень заинтересовал меня этот проэкт.И еще вопросик,а в какой программе собирать исходник прилагающийся к таймеру???Я пробывал и Код Виджен AVR и WinAVR чет не получается :(
Zver666
Пробегал мимо
Posts: 6
Joined: 05 May 2010 00:14

Re: Таймер

Post by Zver666 »

Приветствую.
Есть вариант таймера на PIC и ЖК дисплее, управление - 7 или 9 каналов нагрузки
линк: http://aes.at.ua/publ/tajmer_na_sem_vykhodov/12-1-0-245
хочу такой собрать для аквариума, летом пробовал развести под ДИП, получилась не очень :wall:.
Нужно было получить "вытянутую" плату (контроллер, обвязка, прочее) + плата ЖК экрана и кнопки управления на шлейфе (до 1 метра) в отдельном корпусе.
Пожалуйста помогите развести под СМД компоненты :oops: , только не с очень плотным монтажом (боюсь плохо дорожки будут переносится :dontknow: , так хоть подправить маркером смогу).
Cry Baby
Частенько бываю
Posts: 48
Joined: 14 Apr 2010 08:48

Re: Таймер

Post by Cry Baby »

.
Last edited by Cry Baby on 10 Nov 2011 06:58, edited 2 times in total.
UT5ULJ
Пробегал мимо
Posts: 20
Joined: 16 Oct 2010 17:54
Location: Ukraine Kiev
Contact:

Re: Таймер

Post by UT5ULJ »

был бы оччень полезный девайс если бы совместить функцию тахометра и счетчика наработки по времени. В подвесных лодочных и стационарных моторах То проходит по наработке моточасов. Вот такой девайсиккоторый бы считал время работы по наличии счетных импульсов от системы зажигания и суммировал их. Кто бы взялся сваять такую прошивку для контролера ?
User avatar
Nizam
Пробегал мимо
Posts: 8
Joined: 19 Jan 2011 12:07
Contact:

Re: Таймер

Post by Nizam »

Cry Baby, Можно получить схему, печатку и прошивку на таймер с AT89C2051??
Cry Baby
Частенько бываю
Posts: 48
Joined: 14 Apr 2010 08:48

Re: Таймер

Post by Cry Baby »

.
Last edited by Cry Baby on 10 Nov 2011 06:57, edited 1 time in total.
bars59
Частенько бываю
Posts: 28
Joined: 24 Apr 2010 19:34

Re: Таймер

Post by bars59 »

Вот почитайте http://arv.radioliga.com/content/view/213/44/
Прилагаю архив.
Attachments
micro-timer-superfinal-v2.rar
(31.85 KiB) Downloaded 624 times
Post Reply