Processor halts : Please help


Closed Thread
Results 1 to 13 of 13

Hybrid View

  1. #1
    Join Date
    Jul 2009
    Posts
    10

    Default Processor halts : Please help

    Hello All,

    I am trying to build a telephone line interfacing circuit. There are two switches in the circuit(Pick up (PU) and hang up(HU)) I wait to see the line ringing. If during this time pick up switch is pressed, I pick the line. On hang up switch, I go to hang up the line by activating relay.

    If I do this repeatedly, my PIC hangs . It sometimes hnags in hangup code section. (Please see attached code) There is no pattern or timing sequence in this hanging. Things come back to normal after 50-60 seconds.

    I have used trisb to make portb high. This trisb stops working when I execute hangup. I have to again pull them all high. This was putting the unit in oscillations earlier. This is working by initializing trisb again,but ideally this type of modification is not required. I need to understan if something is wrong in the code.
    I am confused. I need to find out the reason and remedy for this problem as it is very important for my unit to be fault tolerent.Please help
    Thanks in advance.


    cwmaddy
    Attached Files Attached Files
    Last edited by cwmaddy; - 4th August 2009 at 16:52.

  2. #2
    Join Date
    Jul 2009
    Posts
    10


    Did you find this post helpful? Yes | No

    Unhappy one more observation

    Hello All,

    I am trying to build a telephone line interfacing circuit. There are two switches in the circuit(Pick up (PU) and hang up(HU)) I wait to see the line ringing. If during this time pick up switch is pressed, I pick the line. On hang up switch, I go to hang up the line by activating relay.

    If I do this repeatedly, my PIC hangs . It sometimes hnags in hangup code section. (Please see attached code) There is no pattern or timing sequence in this hanging. Things come back to normal after 50-60 seconds.

    I have used trisb to make portb high. This trisb stops working when I execute hangup. I have to again pull them all high. This was putting the unit in oscillations earlier. This is working by initializing trisb again,but ideally this type of modification is not required. I need to understan if something is wrong in the code.
    I am confused. I need to find out the reason and remedy for this problem as it is very important for my unit to be fault tolerent.Please help
    Thanks in advance.

    There is another thing I noticed while debugging. I was trying to locate exactly where the code hangs and where the control goes. I found that one serout statement is repeated executed and there is no connection from the program to that serout statement.No other statement in the code block of that serout is executed. Will it be stack overflow case? I am using fixed pointers ie goto statements and not gosubs

    Please help
    cwmaddy

  3. #3
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    966


    Did you find this post helpful? Yes | No

    Default

    Hi cwmaddy

    I've browsed through your code. You code quite well and this will take a little time to understand. However, from your problem descriptions, it looks like you are having some stack related issues. That is why you find the serout repeating without reason. The random hanging also indicates a stack failure. I suggest you check on the nesting levels.

  4. #4
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Jerson View Post
    Hi cwmaddy

    I've browsed through your code. You code quite well and this will take a little time to understand. However, from your problem descriptions, it looks like you are having some stack related issues. That is why you find the serout repeating without reason. The random hanging also indicates a stack failure. I suggest you check on the nesting levels.
    gosub getprogcode no return
    gosub error1 no return
    gosub execute, if true bypass return
    gosub lowrel no return
    stack fills up, hang.
    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.

  5. #5
    Join Date
    Jul 2009
    Posts
    10


    Did you find this post helpful? Yes | No

    Default

    Thanks for the replies.I shall try to go through code and correct it as per your suggestions I am sorry for the commented and dead code in the file. I shall try to put cleaner code next time.

  6. #6
    Join Date
    Jul 2009
    Posts
    10


    Did you find this post helpful? Yes | No

    Default

    Another thing to note is, program hangs before even reaching to the points of code suggested where stack overflow might occur.
    getProgCodes is subroutine and returns with normal return at all execution instances
    same is the case with execute

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