Serin serout problem


Closed Thread
Results 1 to 40 of 337

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lerameur View Post
    HI, NO I have not found the problem . I was about to order some pic16f648a, you told it worked with these chips.

    I tried your program , the No sync appears at every increment,
    so guess there is a problem with the trailer or leader bit.

    k
    I wouldn't order any '648's or '628's, the 'F88 should be just fine.

    What does the display read? Does it show the hardcoded 444 and 888? Did you try removing that? Also, get rid of the pauses in the receiver code, or at least drop them down a bit, cut them in half or so.

    JUST SAW THIS: In the transmit code, the trailer byte should be a $55, not $ff. That'll probably fix it now. The fact that you said it shows 'No Sync' at 'EVERY INCREMENT' is the key thing, it shows that the loop is going thru the SERIN commands now.
    Last edited by skimask; - 26th December 2006 at 20:18. Reason: fixing mistake in the transmitter side

  2. #2
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    The display never showed the 444 or 888.
    I posted a new picture.
    I tried removing the pauses, putting them at half the pause you had them, also changed the trailer byte to $55 ..same effect.
    Last edited by lerameur; - 26th December 2006 at 21:44.

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lerameur View Post
    The display never showed the 444 or 888.
    I posted a new picture.
    I tried removing the pauses, putting them at half the pause you had them, also changed the trailer byte to $55 ..same effect.
    Ok, let's try the silly simple and build back up... I guess we gotta figure out where this whole thing is failing at. If this don't work......I dunno....


    'RECEIVE PIC

    INCLUDE "modedefs.bas"
    DEFINE OSC 20 'use external 20mhz crystal
    CMCON = 7 : ANSEL = 0 : ADCON1 = 7
    DEFINE LCD_DREG PORTA ' Set LCD Data port
    DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
    DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
    DEFINE LCD_RSBIT 1 ' Set LCD Register Select bit
    DEFINE LCD_EREG PORTB ' Set LCD Enable port
    DEFINE LCD_EBIT 0 ' Set LCD Enable bit
    DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2 ' Set number of lines on LCD
    DEFINE LCD_COMMANDUS 2500
    DEFINE LCD_DATAUS 250

    temp var word : temp1 var word : input portb.2

    loop:
    serin portb.2 , t2400 , [ temp ]
    lcdout $fe , $80 , DEC3 temp
    temp1 = temp1 + 1
    lcdout $fe , $c0 , DEC5 temp1
    goto loop
    End











    'TRANSMIT PIC

    INCLUDE "modedefs.bas"
    DEFINE OSC 20 'use external 20mhz crystal
    CMCON = 7 : ANSEL = 0 : ADCON1 = 7
    DEFINE LCD_DREG PORTA ' Set LCD Data port
    DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
    DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
    DEFINE LCD_RSBIT 1 ' Set LCD Register Select bit
    DEFINE LCD_EREG PORTB ' Set LCD Enable port
    DEFINE LCD_EBIT 0 ' Set LCD Enable bit
    DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2 ' Set number of lines on LCD
    DEFINE LCD_COMMANDUS 2500
    DEFINE LCD_DATAUS 250
    DEFINE CHAR_PACING 33333

    temp var byte : temp1 var word : output portb.2

    loop:
    temp = temp + 1
    serout portb.2 , t2400 , [ temp ]
    lcdout $fe , $80 , DEC3 temp
    temp1 = temp1 + 1
    lcdout $fe , $c0 , DEC5 temp1
    goto loop

  4. #4
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    ok, the sending pic increment both on line 1 and two
    the receiving end displays a constant 535 on the 1st line and 49102 on the second line


    problem still persist
    Last edited by lerameur; - 26th December 2006 at 23:23.

  5. #5
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    ok here it is :

    THIS DO NOT WORK;
    loop:
    serin portb.2 , n2400 , [ temp]
    lcdout $fe , $80 , DEC temp
    pause 200
    goto loop
    End



    THIS WORKS;;
    loop:
    serin portb.2 , n2400 , temp
    lcdout $fe , $80 , DEC temp
    pause 200
    goto loop
    End

    AS soon as I put the square brackt , the display is messed up

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lerameur View Post
    ok here it is :

    THIS DO NOT WORK;
    loop:
    serin portb.2 , n2400 , [ temp]
    lcdout $fe , $80 , DEC temp
    pause 200
    goto loop
    End



    THIS WORKS;;
    loop:
    serin portb.2 , n2400 , temp
    lcdout $fe , $80 , DEC temp
    pause 200
    goto loop
    End

    AS soon as I put the square brackt , the display is messed up



    You are abso-freekin-lutely right!!!!!!!!!! My fonts have been messed up this whole time on my pdf viewer!!!!!!!! In the PBP manual, it shows what looks like brackets around the 'item', when there really isn't any brackets!!!!!!! AND...when I looked at the project I was saying that worked just fine, it doesn't have brackets either!!!!!!! Freekin''''amazing....I should've caught this days ago!!!!!

    Let's go back, but not as far...
    Working on another post/program that should work 100% all the way this time.

    (damn, I could seriously kick my own ass right now)....
    I'll have it posted here in a few minutes...

  7. #7
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default A program that WILL work (or else I will kick myself square in the arse, twice!)

    SERIN doesn't use brackets!!!!!!
    SEROUT DOES use brackets!!!!!!
    (My installation of Acrobat reader's fonts got screwed up at my end sometime in the past, that's what been messing it up. With the brackets in place, serin has been waiting for qualifiers this whole time, not actual data!)

    'RECEIVE PIC

    INCLUDE "modedefs.bas"
    DEFINE OSC 20 'use external 20mhz crystal
    CMCON = 7 : ANSEL = 0 : ADCON1 = 7
    DEFINE LCD_DREG PORTA ' Set LCD Data port
    DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
    DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
    DEFINE LCD_RSBIT 1 ' Set LCD Register Select bit
    DEFINE LCD_EREG PORTB ' Set LCD Enable port
    DEFINE LCD_EBIT 0 ' Set LCD Enable bit
    DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2 ' Set number of lines on LCD
    DEFINE LCD_COMMANDUS 2500
    DEFINE LCD_DATAUS 250

    temp var word : tempf var word
    leader var byte : trailer var byte : count var byte
    temp1 var byte : temp2 var byte : temp3 var byte : temp4 var byte
    input portb.2 : pause 1000

    loop:
    lcdout $fe , $c0 , "Waiting......" , DEC3 count
    temp = 0 : tempf = 0
    leader = 0 : trailer = 0 : count = 0
    temp1 = 0 : temp2 = 0 : temp3 = 0 : temp4 = 0
    serin portb.2 , t2400 , leader 'get leader byte
    serin portb.2 , t2400 , temp1
    serin portb.2 , t2400 , temp2
    serin portb.2 , t2400 , temp3
    serin portb.2 , t2400 , temp4
    serin portb.2 , t2400 , count
    serin portb.2 , t2400 , trailer

    if ( leader + trailer ) <> $ff then 'if leader + trailer doesn't add up right...
    lcdout $fe , $c0 , "Out of Sync..", DEC3 count : goto loop
    endif

    temp.highbyte = temp1
    temp.lowbyte = temp2
    tempf.highbyte = temp3
    tempf.lowbyte = temp4
    lcdout $fe , $c0 , "Received....." , DEC3 count
    lcdout $fe , $80 , "Tc=" , DEC3 temp , "C,Tf=" , DEC3 tempf , "F."
    goto loop
    End











    'TRANSMIT PIC

    INCLUDE "modedefs.bas"
    DEFINE OSC 20 'use external 20mhz crystal
    CMCON = 7 : ANSEL = 0 : ADCON1 = 7
    DEFINE LCD_DREG PORTA ' Set LCD Data port
    DEFINE LCD_DBIT 0 ' Set starting Data bit (0 or 4) if 4-bit bus
    DEFINE LCD_RSREG PORTB ' Set LCD Register Select port
    DEFINE LCD_RSBIT 1 ' Set LCD Register Select bit
    DEFINE LCD_EREG PORTB ' Set LCD Enable port
    DEFINE LCD_EBIT 0 ' Set LCD Enable bit
    DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2 ' Set number of lines on LCD
    DEFINE LCD_COMMANDUS 2500
    DEFINE LCD_DATAUS 250
    DEFINE CHAR_PACING 33333

    count var byte
    output portb.2 : high portb.2 : input portb.3 : dq var portb.4
    temp var word : tempf var word
    temp1 var byte : temp2 var byte : temp3 var byte : temp4 var byte
    pause 1500

    loop:
    lcdout $fe , $c0 , "Getting......" , DEC3 count
    owout DQ , 1 , [ $cc ]
    owout DQ , 0 , [ $44 ]
    Pause 500
    owout DQ , 1 , [ $cc ]
    owout DQ , 0 , [ $be ]
    owin DQ , 0 , [ temp.LOWBYTE , temp.HIGHBYTE , skip 6 ]
    tempf = temp * 9 : tempf = tempf / 5 : tempf = tempf + 32
    lcdout $fe , $c0 , "Display......" , DEC3 count
    lcdout $fe , $80 , "Tc=" , DEC3 temp , "C,Tf=" , DEC3 tempf , "F."
    lcdout $fe , $c0 , "Sending......" , DEC3 count
    serout portb.2, t2400 , [ $aa ] 'send a leader byte
    temp1 = temp.highbyte : temp2 = temp.lowbyte
    serout portb.2 , t2400 , [ temp1 ]
    serout portb.2 , t2400 , [ temp2 ] 'send data
    temp3 = tempf.highbyte : temp4 = tempf.lowbyte
    serout portb.2 , t2400 , [ temp3 ]
    serout portb.2 , t2400 , [ temp4 ] 'send data
    serout portb.2 , t2400 , [ count ] 'send count
    serout portb.2 , t2400 , [ $ff ] 'send a trailer byte
    lcdout $fe , $c0 , "Sent....." , DEC3 try1 , "," , DEC3 try2
    count = count + 1
    goto loop


    And that should do it!!!

Similar Threads

  1. A Serial GLCD 128x64 Simple Project
    By Oldspring in forum Off Topic
    Replies: 0
    Last Post: - 8th March 2010, 21:58
  2. PIC16f877 code crosses boundary @800h
    By inventosrl in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 6th April 2009, 23:03
  3. serout and serin problem
    By nicolelawsc in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 11th April 2006, 20:44
  4. Replies: 11
    Last Post: - 13th July 2005, 20:26
  5. SerIn and SerOut
    By Dwayne in forum FAQ - Frequently Asked Questions
    Replies: 0
    Last Post: - 21st July 2004, 16:54

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