[elektro] C kérdés
hg12345
hg12345 at freemail.hu
Sun Dec 19 18:07:26 CET 2010
Köszönöm a tanácsokat.
Hogy a hordazható legyen a code és a különböző forditók különböző behelyettesítéseit
meg tudom csinálni. Nem ez a problémám.
Összeszedtem ami szükséges :
typedef struct
{
__IO uint16_t CR1;
uint16_t RESERVED0;
__IO uint16_t CR2;
uint16_t RESERVED1;
__IO uint16_t SMCR;
uint16_t RESERVED2;
__IO uint16_t DIER;
uint16_t RESERVED3;
__IO uint16_t SR;
uint16_t RESERVED4;
__IO uint16_t EGR;
uint16_t RESERVED5;
__IO uint16_t CCMR1;
uint16_t RESERVED6;
__IO uint16_t CCMR2;
uint16_t RESERVED7;
__IO uint16_t CCER;
uint16_t RESERVED8;
__IO uint16_t CNT;
uint16_t RESERVED9;
__IO uint16_t PSC;
uint16_t RESERVED10;
__IO uint16_t ARR;
uint16_t RESERVED11;
__IO uint16_t RCR;
uint16_t RESERVED12;
__IO uint16_t CCR1;
uint16_t RESERVED13;
__IO uint16_t CCR2;
uint16_t RESERVED14;
__IO uint16_t CCR3;
uint16_t RESERVED15;
__IO uint16_t CCR4;
uint16_t RESERVED16;
__IO uint16_t BDTR;
uint16_t RESERVED17;
__IO uint16_t DCR;
uint16_t RESERVED18;
__IO uint16_t DMAR;
uint16_t RESERVED19;
} TIM_TypeDef;
#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */
#define APB1PERIPH_BASE PERIPH_BASE
#define TIM2_BASE (APB1PERIPH_BASE + 0x0000)
//#define TIM2 ((TIM_TypeDef *) TIM2_BASE) //eredeti meghatározás, a programban csak local változóként használják
#define TIMbaseAddr (TIM2)
TIM_TypeDef *TIMbase = TIMbaseAddr; //Én globál változóként használom, és müködik a programban.
//sajnos a rendszerben csak int tipus változokat lehet cimre definiálni, azért kell igy megoldani.
#define HwPwm1Reg TIMbase->CCR2 //PWM kimeneti regiszter
#define HwPwm2Reg TIMbase->CCR3 //PWM kimeneti regiszter
#define HwPwm3Reg TIMbase->CCR1 //PWM kimeneti regiszter
//Ez lenne a cimforditó tábla:
__IO uint16_t* HWPwmPointerArray[] = { (__IO uint16_t*) &HwPwm1Reg, (__IO uint16_t*) &HwPwm2Reg, (__IO uint16_t*) &HwPwm3Reg };
// a forditó értékelése
..\HWlayer\It_TimerBase.c(97): error: #28: expression must have a constant value
..\HWlayer\It_TimerBase.c(97): error: #44: expression must have pointer type
..\HWlayer\It_TimerBase.c(97): error: #28: expression must have a constant value
..\HWlayer\It_TimerBase.c(97): error: #44: expression must have pointer type
..\HWlayer\It_TimerBase.c(97): error: #28: expression must have a constant value
..\HWlayer\It_TimerBase.c(97): error: #44: expression must have pointer type
More information about the Elektro
mailing list