Push switch for two different actions c code

Status
Not open for further replies.

basavaraj.mr

Junior Member level 3
Joined
Mar 24, 2010
Messages
27
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,291
Location
banglore
Visit site
Activity points
1,537
Hi, all

I wanted to implement single push switch for 2 different actions.
1) if i press and hold for 3 sec the device should ON, if it is ON den it should OFF.
2) if i press and release do other actions.

Am not able to differentiate 1sec switch press and 3 sec switch press plzz help me..

Thanks in advance.
 

Are you using which controller for your ON/OFF function its more useful help you.. And if press a switch 3 sec on. Off how many sec?
 

Thanks for the reply,

Am using Controller, for ON /OFF,
If i press & hold switch for 3 sec it should get on.
if i press & hold for another 3 sec it should get off.
Single press should take another actions.
 

This code working for PIC 12F629..

press to on
hold 3 sec to off..

Code:
/* 
 * File:   code.c
 * Author: admin
 *
 * Created on March 26, 2013, 9:20 AM
 */
#include<HTC.h>
#include <stdio.h>
#include <stdlib.h>


#define led_on GPIO0=1;
#define led_off GPIO0=0;

/*
 * 
 */


void delay();
void delay1(int ms);


void main()
{
         TRISIO = 0b000100;

         while(1)

         {
             if(GPIO2==0)
             {
                 led_on;
                 GPIO=0b000111;
                 
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                     delay();
                      delay();
                     delay();
                     delay();
                     delay();

               if(GPIO2==0)
             {
                   GPIO=0b000100;

                       delay1(10);
//                  if(GPIO2==0)
//                  {
//                      int y=0;
//                      delay1(10);
//
//                      delay1(10);
//                       delay1(10);
//                       y++;
//
//
//                 if(y==80)
//                          {
//                     led_off;
//
//                         }


//                }
//             }
                 }
                 }

             }


         


}


void delay()
{
    for(int i=0;i<=200;i++);
    for(int a=0;a<=8000;a++);
}


void delay1(int ms)
{
    for(int b=0;b<=ms;b++)

{
    for(int i=0;i<=50;i++);
    for(int a=0;a<=8000;a++);
}
}
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…