estrutura de dados

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

estrutura de dados

Mensagempor rebelk » 27 Mai 2007 15:43

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 ;
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor Red Neck Guy » 27 Mai 2007 15:58

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;
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor barboza » 27 Mai 2007 16:05

Poste o erro gerado, pois fica mais facil de entender o que esta acontecendo.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor rebelk » 27 Mai 2007 18:28

Aquino , fiz o que vc mandou e deu certo ! valeu pela ajuda
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor rebelk » 27 Mai 2007 18:32

Aquino , fiz o que vc mandou e deu certo ! valeu pela ajuda
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor rebelk » 30 Mai 2007 08:41

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.
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Re: estrutura de dados

Mensagempor andre_luis » 30 Mai 2007 09:02

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

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor rebelk » 31 Mai 2007 15:47

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 !
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor barboza » 31 Mai 2007 16:40

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;
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor Red Neck Guy » 31 Mai 2007 19:03

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.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor Red Neck Guy » 31 Mai 2007 19:06

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.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor andre_luis » 31 Mai 2007 19:39

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.

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor Red Neck Guy » 31 Mai 2007 21:53

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...
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor rebelk » 01 Jun 2007 08:14

é muita peia!!!!!!!!!!!!!!!!!!!!!!!
já perdi metade dos meus cabelos com isso , e nada !
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x