Hi,
ich hab das externe RAM noch nicht so viel benutzt. Du könntest allerdings mal folgende Codestück ausprobieren
:
Code:
// aus dem Datenblatt des ATMega162 ab Seite 28
#define OFFSET 0x0500
void init(void)
{
DDRC = 0xFF;
PORTC = 0x00;
/* externes RAM aktivieren */
MCUCR |= (1<<SRE);
/* eventuelle Waitstats aktivieren */
EMCUCR = 0;
/* eventl. Pins von PortC freigeben */
SFIOR &= ~((1<<XMBK)|(1<<XMM2)|(1<<XMM1)|(1<<XMM9));
}
int main(void)
{
unsigned char *p = (unsigned char *) (OFFSET + 1);
init();
*p = 0xaa;
PORTB = *p;
/* Die "unteren" Bytes liegen im internen RAM! */
p = 0x0002 + OFFSET;
*p = 0x72;
PORTD = *p;
while(1)
;
}
Hab das mal schnell zusammengestrickt. Ist also völlig ungetestet...
MfG Kjion
Lesezeichen