16f886


Closed Thread
Results 1 to 13 of 13

Thread: 16f886

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by hvacrtech View Post
    I upgraded from 16F689 to 16F886 due to memory space......
    comparators are off, ADC are off. I tried everything else getting all RA's LOW.
    The controlling registers for the comparators and the ADC are a bit different between the '689 and the '886, different values are required in the registers themselves. So, if you're using the same code and expecting it to work, it probably won't.
    But, we'll never know without seeing some code!

  2. #2
    Join Date
    Sep 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Default Making this LED flashing

    Here is the code,

    Similar idea as first post and still cant get LED flashing even after adding a line for device, i do get RA.6 low but still dont flash yet. without this device line, the pin stays high.



    @ INCLUDE "16F886.INC"
    Include "bs2defs.bas"

    @ DEVICE PIC16F886, INTOSCIO,WDT_ON,MCLR_OFF,LVP_OFF,PROTECT_OFF,BOD_O FF,CPD_OFF,IESO_OFF,FCMEN_OFF,PWRT_OFF 'Device line
    define osc 4
    OSCCON=%01100000
    'ANSEL=0
    'ANSELH=0
    ' ADCON1=$0F ' all digital
    'adcon0.0 = %0
    ANSEL=%00000000
    trisa= %00000000 '%00011100 used in upgrade
    'porta=%00000000
    ' ADCON0 = $00
    'cm1con0.7=0
    'cm2con0.7=0
    'CM1CON0=0 ' need it?
    'CM2CON0=0 ' need it?




    'CM1CON0 = 0
    'CM2CON0 = 0

    run:
    high 6
    pause 1000
    low 6
    pause 1000
    goto run

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Code:
    @ INCLUDE "16F886.INC"
    SHOULDN'T need this line...

    Code:
    Include "bs2defs.bas"
    @ DEVICE PIC16F886, INTOSCIO,WDT_ON,MCLR_OFF,LVP_OFF,PROTECT_OFF,BOD_OFF,CPD_OFF,IESO_OFF,FCMEN_OFF,PWRT_OFF 'Device line
    DEFINE OSC 4 <-ALL DEFINES MUST BE IN CAPS,
    'but 4Mhz is the default so it doesn't help or hurt here
    OSCCON=$60 : ANSEL=0 : ANSELH=0 : ADCON1=$0F
    adcon0=0 : trisa=0 : porta=0
    run:
    porta.6=1 : pause 1000 : porta.6=0 : pause 1000 : goto run
    END <- good practice

  4. #4
    Join Date
    Sep 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Thumbs up Port settings

    My code works. This is really interesting difference between typing in ports on 16F689 and 16F886 like 6 on 16F689 while porta.6 on 16F886 (lower cap works!) and will be sure all are Upper Cap.

    I could see the 'Scope high/low.

    I copied your code and it produce errors with OSC registery and I rem some, still producing errors.

  5. #5
    Join Date
    Sep 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Default Mssp

    I need help on 16F886, is there config to disable MSSP?

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Here's some suggestion in case of doubt
    1. Open the datasheet under the Pin diagram section (Page 5)
    2. See what else your pin may have on (ADCs, Comparator etc etc)
    3. if so refer to each section of the extra module you want to disable, or see if they're already enable at POR

    Here you don't have anything else than MSSP Pins... so let's see section 13 and it's related Registers.

    Register 13-1: SSPSTAT
    Nothing in the list seems to enable/disable the module, let's go to the next one

    Register 13-2: SSPCON
    SSPEN bit 5
    bit 5 SSPEN: Synchronous Serial Port Enable bit
    In both modes, when enabled, these pins must be properly configured as input or output

    In SPI mode:
    1 = Enables serial port and configures SCK, SDO, SDI and SS as the source of the serial port pins
    0 = Disables serial port and configures these pins as I/O port pins

    In I2 C mode:
    1 = Enables the serial port and configures the SDA and SCL pins as the source of the serial port pins
    0 = Disables serial port and configures these pins as I/O port pins
    this bit should be =0 to disable the MSSP port, the POR values says it's already 0. Good practice to clear it yourself for safety sake, while not 100% needed.

    same for all other register.. if there's any other

    HTH
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  7. #7
    Join Date
    Sep 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Default

    Somehow the RA.5 randomly stays high since I use RA.5 as pulseout. Even that ADC is disabled, comparator disabled.

    Include "bs2defs.bas"
    define lcd_dreg portc
    define lcd_dbit 0 '0
    define lcd_rsreg portc
    define lcd_rsbit 4
    define lcd_ereg portc
    define lcd_ebit 5
    define lcd_bits 4
    define lcd_lines 2
    define lcd_commandus 1500 '1500 2000
    define lcd_dataus 44 '44
    PAUSE 1000
    ADCON1=$0F ' all digital
    ANSEL=%00000000

    ADCON0 = $00
    anselh = %0010 'Convert from Analog input to Digital input.
    trisb = %0010 '0=output, 1=input in analog.
    anselh = %01000000 'sets portc.6 as input
    trisc =%01000000 'sets portc.6 as input
    start:

    lcdout $FE,1,"TEST THE LCD"

    lcdout $FE,$C0," TEST"
    PAUSE 1000
    high porta.2
    pause 500
    low porta.2
    pause 500
    high portb.5
    pause 500
    low portb.5
    lcdout $FE,1,"RESETTING"
    pulsout porta.5,1000
    pause 1000
    pulsout porta.5,1000
    pause 1000
    goto start



    Above program works, but when in big program, RA.5 stays high.

    in other program, the following list is added

    ANSEL=%00100100 'Rev E
    TRISA=%00000011 'Rev E
    ADCON1 = %1
    ADCON0 = %01000101 'Rev E
    CM1CON0.7 = 0 'disables comp1
    CM2CON0.7 = 0 'disables comp2
    SSPCON.5 = 0 'disables MSSP
    'ADCON1=$0F

    and those line
    pulsout porta.5,1000


    that way randomly staying high and no longer getting pulsout. strange.

Similar Threads

  1. 16f886
    By Larry in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 4th November 2008, 16:57
  2. 16f886 interrupt on portB problem
    By antonjan in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 8th October 2008, 20:06
  3. 16F886 running out of SRAM ?
    By Chris Barron in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 29th August 2008, 23:01
  4. PIC Basic Pro Ver 2.47 Can't Do 16F886
    By NO2K in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 15th April 2008, 19:02
  5. Setting Fuses using Microcode Studio Plus
    By NO2K in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 18th May 2007, 23:14

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