Use the assembler @ SLEEP option & WDT to wake up periodically and
generate your pulse. Using the prescaler you can have up to 2.3 second
sleep periods.
Use one I/O-pin to wake up on keypress, and another to enter sleep mode
when pressed.
Use the assembler @ SLEEP option & WDT to wake up periodically and
generate your pulse. Using the prescaler you can have up to 2.3 second
sleep periods.
Use one I/O-pin to wake up on keypress, and another to enter sleep mode
when pressed.
Thanks for your reply but.... Unfortunately I want to be able to just wave the magnet over the switch which will change the pin state and make the pic sleep or wake. I cannot leave the magnet in place on the magnetic switch.
So I need the pic to stay sleeping after an "@ SLEEP" and not to wake at all until the pin changes when the magnet has been waved over the switch.
This means the WDT has to be disabled which kills my "NAP" or "SLEEP" usage and forces me to use pause which will not be the low power usage desired.
Anything else I could try at all?
Is the magnetic switch the "only" thing that will be used to wake it up?
Yes, the magnetic switch will be the ony thing to wake it and tell it to sleep in this application. It should not turn on/off (wake/sleep) until a user turns it or on with the switch..
Here's one scenario;
The PIC wakes up at regular intervals using the WDT. If switch = 0, then go
back to sleep. It's only awake for a few uS testing the switch.
If switch = 1, then do whatever you need to do, then test the switch input
before going back to sleep.
A switch press can also wake the PIC up before a WDT timeout. Handle
whatever you need to do, test the switch, and go back to sleep or stay
awake (resetting WDT) as required, based on the switch input.
It's still going to save a boat-load of power since it will be sleeping until your
switch is active, or the WDT times out.
If the switch isn't active, it's still alseep for the majority of time, and you'll
be operating at low current until the switch input forces the wake up, or the
WDT timeout.
Wouldn't that work?
This could work.... I will try this as soon as I get the chance (prob after the weekend). Thanks for your suggestions, I've been working on multiple projects and they all run together which makes it hard to really focus on the issue at hand enough to get outside the box. Sometimes its just nice to get a fresh perspective on a project.
Thanks again Bruce! I'll post my results when I get back to it next week.
Kessral
If I understand you correctly, you want to do a pulsout (1) every time the PIC is woken by the magnetic switch. Waking on a magnetic switch can be done by a pin change interrupt, if available in the 10F(Havent used, so I cant comment on this). So, your ideal work loop will be something like
while (1)
PULSOUT pin, period
@ SLEEP
@ nop
@ nop
' on waking from interrupt, go back to pulsout
wend
Of course, I haven't shown the part needed to configure the PIC for interrupt on change, etc
Jerson
Bookmarks