Página 1 de 1

estrutura de dados

MensagemEnviado: 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 ;

MensagemEnviado: 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;

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

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

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

MensagemEnviado: 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

MensagemEnviado: 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

+++

MensagemEnviado: 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 !

MensagemEnviado: 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;

MensagemEnviado: 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.

MensagemEnviado: 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.

MensagemEnviado: 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.

+++

MensagemEnviado: 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...

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