Serin Serout Help


Closed Thread
Results 1 to 16 of 16

Hybrid View

  1. #1
    Join Date
    Nov 2010
    Posts
    7


    Did you find this post helpful? Yes | No

    Lightbulb Update

    Should I be using pull up resistors (22k, 4.7K, 2.2k)?

  2. #2
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    You will need to turn the analog off.
    The two links below should help. For now, after you read the one from Melanie, use the one from Darrel.
    http://www.picbasic.co.uk/forum/showthread.php?t=561
    http://www.picbasic.co.uk/forum/cont...54-All-Digital

    And if you could post all of your code and how the configs are set might also be helpful.
    Dave
    Always wear safety glasses while programming.

  3. #3
    Join Date
    Nov 2010
    Posts
    7


    Did you find this post helpful? Yes | No

    Lightbulb Update

    Thanks again i will check the links and do what I can. as far as the code goes all of the code i have is written above.

  4. #4
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Lets back up a bit. We normally start with a blinky program. If you have already done this then great, if not....

    The configs will need set for the hardware. This can be done int the *.inc file found in the PBP directory or in code space. This link tell about it.
    http://www.picbasic.co.uk/forum/showthread.php?t=543
    Being that you are starting, start using MPASM for the assembler. It will save you trouble later.

    Start with the 16F877A.
    By default the OSC in the *.inc is set for XT. This is fine if you have a crystal attached, if you have a resonator change it to HS.
    Now for the code,
    Code:
    '16F877A
    DEFINE OSC 4 ' This tells PBP how fast the chip is running.
    
    'This line is the configs MPASAM style
    'Comment it out if the configs are set in the *.inc
    @ __config _HS_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF &_BODEN_OFF
    
    ADCON1=%00000111 ' Turns off the ADC
    CMCON=%00000111  'Turns off the Comparators
    TRISA = %00000000  ' Makes all pins on PORTA outputs
    
    'Set up some variables.
    LED  VAR PORTA.1  'Attach a LED to PORTA pin 1
    
    RUN:  Make the LED blink at 1 sec on and 1 sec off
    HIGH LED
    PAUSE 1000
    LOW LED
    PAUSE 1000
    GOTO RUN
    END
    The above will help you determine if the chip is running correctly.

    Do the same for the 12F683.
    The PBP default is internal OSC and the chip defaults to 4 MHz. So you should be good as long as PBP is told about it.
    DEFINE OSC 4
    In you code like we did for the 877A.

    Get everything blinking as it should and then tackle the serial part.
    Last edited by mackrackit; - 8th December 2010 at 06:31.
    Dave
    Always wear safety glasses while programming.

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


    Did you find this post helpful? Yes | No

    Default

    Your flowpin is on GPIO.3.

    SERIN2 GPIO.1\GPIO.3, 3313, [DEC X]

    Put the serial data on GPIO.3, and the flowpin on GPIO.1.
    flowpin needs to be able to output.

    And set GPIO.0 to OUTPUT for the LED.

    OUTPUT GPIO.0

    Don't forget to disable MCLR in the configuration.
    DT

  6. #6
    Join Date
    Nov 2010
    Posts
    7


    Did you find this post helpful? Yes | No

    Lightbulb Update

    I have been working on the code for a couple of days. I have made a small progression if i manually send a "1" to the SERIN it will assume a flash rate of 1. this is done by placing the datapin wire to ground. Hear is the current code i am working with. Any help would be great, Thanks!
    Code:
    Recive:
    Clear 
    define ocs 4
    INCLUDE "modedefs.bas"
    @_config_HS_osc &_WDT_OFF &_LVP_OFF &_CP_OFF &_BODEN_OFF
    ADCON1 = %00000111
    CMCON = %00000111
    TRISA = %11111111
    TRISD = %00000000
    X VAR BYTE
    SERIN2 PORTA.5\PORTA.1, 3313, [DEC X]
    LOOP1:     
       HIGH PORTD.2
       PAUSE X
       LOW PORTD.2
       PAUSE X
    GOTO LOOP1
    END  
    
    Send:
    Clear 
    define ocs 4
    INCLUDE "modedefs.bas"
    @_config_HS_osc &_WDT_OFF &_LVP_OFF &_CP_OFF &_BODEN_OFF
    ADCON1 = %00000111
    CMCON = %00000111
    TRISA = %00000000
    TRISD = %00000000
    PORTA = %00000000
    LED VAR PORTA.1
    X VAR BYTE
    X = 100
    LOOP1: 
       SEROUT2 PORTA.5/PORTA.1, 3313, [100]
       PAUSE 5000
    GOTO LOOP1
    END
    Thanks again!
    Last edited by ScaleRobotics; - 12th December 2010 at 21:02. Reason: added code tags

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


    Did you find this post helpful? Yes | No

    Default Idle State

    Hi MangoKid,
    I am away from MY Computer and my books, but if I understand this last statement correctly,
    " this is done by placing the datapin wire to ground."
    I believe you are referring to the ports "Idle State" if so here is the little secret: If you are sending TRUE the port wants a pull up resistor and if you are sending INVERTED the port wants a pull Down resistor.
    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.

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