Do PICs goto sleep?


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Location
    Sweden
    Posts
    237


    Did you find this post helpful? Yes | No

    Default

    I've never heard of any PICs going to sleep without beeing told so(they're just like kids ... and me), however i've never used this particular one. My guess is that your RF module gives out combinations that won't get caught by your SELECT CASE statement(0,3,5,6,7). Easily checked by adding CASE ELSE

    /Ingvar

  2. #2
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Its not the RF module as the program works fine for the first minute or so.

    Also, all the hybrid RF module does is output a HIGH or a LOW on three ports which are fed into the PIC. So all the PIC is reading is a 1 or a 0.

    Any other suggestions,

    Steve

  3. #3
    J_Brittian's Avatar
    J_Brittian Guest


    Did you find this post helpful? Yes | No

    Default

    Is MaskSwitch ending up outside your parameters? What happens if you add a case else statement?

  4. #4
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Hmm, got me thinking now.

    If i only wanted to look at RC0 , RC1 & RC2, i have now changed the TRISC to read:

    Code:
    TRISC = %00000111	' Set PORTC (0-2 input) rest Outputs
    Is this correct?

    Also, would any change need to be done for this line? What does the $07 mean?

    Code:
    MaskSwitch=PORTC & $07
    What would you suggest i put in the CASE ELSE statement. A return back to Main? It may be worth puttin in this statement to capture any other event.

    Thank you.

  5. #5
    J_Brittian's Avatar
    J_Brittian Guest


    Did you find this post helpful? Yes | No

    Default

    Actually I was going to suggest an output of some kind, maybe an led. If MaskSwitch gets outside of your parameters in someway you could effectively end up in a main ... goto main loop.

  6. #6
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    OK, I've added the following

    Code:
    Main:
        MaskSwitch=PORTC & $07
            Select Case MaskSwitch
              Case 1 '%00000001 or SW1
                Gosub Procedure_SW1
    
              Case 2 '%00000010 or SW2
                Gosub Procedure_SW2
    
              Case 4 '%00000100 or SW3
                Gosub Procedure_SW3
              Case Else
                Gosub Error
        End Select
    Goto Main
    
    Error:
        For loop = 1 to 5
            Red = 1
            Pause 100
            Red = 0
            Pause 100
        Next Loop
    Return
    Now the LED is flashing all the time, so i presume the CASE ELSE is true, which i guess means something else is happening.

    I think it may be due to the following:

    Code:
    MaskSwitch=PORTC & $07
    What does the $07 represent. Is this saying all of the PORTS on C. If so, what will it be if i want just PORTC.0, PORTC.1 and PORTC.2.

    Thank you, i think i'm getting there!!

  7. #7
    Join Date
    Dec 2003
    Location
    Wichita KS
    Posts
    511


    Did you find this post helpful? Yes | No

    Default

    I agree with IngVar,

    You have no way of knowing if the case statement is something other than 1,2,4. Put a default case in there with a blinking light....If that blinking light comes on... there is your problem.

    Dwayne
    Ability to Fly:
    Hurling yourself towards the ground, and missing.

    Engineers that Contribute to flying:
    Both optimists and pessimists contribute to the society. The optimist invents the aeroplane, the pessimist the parachute

    Pilots that are Flying:
    Those who know their limitations, and respect the green side of the grass...

  8. #8
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Dwayne,

    Is what i've done above your posting wrong then? If so, could you post the modification to the code you are suggesting.

    Many thanks.

  9. #9
    J_Brittian's Avatar
    J_Brittian Guest


    Did you find this post helpful? Yes | No

    Default

    $07 = %00000111

    Steve,
    If you push two buttons at the same time or if you're not using pull down/up resistors you end up with MaskSwitch = %00000110 which isn't an option.

  10. #10
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    154


    Did you find this post helpful? Yes | No

    Default

    Bugger, i think it might be due to no pull-down resistors.

    I've attahced my circuit, would this be the case?

    What values are recommended ?

    Hopefully that is the problem which is reasonably easy to fix.

    Regards,

    Steve
    Attached Images Attached Images  

Similar Threads

  1. Making a menu
    By chrisshortys in forum mel PIC BASIC Pro
    Replies: 36
    Last Post: - 12th November 2008, 19:54
  2. Replies: 14
    Last Post: - 26th September 2007, 05:41
  3. Problems with RC2 and RC3
    By Christopher4187 in forum General
    Replies: 11
    Last Post: - 29th May 2006, 17:19
  4. 3 HPWM channels
    By docwisdom in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 4th April 2006, 02:43
  5. Output PIC module
    By freelancebee in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 12th September 2005, 20:10

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