Problem with Serin and On Interrupt


Closed Thread
Results 1 to 9 of 9

Hybrid View

  1. #1
    EvilGhozt's Avatar
    EvilGhozt Guest


    Did you find this post helpful? Yes | No

    Default

    Thx for the reply.

    But I think I'm going to use another method.
    By connecting RTS to B0/INT I can easy toggle RTS HIGH and then LOW, after that sending the rs232 data. This will alert the pic to listen for any incomming data on RX port...



    Now to next problem.

    Code:


    High led1
    Pause 100
    Low led1
    SerOut2 PORTB.2,396,["Start"]

    loop:
    i = i + 1
    IF i = 1000 Then High led2
    IF i = 2000 Then
    Low led2
    i = 0
    EndIF
    goto loop

    * There are some other code but I dont think its relevant in this matter..

    I resently detected that the led2 in main loop does not always start flashing in the beginning (happens about ~ once of ten) . It can take up to 5-6 sec before it starts flashing. Is there some problem with the SerOut2 command? or pic damage?
    Some other thing I was wondering, how often those a pic fail? I mean, can I run a loop like that (room temperature ~20C) in a month/year without a fail that cause a brake?

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


    Did you find this post helpful? Yes | No

    Default

    By connecting RTS to B0/INT I can easy toggle RTS HIGH and then LOW, after that sending the rs232 data. This will alert the pic to listen for any incomming data on RX port...
    WHY? Why not just use the USART and forget about the extra wiring. The USART will generate an interrupt to notify when data comes in. And, it won't miss a BIT.
    <br>
    DT

  3. #3
    EvilGhozt's Avatar
    EvilGhozt Guest


    Did you find this post helpful? Yes | No

    Default

    How should I write the code then?
    I would be grateful if you could paste some code or just help me with some hints how to do...

    Thx mate.

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


    Did you find this post helpful? Yes | No

    Default

    Using your original example, it might look like this ...
    Code:
    DEFINE OSC 4
    
    DEFINE HSER_RCSTA 90h 'Hser receive status init 
    DEFINE HSER_TXSTA 20h 'Hser transmit status init 
    DEFINE HSER_BAUD 2400 'Hser baud rate 
    
    INTCON.6 = 1          ' Enable Peripheral interrupts
    PIE1.5 = 1            ' Enable USART receive ints (RCIE)
    
    on interrupt goto myint
    
    loop:
        pause 1
    goto loop
    
    disable
    myint:
        Hserin [wait("IB")]
    resume
    enable
    HTH,
    &nbsp; Darrel
    Last edited by Darrel Taylor; - 12th October 2005 at 00:13.

  5. #5
    EvilGhozt's Avatar
    EvilGhozt Guest


    Did you find this post helpful? Yes | No

    Default

    Should i connect B0/INT to B1/RX? or does this detect interrupt on the RX port?

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


    Did you find this post helpful? Yes | No

    Default

    For a 16F628, the USART pins (RX and TX) are 7 and 8. Same as RB1 and RB2.
    <br>
    DT

  7. #7
    EvilGhozt's Avatar
    EvilGhozt Guest


    Did you find this post helpful? Yes | No

    Thumbs up

    Oh it works! Thanx _ALOT_ Darrel Taylor.
    This will make the program faster and a bit easier.

    That was all for today, time for bed. Good night...

Members who have read this thread : 1

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