PIC16f877 code crosses boundary @800h


Closed Thread
Results 1 to 8 of 8
  1. #1
    Join Date
    Nov 2008
    Posts
    18

    Default PIC16f877 code crosses boundary @800h

    Hello, on a PIC16f877 have this warnibg while compile with MC Studio Plus and PBP

    Warn 877_0.ASM : [102] code crosses boundary @800h

    Success 2134 word used

    It's over the limit?s ?

    It's possible to use PIC16F877A instead PIC16F877 without a bootloader?
    If yes, double the program space?

    Thanks a lot

    giorgio

    ******** code *********

    '************************************************* ***************
    '* Name : 877_0.BAS *
    '* Author : Giorgio Rossi *
    '* Notice : Copyright (c) 2009 Invento S.r.l. *
    '* : All Rights Reserved *
    '* Date : 05/03/2009 *
    '* Version : 1.0 *
    '* Notes : *
    '* PIC : PIC16F877 *
    '************************************************* ***************
    DEFINE OSC 8
    INCLUDE "MODEDEFS.BAS"

    @ DEVICE pic16F877, RC_OSC
    @ DEVICE pic16F877, WDT_OFF ' Watchdog Timer
    @ DEVICE pic16F877, PWRT_OFF ' Power-On Timer
    @ DEVICE pic16F877, BOD_ON ' Brown-Out Detect
    TRISA = %11111111
    TRISB = %00000000
    TRISC = %00010000
    TRISD = %11111011
    TRISE = %00000111

    ' ADC definitions 16F877 - (8) 10bit channels
    '*****************************
    DEFINE ADC_BITS 10 ' (8) 10 Bit channels
    DEFINE ADC_CLOCK 3 ' tell the us per osc clock tick?
    DEFINE ADC_SAMPLEUS 50 ' how long to sample the pin

    'INIT ADC
    ADCON1 = %10000000 ' All available analog pins are ON for input
    ADCON0 = %11000001 ' Analog converter Fosc/32, ADC module is ON
    ADCON0.7 = 1

    ' VARIABLES ************************************************** **********
    ADVAL0 VAR WORD
    ADVAL1 VAR WORD
    ADVAL2 VAR WORD
    ADVAL3 VAR WORD
    ADVAL4 VAR WORD
    ADVAL5 VAR WORD
    ADVAL10 VAR WORD
    ADVAL11 VAR WORD
    ADVAL12 VAR WORD
    ADVAL13 VAR WORD
    ADVAL14 VAR WORD
    ADVAL15 VAR WORD

    DIVAL0 VAR BYTE
    DIVAL1 VAR BYTE
    DIVAL2 VAR BYTE
    DIVAL3 VAR BYTE
    DIVAL4 VAR BYTE
    DIVAL5 VAR BYTE
    DIVAL6 VAR BYTE
    DIVAL7 VAR BYTE
    DIVAL8 VAR BYTE
    DIVAL10 VAR BYTE
    DIVAL11 VAR BYTE
    DIVAL12 VAR BYTE
    DIVAL13 VAR BYTE
    DIVAL14 VAR BYTE
    DIVAL15 VAR BYTE
    DIVAL16 VAR BYTE
    DIVAL17 VAR BYTE
    DIVAL18 VAR BYTE
    DIVAL19 VAR BYTE
    DIVAL20 VAR BYTE
    DIVAL21 VAR BYTE
    DIVAL22 VAR BYTE
    DIVAL23 VAR BYTE
    DIVAL24 VAR BYTE
    DIVAL25 VAR BYTE
    DIVAL26 VAR BYTE
    DIVAL27 VAR BYTE
    DIVAL28 VAR BYTE
    DIVAL30 VAR BYTE
    DIVAL31 VAR BYTE
    DIVAL32 VAR BYTE
    DIVAL33 VAR BYTE
    DIVAL34 VAR BYTE
    DIVAL35 VAR BYTE
    DIVAL36 VAR BYTE
    DIVAL37 VAR BYTE
    DIVAL38 VAR BYTE
    DATIAN VAR WORD
    'serout PORTC.5,t9600, [124, 155]
    serout PORTC.5,t9600, [$FE, 1]
    serout PORTC.5,t9600, [124, 3, 5]
    pause 100

    PAUSE 200

    mainloop:



    adcin 0, ADVAL0
    ADVAL0 = ADVAL0 *5
    adcin 1, ADVAL1
    ADVAL1 = ADVAL1 *5
    adcin 2, ADVAL2
    ADVAL2 = ADVAL2 *5
    adcin 3, ADVAL3
    ADVAL3 = ADVAL3 *5
    adcin 4, ADVAL4
    ADVAL4 = ADVAL4 *5
    adcin 5, ADVAL5
    ADVAL5 = ADVAL5 *5
    'adcin 6, ADVAL6
    'ADVAL6 = ADVAL6 *5
    'adcin 7, ADVAL7
    'ADVAL7 = ADVAL7 *5
    'pause 100



    'serout PORTC.5,t9600, [124, 3, 5]
    pause 200

    DIVAL0 = ADVAL0 DIG 0
    DIVAL1 = ADVAL0 DIG 1
    DIVAL2 = ADVAL0 DIG 2
    DIVAL3 = ADVAL1 DIG 0
    DIVAL4 = ADVAL1 DIG 1
    DIVAL5 = ADVAL1 DIG 2
    DIVAL6 = ADVAL2 DIG 0
    DIVAL7 = ADVAL2 DIG 1
    DIVAL8 = ADVAL2 DIG 2

    DIVAL10 = ADVAL3 DIG 0
    DIVAL11 = ADVAL3 DIG 1
    DIVAL12 = ADVAL3 DIG 2
    DIVAL13 = ADVAL4 DIG 0
    DIVAL14 = ADVAL4 DIG 1
    DIVAL15 = ADVAL4 DIG 2
    DIVAL16 = ADVAL5 DIG 0
    DIVAL17 = ADVAL5 DIG 1
    DIVAL18 = ADVAL5 DIG 2
    serin PORTC.4,t9600, ["DIVAL20"] , DIVAL20
    serin PORTC.4,t9600, ["DIVAL21"] , DIVAL21
    serin PORTC.4,t9600, ["DIVAL22"] , DIVAL22
    serin PORTC.4,t9600, ["DIVAL23"] , DIVAL23
    serin PORTC.4,t9600, ["DIVAL24"] , DIVAL24
    serin PORTC.4,t9600, ["DIVAL25"] , DIVAL25
    serin PORTC.4,t9600, ["DIVAL26"] , DIVAL26
    serin PORTC.4,t9600, ["DIVAL27"] , DIVAL27

    serin PORTC.4,t9600, ["DIVAL28"] , DIVAL28
    serin PORTC.4,t9600, ["DIVAL30"] , DIVAL30
    serin PORTC.4,t9600, ["DIVAL31"] , DIVAL31
    serin PORTC.4,t9600, ["DIVAL32"] , DIVAL32
    serin PORTC.4,t9600, ["DIVAL33"] , DIVAL33
    serin PORTC.4,t9600, ["DIVAL34"] , DIVAL34
    serin PORTC.4,t9600, ["DIVAL35"] , DIVAL35
    serin PORTC.4,t9600, ["DIVAL36"] , DIVAL36
    serin PORTC.4,t9600, ["DIVAL37"] , DIVAL37
    serin PORTC.4,t9600, ["DIVAL38"] , DIVAL38

    serout PORTC.5,t9600, [254,128, "a ", #DIVAL2, "." , #DIVAL1, #DIVAL0]
    serout PORTC.5,t9600, [254,135, "b ", #DIVAL5, "." , #DIVAL4, #DIVAL3]
    serout PORTC.5,t9600, [254,142, "c ", #DIVAL8, "." , #DIVAL7, #DIVAL6]
    serout PORTC.5,t9600, [254,192, "d ", #DIVAL12, "." , #DIVAL11, #DIVAL10]
    serout PORTC.5,t9600, [254,199, "e ", #DIVAL15, "." , #DIVAL14, #DIVAL13]
    serout PORTC.5,t9600, [254,206, "f ", #DIVAL18, "." , #DIVAL17, #DIVAL16]
    serout PORTC.5,t9600, [254,148, "g ", #DIVAL22, "." , #DIVAL21, #DIVAL20]
    serout PORTC.5,t9600, [254,155, "h ", #DIVAL25, "." , #DIVAL24, #DIVAL23]
    serout PORTC.5,t9600, [254,162, "i ", #DIVAL28, "." , #DIVAL27, #DIVAL26]
    serout PORTC.5,t9600, [254,212, "l ", #DIVAL32, "." , #DIVAL31, #DIVAL30]
    serout PORTC.5,t9600, [254,219, "m ", #DIVAL35, "." , #DIVAL34, #DIVAL33]
    serout PORTC.5,t9600, [254,226, "n ", #DIVAL38, "." , #DIVAL37, #DIVAL36]

    ' INVIO DATI AL PIC 877_1 PER SITEPLAYER
    serout PORTC.5,t9600, [124, 2, 4]
    serout PORTD.2,t9600, ["DATIAN", #DIVAL2, #DIVAL1, #DIVAL0, #DIVAL5, #DIVAL4, #DIVAL3, #DIVAL8, #DIVAL7, #DIVAL6, #DIVAL12, #DIVAL11, #DIVAL10, #DIVAL15, #DIVAL14, #DIVAL13, #DIVAL18, #DIVAL17, #DIVAL16]
    serout PORTD.2,t9600, ["DATIAN", DIVAL2, DIVAL1, DIVAL0, DIVAL5, DIVAL4, DIVAL3, DIVAL8, DIVAL7, DIVAL6, DIVAL12, DIVAL11, DIVAL10, DIVAL15, DIVAL14, DIVAL13, DIVAL18, DIVAL17, DIVAL16]



    goto mainloop
    END

  2. #2
    Join Date
    Oct 2003
    Location
    holland
    Posts
    251


    Did you find this post helpful? Yes | No

    Default

    It's just a warning, no problem. You chip is big enough for your program now.
    Try it and you will see that (if you mean what you programmed) your progam works.

  3. #3
    Join Date
    Nov 2008
    Posts
    18


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mat janssen View Post
    It's just a warning, no problem. You chip is big enough for your program now.
    Try it and you will see that (if you mean what you programmed) your progam works.
    Thanks Mat,
    do you how many word I can program with success with this chip (datasheet speek about 8K) ?

    thanks and regards

    giorgio

  4. #4
    Join Date
    Oct 2003
    Location
    holland
    Posts
    251


    Did you find this post helpful? Yes | No

    Default

    The 8 K are the assembled words/
    I cannot tell you how much that is in PBP.
    It depends on the pbp instructions you use.
    Each instruction has some overhead code in asm. LCDout has more code then x=0
    If you use a gosub for your serout and serin instructions I think your code will also be shorter.

  5. #5
    Join Date
    Mar 2009
    Posts
    48


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mat janssen View Post
    It's just a warning, no problem. You chip is big enough for your program now.
    Try it and you will see that (if you mean what you programmed) your progam works.
    are you sure about this????????

  6. #6
    Join Date
    Mar 2009
    Posts
    48


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mat janssen View Post
    It's just a warning, no problem. You chip is big enough for your program now.
    Try it and you will see that (if you mean what you programmed) your progam works.
    melanie rules

    http://picbasic.co.uk/forum/showthre...undary+%40800h

  7. #7
    Join Date
    Jan 2009
    Location
    Ankara,TURKEY
    Posts
    45


    Did you find this post helpful? Yes | No

    Default

    you see this warning because you reach the end of first memory page.
    4 page x 2K = 8 Kiloword memory
    Electrical & Electronic Engineering
    Undergraduate Student

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


    Did you find this post helpful? Yes | No

    Default

    It makes a difference if you are using the <B>BRANCH</B> Statement, in which case you would use BRANCHL , BranchL takes up more space than BRANCH and that is why you wouldn't use BranchL only.
    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.

Similar Threads

  1. code crosses boundary ?
    By jonas2 in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 11th September 2009, 10:04
  2. Code Crosses Boundary
    By Dick Ivers in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 2nd September 2005, 04:21
  3. Code Crosses Boundary @ 800h
    By muskut in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 2nd August 2005, 08:17
  4. error on compiling
    By parker in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 16th June 2005, 14:31
  5. error : code crosses boundary
    By kasapo in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 26th March 2005, 11: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