Peek Poke pic16f870


Closed Thread
Results 1 to 5 of 5

Hybrid View

  1. #1
    Join Date
    Jul 2006
    Posts
    6


    Did you find this post helpful? Yes | No

    Cool updated code

    I have made some changes to my code and am understanding why it was doing what it was doing. I am trying to use the examples from the PICBASIC compiler hand book page 47 to write my code. I am trying to use the first four pins on PortA and PortC to control two motors through an H bridge using port B pins 4,5 for motor 1 and 6,7 for motor 2. The example code says:

    Loop: Peek PortA,B0 'get current portA pin states to variable B0
    If bit0=1 then zerohigh
    If bit1=0 then onelow
    goto loop

    zerohigh: high 0
    gotoloop
    onelow: low 1
    goto loop
    end


    So this is why in my code I was using bits. According to the Pg 20 of this manual that came with my basic compilier it says that the first tow bytes , B0 and B1 may also be used as bit variables. Bit0...Bit7 for B0 and bit8...bit15 for B1. So this is why I had the use of bit8 in my orginal code. But may be there is a better way to do this and if so I would like to know. Here is my revised code.

    symbol cmcon=$1f
    poke cmcon,7
    symbol adcon0=$9f
    poke adcon0,7
    symbol adcon1=$9f
    poke adcon1,7

    start:
    peek 5, B0
    if bit0=0 then A
    if bit0=1 then D

    peek 7, B1
    if bit8=0 then B
    if bit8=1 then C
    goto start


    A: low 6: high 7: Return
    B: low 4: high 5: Return
    C: low 7: Return
    D: low 5 Return

    Please tell me how I can fix my code It still seems like peek and poke arent working right for me.

    Thanks for you Help.

  2. #2
    Join Date
    Feb 2003
    Location
    Salt Lake City, Utah USA
    Posts
    517


    Did you find this post helpful? Yes | No

    Smile

    Eric,

    This will get you closer - I maintained your logic exactly, which, looks to me, to be a bit troubling as SKIMASK noted. You also will want to get a copy of the 16F870 datasheet to go with the manual. Email back if you want more.
    Code:
    ;symbol cmcon=$1f	; 16F870 has no comparators and $1f is ADCON0 not CMCON
    ;poke cmcon,7	; this line and above not needed for the 18F870
    ;symbol adcon0=$9f  ; $9F is ADCON1 not ADCON0 – these two lines repeat the next two
    ;poke adcon0,7
    symbol adcon1=$9f
    poke adcon1,7	; Make all of PORTA Digital rather than analog
    
    Poke, $85, %00000011	; make pins 0 and 1 on PORTA inputs, the rest outputs
    Poke, $87, %00000011	; make pins 0 and 1 on PORTC inputs, the rest outputs
    Poke $86, %00000000    	  ; make all of PORTB outputs
    Poke $05, 0			; make all outputs of PORTA low
    Poke $06, 0			; make all outputs of PORTB low
    Poke $07, 0			; make all outputs of PORTC low
    
    start:
    peek 5, B0			; read PORTA into predefined variable B0
    if bit0=0 then A		; if B0.0 = 0 then GOTO A (no gosub in if statement)
    ReturnFromA:
    if bit0=1 then D		; if B0.1 = 1 then GOTO D (no gosub in if statement)
    ReturnFromD:
    peek 7, B1			;  Read PORTC into B1
    if bit8=0 then B		; if B1.0 = 0 then GOTO B
    ReturnFromB:
    if bit8=1 then C		; if B1.0 = 1 then GOTO C
    goto start
    
    A: low 6: high 7	; make PORTB pin 6 low and pin 7 high
    Goto ReturnFromA
    
    B: low 4: high 5	; make PORTB pin 4 low and pin 5 high
    ReturnFromB
    C: low 7		; make PORTB pin 7 low
    Goto Start
    D: low 5  		; make PORTB pin 5 high
    Goto ReturnFromD
    END
    oh, I have not tried this - I do not use PBC anymore ... and you might want to start your project by trying to blink and LED or two rather than trying to code a complete program.
    Last edited by paul borgmeier; - 16th March 2007 at 07:03. Reason: fix spelling (it's late)
    Paul Borgmeier
    Salt Lake City, UT
    USA
    __________________

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    ..........

Similar Threads

  1. Could I please ask for some help on my code
    By opticaltrigger in forum mel PIC BASIC
    Replies: 8
    Last Post: - 24th January 2010, 23:45
  2. Can't get ADC to loop
    By TravisM in forum mel PIC BASIC
    Replies: 2
    Last Post: - 11th October 2009, 15:33
  3. Code entering endless loop
    By Blackhawk in forum mel PIC BASIC
    Replies: 11
    Last Post: - 26th November 2006, 09:12
  4. First Day and need Help!
    By timmoore47 in forum mel PIC BASIC
    Replies: 17
    Last Post: - 3rd June 2006, 22:13
  5. Output PIC module
    By freelancebee in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 12th September 2005, 20:10

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