C18 typedef union

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

C18 typedef union

Mensagempor vtrx » 26 Mai 2019 18:55

Estou tentando usar um exemplo que achei num site,mas tem algo errado na estrutura;
Código: Selecionar todos
typedef union _SET_GET_EFFECT_STRUCTURE
{
 struct
 {
  BYTE report_id;
  BYTE effect_type;
  BYTE byte_count; // valid only for custom force data effect.
       // custom force effects are not supported by this device.
 }SET_REPORT_REQUEST;
 struct
 {
  BYTE report_id; // 2
  BYTE effect_block_index; // index dell'effetto
  BYTE block_load_status; // 1 ok, 2 -out of memory, 3 JC was here, or maybe not ? case: undefined.
  int ram_pool_available;
 }PID_BLOCK_LOAD_REPORT;

BYTE val[8];
}SET_GET_EFFECT_STRUCTURE;


Ela é usada nesta parte da função;
Código: Selecionar todos
SET_GET_EFFECT_STRUCTURE.SET_REPORT_REQUEST.report_id=hid_report_out[0];

Mas o compilador retorna erro:main.c:227:Error: syntax error
O que esta errado?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: C18 typedef union

Mensagempor vtrx » 26 Mai 2019 20:55

Tive que fazer duas alterações,me ajudem explicando se está correto:
Código: Selecionar todos
void USBSetEffect(void)
{
SET_GET_EFFECT_STRUCTURE set_get_effect_structure;

set_get_effect_structure.SET_REPORT_REQUEST.report_id=hid_report_out[0]; // 1: based on the pid report descriptor


Código: Selecionar todos
typedef union _SET_GET_EFFECT_STRUCTURE
{
 struct
 {
  char report_id;
  char effect_type;
  char byte_count; // valid only for custom force data effect.
       // custom force effects are not supported by this device.
 }SET_REPORT_REQUEST;
 struct
 {
  char report_id; // 2
  char effect_block_index; // index dell'effetto
  char block_load_status; // 1 ok, 2 -out of memory, 3 JC was here, or maybe not ? case: undefined.
  int ram_pool_available;
 }PID_BLOCK_LOAD_REPORT;

  char val[8];
}SET_GET_EFFECT_STRUCTURE;


1-Toquei BYTE por char,e acrecentei no início da rotina SET_GET_EFFECT_STRUCTURE set_get_effect_structure;

Ainda não programei o resto para testar esta rotina,apenas estou verificando erros de compilação.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: C18 typedef union

Mensagempor pamv » 26 Mai 2019 22:42

Dê uma olhada na página 17 do manual

http://ww1.microchip.com/downloads/en/D ... 51288d.pdf

lá tem os tipos suportados e os limites
pamv
Word
 
Mensagens: 842
Registrado em: 20 Jun 2016 21:47


Voltar para PIC

Quem está online

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

x