less than half a second.....what r u getting at ski?
WHAT HAPPENS EVERY TIME YOUR CODE FALLS THRU TO ONE OF THOSE FLASHING LED SUBROUTINES?
How long does it take for each one of those subroutines to execute once they're started (i.e. Gosub'd to and returned from)?
It happens on each time around the loop after the temperature has exceeded the set point.
How fast can your buttons/lcd/the-rest-of-the-program possibly run if it's tied up in a pause for 700ms on each run through the loop.
JEEZE MAN!!! READ THRU YOUR OWN CODE FOR ONCE!!!! What did you do? Cut and paste this from somewhere else? How about getting your FRIEND to help you out more...if this friend actually exists...you know, the same one that HELPED you with those buttons earlier...
Screw it...I'm done...really...this is about as annoying and frustrating as it can possibly get...the only thing that could be worse would be if your name/handle was TED's, but then again, that was more funny than annoying.
Last edited by skimask; - 23rd October 2008 at 15:05.
It's for the same reason that I removed those two routines and decided to just make those pins high instead. the same thing happens...
I tried, in one last vain attempt to draw your attention to something that might be slowing down your whole project.
But, I can see that I've failed again, because you've failed AGAIN...or maybe just YOU have FAILED to READ your OWN code...AGAIN!
You don't think those 2 SOUND statements, with their ~3 seconds of sound making might not have anything to do with anything?
Ok, now I'm done... Some people you just can't prod into looking at their own stuff closer...because it's all good. Of course it's all good...they wrote it...how can they possibly be wrong or mistaken about anything? Their logic is great...it flows in the code just like it does in their minds...Or does it?!?!?!?!!!!????
Why don't you go ask your instructor for advise... You've got 48 hours...
Last edited by skimask; - 23rd October 2008 at 16:07.
ski, i removed both of those flashing routines and the problem was still there. then i removed the SOUND statements aswel. seemed to have sorted out the lag issue. the problem is that now i have only a high led and low led when the setpoints are reached but thats not even working
Code:checkdone: if adcon0.2=1 then checkdone adval.highbyte=adresh adval.lowbyte=adresl tempc=50*adval tempc=tempc/100 If tempc>=highpt then gosub high_flash SOUND buzzer, [60, 100, 23, 200] relayhigh = 1 else relaylow = 0 lowled = 0 buzzer = 0 endif If tempc<=lowpt then gosub low_flash SOUND buzzer, [20, 100, 23, 200] relaylow = 1 else relayhigh = 0 highled = 0 buzzer = 0 endif return
I still see sound in that snippet and the leds are = 0 ???
Dave
Always wear safety glasses while programming.
what i meant was that i removed those lines of code. now im using the following which is without the other features i was planning to implement. below is the latest code.
im realy desperate to get this thing working guys....Code:Define LCD_DREG PORTB Define LCD_DBIT 0 Define LCD_RSREG PORTB Define LCD_RSBIT 5 Define LCD_EREG PORTB Define LCD_EBIT 4 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 mode var byte keyin var byte adval var word tempc var word highpt var byte lowpt var byte highled var porta.1 lowled var porta.2 relayhigh var porta.3 relaylow var porta.4 up var portc.0 down var portc.1 sethighp var portc.2 setlowp var portc.3 maindisp var portc.4 highpt = 100 lowpt = 0 trisc= %00011111 trisa=%00000001 adcon1=%10001110 adcon0=%11000001 pause 100 lcdout $fe , 1 mode = 1 goto main getkey: pause 50 keyin = portc return gettemp: adcon0.2=1 pause 1 checkdone: if adcon0.2=1 then checkdone adval.highbyte=adresh adval.lowbyte=adresl tempc=50*adval tempc=tempc/100 If tempc>=highpt then high highled high relayhigh else low relaylow low lowled endif If tempc<=lowpt then high lowled low relaylow else low relayhigh low highled endif return main: gosub gettemp gosub getkey if maindisp = 0 then mode = 1 pause 50 if sethighp = 0 then mode = 2 pause 50 if setlowp = 0 then mode = 3 pause 50 select case mode case 1 write 0 , sethighp pause 10 write 1 , setlowp lcdout $fe , 1 Lcdout "TEMP = ",DEC tempc,$DF,"C" case 2 lcdout $fe , 1 lcdout $fe , $80 , "High Setpoint:" , $fe , $c0 , dec highpt, $DF , "C" if up = 0 then highpt = highpt + 1 pause 50 if down = 0 then highpt = highpt - 1 pause 50 if highpt>100 then highpt=100 pause 50 case 3 lcdout $fe , 1 lcdout $fe , $80 , "Low Setpoint:" , $fe , $c0 , dec lowpt, $DF , "C" if up = 0 then lowpt = lowpt + 1 if down = 0 then lowpt = lowpt - 1 if lowpt>100 then lowpt=100 end select goto main
Bookmarks