This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to set MCON register in DS5000T from sw applikation

Hi,
If I have bad luck, MCON has change, when I remove the power supply. MCON: 0xc8 -> 0xcc, if it happent dyring a RTC access.
And now I can't start my applikation before I have changed the MCON through the command line interface.
I have tried to set the MCON register in the beginning of the program, through "Timed Access", but in vain!

Can anyone tell me whats wrong with the code?


//DS5000T 32K

     TA   = 0x0AA; // timed access
     TA   = 0x55;
     MCON |= 0x02; // paa=1
     TA   = 0x0AA; // timed access
     TA   = 0x55;
     MCON = 0xD8; // partition adr 6000h


thanks!
Pih Lung

Parents
  • Hi,
    I copied the set of codes, but it didn't work well.
    a) Should I place the set of codes before or after "LJMP ?C_START"
    b) for "MOV EA, C", what is C, I gave it the value of #1. Is this correct ?
    c) In addition, I placed the following at the start of my codes
    MCON DATA 0C6H
    TA DATA 0C7H
    PSW DATA 0D0H
    d) Earlier, you mentioned "void set_mcon (void)", should this be invoked in the main() or commented out?

    Thanks.

Reply
  • Hi,
    I copied the set of codes, but it didn't work well.
    a) Should I place the set of codes before or after "LJMP ?C_START"
    b) for "MOV EA, C", what is C, I gave it the value of #1. Is this correct ?
    c) In addition, I placed the following at the start of my codes
    MCON DATA 0C6H
    TA DATA 0C7H
    PSW DATA 0D0H
    d) Earlier, you mentioned "void set_mcon (void)", should this be invoked in the main() or commented out?

    Thanks.

Children
  • hi
    a,b) right after
    LJMP ?C_START

    SETB C
    JBC EA,?C0158
    CLR C
    ?C0158:
    PUSH PSW
    MOV TA,#0AAH
    MOV TA,#055H
    ORL MCON,#02H
    MOV MCON,#088H
    MOV TA,#0AAH
    MOV TA,#055H
    ANL MCON,#0FDH
    POP PSW
    MOV EA,C
    END
    c) my defines

    EA EQU 0xAF
    PSW EQU 0xD0
    TA EQU 0xC7
    MCON EQU 0xC6

    d) commented out

    /Pih Lung

  • Hi,

    Thanks for your complete codes, but it still doesn't work.

    I debug and step-through. It seems that placing the MCON codes after LJMP ?C_START, will skip directly to main() without executing MCON codes.

    I tried to place it in other areas but no success.

    Am I missing something, for example should I configure additional parameters in the project options or should I use particular optimizations or memory model ?

    I am using small memomry model for Compact code rom size, optmization is 9, favour speed.

    Hope to hear from you.
    TIA

  • Hi
    My Project options:
    Device: use BL51 linker, not the LX51.
    Target: large, large, no OS.
    BL51 locate: code 0x0-0x3fff,
    xdata 0x4000-0x7fff
    code optim:6 or 8, but it has nothing to do with setting ECE2 in MCON,
    same thing with startup.a51 code.

    In the beginning of main()
    EA=0;
    MCON &= ~ECE2;
    EA=1;
    or set the original state of EA.

    This work for me!
    Pih Lung