12F629 Wakes only once


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Default

    Sorry Bruce, I made both changes, and the results are the same. I get one long pulse on the LED, LED goes off until button is pressed, then short pulse and then off again. Next press of button does nothing.

  2. #2
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Strange. This works precisely as expected. No matter how many times I press/release the
    switch.
    Code:
    @ DEVICE MCLR_OFF, INTRC_OSC_NOCLKOUT, WDT_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
    DEFINE OSCCAL_1K 1
    
    CMCON = 7
    TRISIO = %001100
    OPTION_REG = %01000000
    GPIO = 0
    T1CON = 0
    
    'GPIO.0 =
    'GPIO.1 = LED HIGH OUT
    'GPIO.2 = SWITCH HIGH INPUT
    'GPIO.3 = MCLR TIED HIGH
    'GPIO.4 =
    'GPIO.5 =
    
    Main:
        HIGH GPIO.1 
        PAUSE 1000
        LOW GPIO.1 
        
        INTCON.1 = 0
        INTCON.4 = 1
        FLAGS = 0
        @ SLEEP
        @ NOP
        
        INTCON.1 = 0
        HIGH GPIO.1
        PAUSE 100
        LOW GPIO.1
        
        INTCON.1 = 0
        INTCON.4 = 1
        FLAGS = 0
        @ SLEEP
        @ NOP
        HIGH GPIO.1
        PAUSE 1000
        GOTO Main
        
        END
    10K pull-down to ground on GPIO.2 with switch pulling it to Vcc on press.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  3. #3


    Did you find this post helpful? Yes | No

    Default

    Strange indeed. I programmed my part with your program using cut & paste, and my results are the same as they were, no second operation! It must be some sort of hardware anomaly. I will chase it with my scope later.

  4. #4
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Try setting bit 7 in OPTION_REG to disable internal pull-ups. WPU powers-up with all internal
    pull-ups enabled, and with OPTION_REG = %01000000 you'll have internal pull-ups ON.

    I suspect it works on mine due to a slight difference in the internal pull-up. That should cure
    it unless you have a problem with your switch circuit.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  5. #5


    Did you find this post helpful? Yes | No

    Default

    trying to use "temp = GPIO.2" without declaring the temp variable is probably your syntax error.

    "temp var byte" (word whatever) near/at the beginning would solve that.

  6. #6


    Did you find this post helpful? Yes | No

    Default

    Thanks for your help, guys! OPTION_REG = %1100000 solves the problem. But why does it work the first time, and not the second time????

  7. #7
    Join Date
    Aug 2008
    Posts
    66


    Did you find this post helpful? Yes | No

    Default

    Sounds weird to me, have you tried using another chip, is it the same result too?

Similar Threads

  1. 12F629 LDR - Light Dependant Resistor
    By Dennis in forum Schematics
    Replies: 15
    Last Post: - 18th February 2010, 23:33
  2. Basic help for 12F629
    By Gene Choin in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd September 2009, 05:06
  3. sleep on 12f629
    By sirvo in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 8th February 2007, 15:08
  4. Servo control with 12F629
    By achilles03 in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 24th June 2005, 00:34
  5. 12F629 I2C problems
    By AIW128ProGuy in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 12th November 2004, 00:41

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts