Página 1 de 1
estrutura de dados

Enviado:
27 Mai 2007 15:43
por rebelk
alguém poderia me dizer por que o keil não esta aceitando a criação desta estrutura ?
Pois estou migrando do at89s8252 para o at89c51ed2, pois o mesmo possui mais area de ram (xram) , e por falar nisso , alguem poderia me enviar um exemplo gravação e leitura de dados na xram e na eeprom do at89c51ed2, desde já agradeço!
estou progamando em C no keil!
struct VARIAVEIS
{
unsigned int xdata P_1;
unsigned int xdata P_2;
unsigned int xdata P_3;
unsigned int xdata P_4;
unsigned int xdata P_5;
unsigned int xdata P_6;
unsigned int xdata P_7;
unsigned int xdata ESPELHO_P_1;
unsigned int xdata ESPELHO_P_2;
unsigned int xdata ESPELHO_P_3;
unsigned int xdata ESPELHO_P_4;
unsigned int xdata ESPELHO_P_5;
unsigned int xdata ESPELHO_P_6;
} PROG_1 ;

Enviado:
27 Mai 2007 15:58
por Red Neck Guy
O xdata está no local errado, creio eu...
Faz mó tempo que não trabalho com mcs51 + uVision...
struct{
unsigned int cachaca;
unsigned int whisky;
unsigned int cerveja;
unsigned int capirinha;
unsigned int picadinho;
unsigned int batataFrita;
}xdata minhaEstruturas;

Enviado:
27 Mai 2007 16:05
por barboza
Poste o erro gerado, pois fica mais facil de entender o que esta acontecendo.

Enviado:
27 Mai 2007 18:28
por rebelk
Aquino , fiz o que vc mandou e deu certo ! valeu pela ajuda

Enviado:
27 Mai 2007 18:32
por rebelk
Aquino , fiz o que vc mandou e deu certo ! valeu pela ajuda

Enviado:
30 Mai 2007 08:41
por rebelk
alguem tem um exemplo ultilizando a xram interna do at89c51ed2 ,
pois não estou conseguindo! se eu colocar ( unsigned char xdata dado ), ele escreve a ram externa , so que eu quero escrever na xram
interna do uC.
Re: estrutura de dados

Enviado:
30 Mai 2007 09:02
por andre_luis
rebelk escreveu:alguem poderia me enviar um exemplo gravação e leitura de dados na xram e na eeprom do at89c51ed2...
Para gravar em EEPROM, tem um exemplono próprio site da ATMEL.
http://www.atmel.com/dyn/resources/prod ... rs_C51.zip
+++

Enviado:
31 Mai 2007 15:47
por rebelk
eu vi o exemplo , mas não consegui ainda , eu vou explicar melhor o que eu quero!
struct{
unsigned int cachaca;
unsigned int whisky;
unsigned int cerveja;
unsigned int capirinha;
unsigned int picadinho;
unsigned int batataFrita;
}xdata minhaEstruturas;
eu quero criar esta estrutura na area da ram externa ( area de xram intena do micro ), mas não estou conseguindo , no exemplo acima citado o keil compila , mas ele aloca esta estrutura na area de ram externa ( ex uma 62256 ) , sera que fui claro?
alguem pode me ajudar ?
valeu todas as dicas !

Enviado:
31 Mai 2007 16:40
por barboza
Tente assim!
struct minhaEstruturas
{
unsigned int cachaca;
unsigned int whisky;
unsigned int cerveja;
unsigned int capirinha;
unsigned int picadinho;
unsigned int batataFrita;
};
struct minhaEstruturas xdata estrutura;

Enviado:
31 Mai 2007 19:03
por Red Neck Guy
Bixo, a arquitetura do mcs-51 não diferencia xdata interna e xdata externa, deve existir algum flag que faz o mcs-51 comutar entre xdata interna/externa.

Enviado:
31 Mai 2007 19:06
por Red Neck Guy
Meu, tá no dxit...
Tem uns flags de controle pra comutar o barramento e tal...
O compilador NÃO tem diretiva alguma pra fazer isso diretamente, tem que punhetiar os bits pra comutar.

Enviado:
31 Mai 2007 19:39
por andre_luis
Eu já fiz isso, mas nao funcionou, e nao tive tempo para insistir :
- Código: Selecionar todos
//-----------------------------------------------
#ifdef USANDO_AT89C51RC2
//-----------------------------------------------
IEN0 = 0x98 ; // habil. int. do Timer 1 e serial
IEN1 = 0x00 ; // desabilita interrupcoes extras
IPL0 = 0x00 ; // sem prioridades
IPH0 = 0x00 ; // sem prioridades
AUXR = 0x90 ; // configura acesso a XRAM interna
CKRL = 0xff-16 ;
CKCON0 &=~BIT0 ;
EECON &=~BIT1 ; // mapeia EEPROM ou XRAM internos
//-----------------------------------------------
Talvez tivesse de configurar algo mais.
+++

Enviado:
31 Mai 2007 21:53
por Red Neck Guy
Vai por mim, é só configurar lá...
Se eu tivesse um mcu desses com gravador aqui eu testava a parada toda...(In)felizmente eu só tenho um Jlink a mão...

Enviado:
01 Jun 2007 08:14
por rebelk
é muita peia!!!!!!!!!!!!!!!!!!!!!!!
já perdi metade dos meus cabelos com isso , e nada !