Problem with A port on 18F2550


Closed Thread
Results 1 to 19 of 19
  1. #1

    Default Problem with A port on 18F2550

    I have a problem with my a port on the 18F2550 device. When i use this code the a port will toggle all the time. What do I wrong.

    I have the following code:

    Include "modedefs.bas"

    Define OSC 20
    DEFINE DEBUG_REG PORTC
    DEFINE DEBUG_BIT 7
    DEFINE DEBUG_BAUD 9600
    DEFINE DEBUG_MODE 1

    LEDGroen VAR PORTB.7
    LEDRood VAR PORTA.2


    Relais1 VAR PORTA.5 ' Relaiscontact'

    LATA = 0


    ADCON1 = 7 'poort a op digitaal
    'ADCON1 = 0 'poort a op analoog

    ADCON0 = 0
    ADCON2 = 0

    'CMCON = 7


    TRISB.3 = 1 'Input
    TRISB.2 = 1 'Input
    TRISA.1 = 1 'Input

    TRISA = 255


    DEFINE ADC_BITS 8 ' Set number of bits in result (8, 10 or 12)
    DEFINE ADC_CLOCK 2 ' Set clock source (rc = 3)
    DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds

    Init:

    HIGH LEDGroen
    PAUSE 500
    LOW LEDGroen
    Pause 500
    HIGH LEDRood
    PAUSE 500
    LOW LEDRood
    Pause 500
    Debug "->Start<-", 13,10

    Goto Main


    Main:
    High Relais1
    Goto Main:
    Last edited by NL2TTL; - 7th May 2007 at 18:19.

  2. #2
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by NL2TTL View Post
    I have a problem with my a port on the 18F2550 device. When i use this code the a port will toggle all the time. What do I wrong.
    I have the following code:........................
    Since your last thread was about 3v3 PICs, I have to ask...
    What is your power supply? And are you running a PIC18F2550 or PIC18LF2550?

    And what's this line for?
    ---------Baudrate CON T9600 ' Voor communicatie met RFID-module---------

  3. #3


    Did you find this post helpful? Yes | No

    Default

    This is for a other project, it's a normal 5V operation system.
    The line where you talk about is not needed.

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


    Did you find this post helpful? Yes | No

    Default

    make sure that there's no possible Brown-out reset @20MHz and @3 V. Usually the datasheet show the minimum voltage for a given crystal speed.

    EDIT: nevermind.. misread your post.

    well you'll need to post your Config Fuses line OR send your compiled .HEX files.

    Make sure your ADCON setting is good as well.
    Last edited by mister_e; - 7th May 2007 at 19:21.
    Steve

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

  5. #5


    Did you find this post helpful? Yes | No

    Default

    I Use the following A ports:

    Input1 VAR PORTA.0 'input
    Relais1 VAR PORTA.5 'output
    Data_In VAR PORTA.4 'serial data
    LEDRood VAR PORTA.2 'output

    I use the following adcon settings:

    LATA = 0
    ADCON1 = 7 'poort set as digital

    ADCON0 = 0
    ADCON2 = 0
    TRISA.1 = 1 'Input

    TRISA = 255

    Fuses are set:

    http://www.ttalens.com/images/picbasic/fuses1.JPG

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Does the ">Start<" go out the serial port about every 2 seconds or so?

  7. #7


    Did you find this post helpful? Yes | No

    Default

    This is a one time operation.

  8. #8
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by NL2TTL View Post
    This is a one time operation.
    I know it's a one time operation. That's the way you've written it in the program.
    I'm asking if, while the program is in operation, do you get the ">Start<" out of the serial port about every 2 seconds or so?

  9. #9


    Did you find this post helpful? Yes | No

    Default

    Yes every 2 seconds

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


    Did you find this post helpful? Yes | No

    Default

    Out of curiosity, which PIC programmer do you use?

    could you post your compiled .HEX file?

    Make sure your MCLR pin is tied to Vcc via a resistor.

    Seems to work as design here...
    Steve

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

  11. #11


    Did you find this post helpful? Yes | No

    Default

    I'm using a ICD2 compiler.

    He're is the hex file
    Attached Files Attached Files

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


    Did you find this post helpful? Yes | No

    Default

    OK i got the same problem here. Are you using the same code as in POST #1 ???

    One thing is sure, if i disable the Watchdog timer, it works...
    Steve

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

  13. #13
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mister_e View Post
    OK i got the same problem here. Are you using the same code as in POST #1 ???

    One thing is sure, if i disable the Watchdog timer, it works...
    That's why I asked 'Does it show ">Start<" every 2 seconds out the serial port'...
    In the picture posted earlier with all the fuses shown, the WDT prescaler is set to 1:128 and Enabled.
    (Yesterday when I asked the question about the 2 seconds, I had the math worked out and it came up to about 2 seconds (give or take)...
    Tonight when I do the math, I only get 1/2 second...I musta been drunk or something )

  14. #14


    Did you find this post helpful? Yes | No

    Default

    So you guys say shut down the watchdog timer. How can i do this?
    Can this be the reason that a other microprocessor board with same config and same sort of simple program hangs after a few days.

  15. #15
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by NL2TTL View Post
    So you guys say shut down the watchdog timer. How can i do this?
    Can this be the reason that a other microprocessor board with same config and same sort of simple program hangs after a few days.
    1 - Reopen the same program you opened in Post #5 (MPLAB IDE)
    2 - Left-Click on the 'Configure' menu
    3 - Further click on 'Configuration Bits'
    4 - Press the down arrow on your keyboard 10 times
    5 - By now you should have '300003 1F Watchdog Timer Enabled' selected
    6 - Left-Click on the line that is now highlighted
    7 - Left-Click on the drop-down menu that appears
    8 - Left-Click on the words 'Disabled-Controlled by SWDTEN bit'

    2nd question - it's possible...

    Or you could turn up your WDT post-scaler.
    Last edited by skimask; - 9th May 2007 at 08:50.

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


    Did you find this post helpful? Yes | No

    Default

    Yeah... but, from what i suppose, PBP have to take care of the watch dog... maybe 2.47 fixed it.

    Anyways, i'm doing cofee here, i will try the original code with WatchDog enabled. i think i already did it here... but curiosity...

    EDIT:
    ;----- CONFIG2H Options --------------------------------------------------
    _WDT_OFF_2H EQU H'FE' ; HW Disabled - SW Controlled
    _WDT_ON_2H EQU H'FF' ; HW Enabled - SW Disabled
    interesting
    Last edited by mister_e; - 9th May 2007 at 13:56.
    Steve

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

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


    Did you find this post helpful? Yes | No

    Smile

    Why not just add
    Code:
    CLEARWDT
    inside the tight loop?
    Paul Borgmeier
    Salt Lake City, UT
    USA
    __________________

  18. #18
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by NL2TTL View Post
    So you guys say shut down the watchdog timer. How can i do this?
    Can this be the reason that a other microprocessor board with same config and same sort of simple program hangs after a few days.
    Find your .lst file for this program. Search for the:

    Main:
    High Relais1
    Goto Main:

    block and see if there is a CLEARWDT in the middle of the loop. If not, then do like Paul said and add a CLEARWDT in the middle of the loop in your source file. That should fix it without having to mess with the config settings.
    And which version of PBP are you using? Maybe that's got something to do with the problem...

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


    Did you find this post helpful? Yes | No

    Default

    well.. unless you really want to use the Watch-dog features, just disable it.
    Steve

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

Similar Threads

  1. Array problem (18F2550)
    By Ronald123 in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 8th January 2008, 18:47
  2. Setting up Port b for I2C on 18f2550
    By rjones2102 in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 2nd October 2007, 20:22
  3. Microcontroller with 2 way paging application problem
    By oneohthree in forum mel PIC BASIC Pro
    Replies: 30
    Last Post: - 20th April 2007, 17:27
  4. PWM problem CCP2 port
    By NL2TTL in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 19th September 2006, 23:34
  5. COM port problem
    By andys280176 in forum Serial
    Replies: 0
    Last Post: - 19th January 2006, 16:42

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