Página 1 de 1

Matriz com Struct e union no C18 é possivel?

MensagemEnviado: 20 Mar 2012 13:25
por FabioSom12
Eu preciso de uma estrutura de 4 matrizes de 20 chars com o mesmo endereço de uma matriz de 80 chars.

Eu tentei usar union mas não funcionou, será que no c18 struct só funciona com bits?


#pragma udata access lcd_env = 0x1b0
unsigned char lcd_L1[20];
unsigned char lcd_L3[20];
unsigned char lcd_L2[20];
unsigned char lcd_L4[20];
#pragma udata

union {
struct {
unsigned char L1[20];
unsigned char L3[20];
unsigned char L2[20];
unsigned char L4[20];
};
struct {
unsigned char lcd_80[80];
};
}LCDbits;

MensagemEnviado: 20 Mar 2012 15:09
por barboza
Qual foi o erro??

Acho que faltou o nome das suas structs.


p.s. Você tem 1 matriz de 4 linhas e 20 colunas, não 4 matrizes e sim 4 vetores.


Poderia ser assim tb:

Código: Selecionar todos

union {
unsigned char lines[4][20];

unsigned char lcd[80];
}LCDbits;



MensagemEnviado: 20 Mar 2012 16:24
por FabioSom12
Valeu Barboza.

Eu pensava que matriz, vetor e array era tudo a mesma coisa.
Tem diferença entre eles?


Funcionou. Foi erro na construção.

Código: Selecionar todos
#pragma udata lcd_env = 0x1b0
union {
struct {
unsigned char L1[20];
unsigned char L3[20];
unsigned char L2[20];
unsigned char L4[20];
};
struct {
unsigned char lcd_80[80];
};
}LCDbits;