I have tested this module on my car ; works verry fine, like I expect.Since this will be use on car, I think this is one good ideea to minimize the consumption.So I try to write something...Please take one advice...Thanks !
I have tested this module on my car ; works verry fine, like I expect.Since this will be use on car, I think this is one good ideea to minimize the consumption.So I try to write something...Please take one advice...Thanks !
I think it might be better to ...It looks like you have correctly set-up the pic to wake from sleep on PORT change (either switch).Code:main: rel1=0 rel2=0 @ sleep pause 100
So then it wakes up ... drives the motor relays as necessary ... and only after the motor is finished, and no buttons are pressed, go back to sleep.
The two NOP's are only required if it will be jumping to an Interrupt vector on wake up.
Yours is just continuing where it left off.
Hmmm, sounds like a powered antenna driver. ??
<br>
DT
Thanks for reply ! I KNOW that YOU are right. ...Now my car has "intelligent" windows!
...I think to 'implement' the detection of 'long press button/short press button', but after one short holidays...All the best !
I'm back ! ...with another challenge :
- if press short but1 (or but2) the schematic works like before (ON/OFF rel, at every press of but1/but2 or overload detection) ;
- but...if press long (over 1 sec) but1 (or but2) the relay must be ON as long as the but is press; once the but is release, the relay must go OFF.
I try to implement some code from Melanie's advices (Thanks !) founded on this forum, but the result are not good...Relay don't go ON not at all ...
I see this is the way witch work the electric windows on other cars ( with two different type of press: long & short) ; maybe, with - a lot of - help, I make my car (b.t.w. - Logan by Renault !) with really intelligent windows ! Thanks in advance for any advice !
Challenge? ... What challenge?
Started with a previous version ...
I'll have to charge you for the next one though.Code:'**************************************************************** '* Name : THE_BUTON_sleep.BAS * '**************************************************************** @ DEVICE PIC12F675, intrc_osc_noclkout, wdt_OFF, pwrt_on, mclr_off, bod_off DEFINE OSC 4 DEFINE ADC_BITS 10 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 50 CMCON = 7 OPTION_REG = %10000110 TRISIO = %00011110 ANSEL = %00011000 ADCON0 = %10001101 GIE var intcon.7 ' global interrupt enable 1=on ; 0=off gpie var intcon.3 'port change interrupt enable 1=0n ; 0=off gpif var intcon.0 'port change interrupt flag bit adval var Word vt var word u var byte cnt var byte but1 var gpio.3 but2 var gpio.2 rel1 var gpio.5 rel2 var gpio.0 Timer1 VAR WORD EXT :@Timer1 = TMR1L TMR1ON VAR T1CON.0 TMR1IF VAR PIR1.0 T1Count VAR BYTE LongPress VAR BIT T1CON = %00110100 u=0 cnt=0 GIE=0 GPIE=1 IOC.2=1 ' int-on-change for GPIO.2 enabled IOC.3=1 ' int-on-change for GPIO.3 enabled but1=0 but2=0 rel1=0 rel2=0 main: rel1=0 rel2=0 @ sleep pause 100 Timer1 = 3037 T1Count = 0 LongPress = 0 btn1: 'actionare buton up if but1=1 and rel2=0 then high rel1 TMR1ON = 1 pause 20 while but1=1 call check wend IF LongPress THEN Stop_UP T1Count = 0 pause 20 while but1 = 0 and but2 = 0 call check if rel1=0 then GOTO Btn1PressDone endif wend Stop_UP: LOW rel1 while but1=1 OR but2 = 1 wend pause 100 endif GPIF=0 'Clear ort change interrupt flag Btn1PressDone: btn2: ' actionare buton down if but2=1 and rel1=0 then high rel2 TMR1ON = 1 pause 20 while but2=1 call check wend IF LongPress THEN Stop_Down pause 20 while but2 = 0 and but1 = 0 call check if rel2 = 0 then GOTO Btn2PressDone endif wend Stop_Down: low rel2 while but2=1 or but1=1 wend pause 100 endif GPIF=0 'Clear ort change interrupt flag Btn2PressDone: GOTO MAIN check: ' verificare pentru supracurent adcin 3, adval vt=adval * 5000 vt=div32 1023 for cnt = 1 to 5 if vt > 270 then u=u+1 if u > 5 then gpio.0=0 gpio.5=0 endif pause 50 goto check else u=0 endif next cnt IF TMR1IF then TMR1IF = 0 Timer1 = 3037 T1Count = T1Count + 1 if T1Count = 2 then TMR1ON = 0 T1Count = 0 LongPress = 1 endif ENDIF return end ' of program
<br>
DT
Mr.Darrel, You are great ! Thank You so much for support; without You, I never ended this project. I wish You all the best !
PS : I don't understand Your last proposition (because of "the language barrier") but I hope not be crossed with me ! The challenge is for ME ! Hope to learn how much it's possible from You and this forum ! Of course You don't need to compete with nobody ! Greetings from Romania !!!
Last edited by fratello; - 2nd August 2009 at 07:57.
Sorry, my humor is hard to understand even if you speak english.
Nothing bad intended.
I'm glad you got your power windows working the way you wanted.
Cheers!
DT
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
OOps ! I have a big problem : but1 don't work proper ! I double/triple check all ; I change the button, but nothing... After a few press on but1 or EVEN on but2, but1 became inopperating ! If press but2, rel2 go high and but1 stop him, but don't make rel1 high ! Or, if rel2 go low because of overload, but1 don't work not at all ! Must disconnect power source for 're-starting' him...
But2 works verry fine, but but1 don't !!! I really don't understand ! I check everything for so many times, I change even PIC...Please, help...again...![]()
Bookmarks