Instant Interrupts and HSERIN


Closed Thread
Results 1 to 27 of 27

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    Yup, Square brackets will cause an error when they are inside other square brackets.

    There's no need to DISABLE/ENABLE inside the handler. An interrupt source can't interrupt itself like it would in ON INTERRUPT.

    But I think what's happening is that the handler is being called multiple times before the rest of the program see's the data.

    As a test, try something like this ...
    Code:
    hserin 100,timeout [databyte(1), databyte(2)]
    @   INT_DISABLE  RX_INT                                ; Disable RX Interrupt 
    @   INT_RETURN
    This should return the first 2 bytes then disable the RX_INT.
    The USART will overflow and stop working after that unless it is re-enabled quickly.

    I'm not saying this is the way to properly receive data in an interrupt.
    It's just a test to help understand what's going wrong.
    <br>
    DT

  2. #2
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Darrel Taylor View Post
    Yup, Square brackets will cause an error when they are inside other square brackets.
    Obviously, haven't checked all cases, but I've got this line with square-in-square and works ok:
    Code:
    lcdchardata[ lcdcharloop + 1 ] = font [ ( lcdchardata[0] * 5 ) + lcdcharloop ]
    But it's also got a variable inside parenthesis...maybe that's the kicker...

  3. #3
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    Following up on the Square brackets vs Round brackets ...

    I honestly thought it was a PBP problem.
    But with further investigation, I've found it to be a MicroCode Studio problem that only happens during an ICD compile.

    Possibly first discovered by Bruce.
    http://www.picbasic.co.uk/forum/showthread.php?p=23772

    Which means that it only comes into play with HSEROUT/IN statements.

    So I guess it's still a good idea to use Round brackets inside Square brackets, in case you ever plan on using the ICD.
    But it also looks better for the programs that won't.

    HTH,

    EDIT: Good timing ski.
    Last edited by Darrel Taylor; - 10th March 2008 at 23:53. Reason: ski's timing
    DT

  4. #4
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Darrel Taylor View Post
    Following up on the Square brackets vs Round brackets ...
    I honestly thought it was a PBP problem.
    But with further investigation, I've found it to be a MicroCode Studio problem that only happens during an ICD compile.
    Aha! Good call! Which is one of the possibilities I haven't explored....I don't use an ICD...well, I do, but it's basically ON DEBUG with a serial LCD backpack...Invaluable...everybody should have one....maybe two...

  5. #5
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    94


    Did you find this post helpful? Yes | No

    Default

    Hi Darrel,

    thanks for your help on this one - it really had me stumped!

    There's no need to DISABLE/ENABLE inside the handler. An interrupt source can't interrupt itself like it would in ON INTERRUPT.
    Cool - I didn't realise that!


    But I think what's happening is that the handler is being called multiple times before the rest of the program see's the data.

    As a test, try something like this ...
    Code:
    hserin 100,timeout [databyte(1), databyte(2)]
    @   INT_DISABLE  RX_INT                                ; Disable RX Interrupt 
    @   INT_RETURN
    This should return the first 2 bytes then disable the RX_INT.
    The USART will overflow and stop working after that unless it is re-enabled quickly.
    I have tried what you asked me to above and it works every time! I've got it capturing all the bytes now by:
    Code:
    hserin 100,timeout, [databyte(0), databyte(0), databyte(1), databyte(2), databyte(3), databyte(4), databyte(5)]
    @   INT_DISABLE  RX_INT
    (the duplicate; databyte(0), databyte(0), just removes the $FD as I don't need it)


    I'm not saying this is the way to properly receive data in an interrupt.
    It's just a test to help understand what's going wrong.
    <br>
    I'm now trying to re-enable the interrupt at some point after the data has been read by the rest of the program but it's not working at the moment. I will keep trying and update this thread later.

    Cheers to all

    Rob

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


    Did you find this post helpful? Yes | No

    Default

    Right, I was definitely being stupid!

    There were actually 8 bytes of data being sent (the colons aren't sent nor are the spaces or slashes);

    $FD SS:MM:HH DD/MM/YYYY

    This meant that RCIF was being set again by the extra YY before I was doing anything with the data in my program. Thanks very much Darrel, I wouldn't have found this if you hadn't pointed me in the right direction.


    Darrel, this is for a small project for my work and I was wondering if you would allow me to include your code in the finished item please? I know you've said to people in the past that they could but I thought I had better ask out of courtesy. I know you say keep the internet free, but obviously hosting your webpage costs YOU money so I wondered if you had anywhere to donate to help with these costs? I can't find anywhere on your webpage.

    Cheers

    Rob

  7. #7
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    Of course, you can use it to your hearts content.

    The only thing I ask of anyone is....
    "Don't remove my name and act like you wrote it."

    Not saying you would, that's just my only rule.<hr>
    Thank you for the offer of donation.

    I really don't need the money, but if you wanted to make me feel like my program was worth it ...
    Find you're local school for blind children. Every city has at least one.
    Toss them a few bucks. Doesn't have to be alot.

    Show me the receipt, and I'll rewrite your program for you, because it's still got some problems to be worked out in that RX handler.
    <br>
    DT

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


    Did you find this post helpful? Yes | No

    Thumbs up

    Quote Originally Posted by Darrel Taylor View Post
    Of course, you can use it to your hearts content.

    The only thing I ask of anyone is....
    "Don't remove my name and act like you wrote it."
    Thanks very much! Rest assured - I won't remove your name from it - you deserve massive credit for the hard work you've put into it!


    I really don't need the money, but if you wanted to make me feel like my program was worth it ...
    Find you're local school for blind children. Every city has at least one.
    Toss them a few bucks. Doesn't have to be alot.

    Show me the receipt, and I'll rewrite your program for you, because it's still got some problems to be worked out in that RX handler.
    <br>
    I REALLY WILL have a look for our local school for blind children (not because I want you to re-write my program though!).

    Thanks again

    Rob

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


    Did you find this post helpful? Yes | No

    Default

    That has to be one of the most kind hearted things I've heard in a long time. Just confirms what I've always thought you were like Darrel..;o}

    I will make an offer here too since kids are my favorite people. Fax or email me a copy of this, along with proof-of-purchase for PBP (gotta do the distributor thing you know), and I'll make sure you receive the next 2 new releases of PBP on CD free of charge.

    Just let me know which new version you want, and it's on the way..;o}

    P.S. Darrel will also get 2 new releases.
    Last edited by Bruce; - 11th March 2008 at 21:45.
    Regards,

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

  10. #10
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default Oh, and Bruce up's the ante.

    Hmmm, the Taylor Reynolds 3rd party charity foundation.

    Kind of a ring to it.

    If only it would work.
    <br>
    DT

  11. #11
    Join Date
    Feb 2005
    Location
    Essex, UK
    Posts
    94


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Bruce View Post
    That has to be one of the most kind hearted things I've heard in a long time. Just confirms what I've always thought you were like Darrel..;o}

    I will make an offer here too since kids are my favorite people. Fax or email me a copy of this, along with proof-of-purchase for PBP (gotta do the distributor thing you know), and I'll make sure you receive the next 2 new releases of PBP on CD free of charge.

    Just let me know which new version you want, and it's on the way..;o}

    P.S. Darrel will also get 2 new releases.
    Hi Bruce,

    That's an extremely generous offer from you. I have donated to the Royal London Society for the Blind (RLSB).

    I only donated £20.00 but if this is enough for you to do a single release of PBP upgrade then I'd like you to give it to Darrel please - I will send you the email receipt for this to the email on your signature.

    You've also earned Mecanique some money today as I thought while I've got my wallet out it's about time that I bought a copy of PBP for myself - now I can use it at home as well as at work! (I don't think my wife will like you for that though!) I can't wait to do all the little projects that I've been promising myself that I will do at home!

    Rob

  12. #12
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    That's hilarious.

    Might have worked better if you bought PBP from Bruce, instead of Mecanique.
    But, that wasn't the point of the exercise.

    And, the main point was executed (minus receipt) so you qualify for a rewrite from me, or simply more help if you prefer.

    Thanks for the donation!

    Best regards,
    Darrel

Similar Threads

  1. Hserin with Instant Interrupts.
    By ronjodu in forum Serial
    Replies: 17
    Last Post: - 30th December 2014, 20:17
  2. HSerin problems on power up
    By Luckyborg in forum Serial
    Replies: 8
    Last Post: - 21st April 2009, 19:49
  3. TMR0 interrupt and HSERIN
    By boban in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 2nd September 2008, 11:48
  4. Usbin and hserin
    By mpardinho in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 27th October 2007, 15:26
  5. HserIn and Interrupts
    By rwskinner in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 5th December 2006, 07:15

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