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,

    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

Reply
  • 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

Children
  • 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