Autor Tema: [C30] Estructura para manejar un puerto, no me funciona jeje  (Leído 1573 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
[C30] Estructura para manejar un puerto, no me funciona jeje
« en: 03 de Marzo de 2008, 08:40:24 »
Hola gente

Tengo un pequeño problemilla. Quiero manejar independientemente los 4 bits superiores del PORTG en mi dspic. Pero lo quiero hacer de una forma elegante, es decir, ni manipulando bit por bit, ni usando mascaras OR y AND. Por ello me decanto por estructuras:

Código: [Seleccionar]
typedef struct Mota_4
{
unsigned :12;
unsigned MOT :4;
}MotorReg;


MotorReg *MOTORRAK; //linea 148
MOTORRAK=&PORTG;   //linea 149

Pero este codigo me da error. No entiendo el porqué.

konfigurazioa.h:149: error: conflicting types for 'MOTORRAK'
konfigurazioa.h:148: error: previous declaration of 'MOTORRAK' was here
konfigurazioa.h:149: warning: initialization makes integer from pointer without a cast
konfigurazioa.h:149: warning: data definition has no type or storage class

Puede darme alguien una solucion a esto?

Un saludo

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: [C30] Estructura para manejar un puerto, no me funciona jeje
« Respuesta #1 en: 03 de Marzo de 2008, 09:36:12 »
Probaste poniéndolo así?

MOTORRAK= PORTG;

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: [C30] Estructura para manejar un puerto, no me funciona jeje
« Respuesta #2 en: 03 de Marzo de 2008, 11:35:44 »
konfigurazioa.h:149: error: conflicting types for 'MOTORRAK'
konfigurazioa.h:148: error: previous declaration of 'MOTORRAK' was here
konfigurazioa.h:149: error: initializer element is not constant
konfigurazioa.h:149: warning: data definition has no type or storage class

Nada, me sigue dando error. Y la verdad parece bastante logico dado que PORTG es el valor de la direccion en si, y lo que yo quiero es que la estructura mapee (apunte hacia) PORTG por lo que deberia de poner su direccion.

Gracias de todas formas. Se os ocurre algo??


Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: [C30] Estructura para manejar un puerto, no me funciona jeje
« Respuesta #3 en: 09 de Marzo de 2008, 21:07:40 »
Por si te sirve, he probado esto con el compilador PICC18 de HI-TECH, y funciona :) :) :) :

typedef struct Mota_4
{
      unsigned    :4;
      unsigned MOT :4;
}MotorReg;


MotorReg *MOTORRAK = (MotorReg*)&PORTB; 

void main()
{
   MOTORRAK->MOT = 9;
}


 

anything