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

External memory

Hi everyone.
I need your help to solve this issue.
I am using a XC164CS microcontroller to run an aplication. The next aplication code toggles a P9.0 pin every 8 seconds.

#include <XC164.h>
#define T2INT 0x22
#define GPT1_TIMER_2 2

sbit    led =           P9^0;

void GPT1_vInit(void);
void MAIN_vUnlockProtecReg(void);

unsigned char second;

 void main (void)
 {
        MAIN_vUnlockProtecReg();        // unlock write security
        PLLCON         =  0x7D54;       // load PLL control register
        GPT1_vInit();                   // initialize Timer 2
        PSW_IEN        =  1;
        DP9            =  0x0001;       // load direction register
        while(1);
 }
void GPT1_viTmr2(void) interrupt T2INT using RB_LEVEL15
{
        second++;
        if(second == 8)
        {
                second = 0;
                led =! led;
        }
        GPT12E_T2      =  0x8170;      // load timer 2 register to interrupt every 1 sec
}

When I declare unsigned char idata the "second" variable, the application works properly. (This variable is alocated in on chip ram).
However if i just declare unsigned char (external memory) the appliction doesn't work. The pin doesn't toggle.
I have off-chip SRAM connected through an 16 bit multiplexed bus.
Below I show you some configuration and setup.

What could be the problem? Thank you very much.

subefotos.com/.../

Parents Reply Children