16f88 problems


Closed Thread
Results 1 to 18 of 18

Thread: 16f88 problems

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Location
    USA - Arizona
    Posts
    156


    Did you find this post helpful? Yes | No

    Default

    Oh let's see...

    If the code does not properly initialize the HW, the HW does not behave as expected. Such is the lifecycle of embedded programming. But I see, that was you point from the beginning ...
    I do not have the data sheet in front of me but I do not think ansel=0 is the way to go.Check the data sheet and read this. http://www.picbasic.co.uk/forum/showthread.php?t=561


    Oh well, hopefully he takes the advice. Its all given in good faith (and free).

  2. #2
    Join Date
    Nov 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default code portion

    hi guys, sorry about the wait. I work over 1000km away from my home, and don't get many opportunities to be there at the moment.

    Here is the code up to and including the first loop where it waits for a button press.

    <code>

    Include "modedefs.bas"
    CMCON=7 'allows you to use pins as digital rather than analog
    ADCON1 = %00000111 ' Disable A/D converter
    ANSEL=0 'allows you to use pins as digital rather than analog
    @ DEVICE PIC16F88, INTRC_OSC_NOCLKOUT, MCLR_OFF, WDT_OFF, LVP_OFF, PWRT_ON, PROTECT_OFF, BOD_OFF
    DEFINE OSC 8
    OSCCON = %01110000 ' INTRC = 8MHz



    'declare inputs and outputs appropriately
    TRISA = %00111100 ' a.5 is INPUT only
    TRISB = %11100100


    'define variables
    mscounter var word
    secondcounter var word
    minutecounter var word
    loopvar var word

    'INPUTS First Name them by pin
    rwire var portb.2
    bwire var portb.1
    mswitch var portb.0
    playmode var porta.2
    testmode var porta.3
    startbutton var portb.5
    'eventually the mode switch it will be a three position switch, and a.4 will be another input.

    'OUTPUTS, Name them
    solenoid var portb.3
    modeled var porta.1
    flashingled var porta.0
    buzzer var portb.4



    'Now perform the initial wait until the start switch is pressed
    modeled = 1
    solenoid = 0
    pause 2000
    startloop:
    flashingled = 1
    pause 50
    if startbutton = 1 then goto checkvalues
    flashingled = 0
    pause 50
    if startbutton = 1 then goto checkvalues
    goto startloop

    </code>

    As I've indicated before, the rest of the code works fine, and it eventually leads back to this first loop. On the first execution, it skips this loop, and proceeds to the next section of code. When the program completes it comes back to startloop and then everything runs fine. I just need it to engage this first loop the first time.

    I do not have an absolutely clear understanding of the ANSEL and CMCON commands. I've read about them and think I'm using them right.

    It's possible I shouldn't even be using the ADCON command. I don't know though.

    If anyone has great ideas I'm still very much interested in sorting this out.

    Cheers, Mike

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


    Did you find this post helpful? Yes | No

    Default

    ADCON1 is not used that way on this chip so get rid of that. If that does not solve the problem I would look at your hardware setup. Something giving a false signal . How is the solenoid connected ?
    Dave
    Always wear safety glasses while programming.

  4. #4
    Join Date
    Nov 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default I'll try a few things out.

    I had thrown a 2 second pause in to allow for things to stabilize, then I read the post where the pause should be before the tris statement is made. I'll try that.

    I will try removing adcon as well.

    The solenoid is hooked up via an output from a digital pin. When the pin goes high it trips a 2N3904 which completes a circuit for a 12V relay which then fires the solenoid itself.

    Both the solenoid and the relay have protection diodes in place.

    The solenoid is running a regulated air system.

    I did have this system working with a 16f819, but my computer crashed and I didn't have a backup (silly me). I can confirm that the general scheme I used components wise has worked completely in the past. The only thing that is substantially different is the pic, and I put more of the components on the circuit board.

    removing adcon had no effect, and the pause prior to the tris statements didn't seem to do anything either.

    Unfortunately I leave again, and won't have a chance to work on it again for a while. I think these initial statements are where the problem resides. Something transient to do with the interplay between configuration, and hardware just as power is applied.

    Can anyone tell me about the difference between ADSEL and ANSEL? I have seen references to ADSEL and the 16f88 by people using other compilers than pbp.

    -Mike

  5. #5
    Join Date
    Jul 2003
    Location
    USA - Arizona
    Posts
    156


    Did you find this post helpful? Yes | No

    Default

    So from the code and your statement it looks like either the first "if startbutton = 1 then goto checkvalues" is reading incorrectly; or perhaps the first "flashingled = 0" is not being executed.

    Your initial settings look fine. You can remove the ADCON1 as this chip does not have this. I would perhaps have the order different (i.e. @device first), but I do not think it should make a difference.

    How is the "startbutton" input connected? Is it sharing anything with the solenoid?

    How is the "flashingled" connected?

    If you disconnect the solenoid output, does the code runs as expected?

  6. #6
    Join Date
    May 2008
    Location
    Italy
    Posts
    825


    Did you find this post helpful? Yes | No

    Default

    Code:
    'declare inputs and outputs appropriately
    PortA = 0
    PortB = 0
    TRISA = %00111100 ' a.5 is INPUT only
    TRISB = %11100100
    Try to set portA and B to zero before Tris
    What value is your pulldown resistor?

    Al.
    All progress began with an idea

  7. #7
    Join Date
    Nov 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by aratti View Post
    Code:
    'declare inputs and outputs appropriately
    PortA = 0
    PortB = 0
    TRISA = %00111100 ' a.5 is INPUT only
    TRISB = %11100100
    Try to set portA and B to zero before Tris
    What value is your pulldown resistor?

    Al.
    the pulldown resistor is 1000 ohms.

    I won't have the opportunity to try new code for a while, but I will try that when I get a chance.

  8. #8
    Join Date
    Nov 2007
    Posts
    7


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by languer View Post
    So from the code and your statement it looks like either the first "if startbutton = 1 then goto checkvalues" is reading incorrectly; or perhaps the first "flashingled = 0" is not being executed.

    Your initial settings look fine. You can remove the ADCON1 as this chip does not have this. I would perhaps have the order different (i.e. @device first), but I do not think it should make a difference.

    How is the "startbutton" input connected? Is it sharing anything with the solenoid?

    How is the "flashingled" connected?

    the button is such that a wire leads from +5v to the switch, then from the switch to the pin and to a resistor to ground.

    The LED's are outputs from the pic that have a current limiting resistor of 1000 ohms.

    If you disconnect the solenoid output, does the code runs as expected?
    I have disconnected the solenoid output with no resolution of the problem.

Similar Threads

  1. Code works on 16F84A but not on 16F88?
    By pharaohamps in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 6th November 2009, 18:29
  2. Can't get a 16F88 to do anything.
    By ccowley in forum General
    Replies: 14
    Last Post: - 25th August 2008, 23:42
  3. 16F88 RA6 and RA7 troubles
    By gandora in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 3rd August 2007, 02:57
  4. 16f88 help
    By ccsparky in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 3rd July 2004, 17:50
  5. 4 line LCD with 16F88
    By anj in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 7th February 2004, 09:06

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