jak pristoupit k XRAM pameti v C51ED2
Moderátor: Moderátoři
jak pristoupit k XRAM pameti v C51ED2
priklad:
#include <at89c51xd2.h>
//deklarace testovacich promennych
unsigned char d[80];
unsigned char idata i[80];
unsigned char bdata b[16];
unsigned char pdata p[200];
unsigned char xdata x[500];
void main() {
int z;
P0_1=1;//nastaveni testovaciho pinu
//testovaci zapis data pameti
for (z=0;z<80;z++) {
d[z]=z;
}
//testovaci cteni data pameti
for (z=0;z<80;z++) {
if (d[z]!=z) {//rozhodnuti, zda je cteni OK a nastaveni pinu
P0_0=0;
}
else {
P0_0=1;
}
}
//testovaci zapis idata pameti
for (z=0;z<80;z++) {
i[z]=z;
}
//testovaci cteni idata pameti
for (z=0;z<80;z++) {
if (i[z]!=z) {//rozhodnuti, zda je cteni OK a nastaveni pinu
P0_1=0;
}
else {
P0_1=1;
}
}
//testovaci zapis bdata pameti
for (z=0;z<16;z++) {
b[z]=z;
}
//testovaci cteni bdata pameti
for (z=0;z<16;z++) {
if (b[z]!=z) {//rozhodnuti, zda je cteni OK a nastaveni pinu
P0_2=0;
}
else {
P0_2=1;
}
}
//testovaci zapis pdata pameti
for (z=0;z<200;z++) {
p[z]=z;
}
//testovaci cteni pdata pameti
for (z=0;z<200;z++) {
if (p[z]!=z) {//rozhodnuti, zda je cteni OK a nastaveni pinu
P0_3=0;
}
else {
P0_3=1;
}
}
//testovaci zapis xdata pameti
for (z=0;z<500;z++) {
x[z]=z;
}
//testovaci cteni xdata pameti
for (z=0;z<500;z++) {
if (x[z]!=z) {//rozhodnuti, zda je cteni OK a nastaveni pinu
P0_4=0;
}
else {
P0_4=1;
}
}
while (1);
}
Ten Keil měl soubor STARTUP.A51, který se vždy automaticky přilinkoval. V něm je nastaven i začátek a délka datových bloků, i toho xdata. Možná to chce změnit a potom přilinkovat manuálně.
Pokud výsledek testu kontroluješ staticky po spuštění, zjistíš jen výsledek zápisu/čtení posledního bajtu, ale to není podstatné.