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

Вкл. с 4 сек задержкой, выкл. однократное нажатие

+4 голосов

Нужна помощь, стоит задача вот по такому алгоритму заставить работать доп приборы на мотоцикле штатными клавишами, т.е. 

Включаем путем зажатием кнопки на 4 сек

Выключаем кратковременным нажатием этой же клавиши

при нажатии кнопки менее чем на 4 сек, ни чего происходить не должно!

Товарищи спецы, помогите с контролером и программой, мои знания в этом полный нуль, есть опыт работы с OWEN ПР110, но это очень громозко для данной ситуации!

18 Фев, 14 от аноним в категории Микроконтроллеры

2 Ответы

0 голосов
 
Лучший ответ

Примерно так

Микросхема 176ТМ2.  На вход S добавить резистор 100к на землю.  Резистором R1 и конденсатором С1 подобрать требуемое время включения при длительно нажатой кнопке.  R4 - от 100кОм до 1000кОм

18 Фев, 14 от Stoun (102,930 баллов)
0 голосов

 

Вот пример для МК tiny2313 в AVRStudio на языке С:

#include <avr/io.h>

#define Sbit(reg,bit) (reg|=(1<<bit))
#define Cbit(reg,bit) (reg&=~(1<<bit))
#define CheckBit(reg,bit) (reg&(1<<bit))

void wait(int x)
{
    TCNT1=0;
    while (TCNT1<x) {}
}

int main(void)
{
    DDRB=0b11111111; PORTB=0b00000000;
    DDRD=0b1111110; PORTD=0b0000001;
    DDRA=0b111; PORTA=0b000;
    
    TCCR1A=0x00;
    TCCR1B=0x05;

m1: while(1)
    {
        unsigned char x=0;
        
m2:     if CheckBit(~PIND,0)
        {
            if CheckBit(~PINB,0)
            {
                x++;
                wait(3907);
                
                if (x==4)
                {
                    Sbit(PORTB,0);
                    while CheckBit(~PIND,0) {}
                    goto m1;
                }
                goto m2;
            }
            
            if CheckBit(PINB,0)
            {
                Cbit(PORTB,0);
            }
        }
    }
}

Fuses для МК:

09 Март, 14 от аноним
редактировать 09 Март, 14