Hittar inte en #define *löste sig, ved ej hur*

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Icecap
Inlägg: 26151
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Hittar inte en #define *löste sig, ved ej hur*

Inlägg av Icecap »

Jag håller på med ytterligare ett projekt, jag använder i vanlig ordning vårat standard styrkort med Renesas RX210. Problemet är dock inte µC-relaterat.

Jag har ett antal "standard-filer" som tar hand om allt det tunga. Detta medför självklart att jag måste ställa en del saker när jag skapar ett nytt projekt, det varierar ju lite vilka funktioner som ska aktiveras i de olika projekt vilket betyder att olika interrupts ska/inte ska definieras, portpinnar ska vara input eller output osv.

I projektet definierar jag därför ett antal värden den "generella" definitionsdel, alltså är de definierat i systemet när den kompilerar:
USE_HOCO50MHZ
USE_RS232_B
USE_RS485
USE_CMT0
USE_CMT2

I min "Controller_Unit_200_Hardware.h" har jag en sektion som väljer hastighet på den interna oscillator:

#define PCKD_DIV 6
#if defined(USE_HOCO32MHZ)
#define CPU_CLK 32000000L
#define HOCO_SPEED 0 /* =32,000MHz */
#define PCKB_DIV 1
#define PCLK (CPU_CLK / 2L) /* 16,000MHz */
#elif defined(USE_HOCO36MHZ)
#define CPU_CLK 36864000L
#define HOCO_SPEED 1 /* =36,864MHz */
#define PCKB_DIV 2
#define PCLK (CPU_CLK / 4L) /* 9,216MHz */
#elif defined(USE_HOCO40MHZ)
#define CPU_CLK 40000000L
#define HOCO_SPEED 2 /* =40,000MHz */
#define PCKB_DIV 2
#define PCLK (CPU_CLK / 4L) /* 10,000MHz */
#elif defined(USE_HOCO50MHZ)
#define CPU_CLK 50000000L
#define HOCO_SPEED 3 /* =50,000MHz */
#define PCKB_DIV 2
#define PCLK (CPU_CLK / 4L) /* 12,500MHz */
#else
#error ERROR: HOCO clock not selected!!!
#endif


När jag sitter i IDE't (e2 studio, en Eclipse-version) är de röda raderna gråtonade (alltså inaktiva) medan de svart/vita är just svart/vita.

Jag använder detta sätt på en hel del projekt och det har varit lite knas med det ibland men normalt är felet att PCLK inte kan hittas. Eller exakt: "Symbol 'PCLK' could not be resolved". I filen finns ingen annan förekomst av "pclk".
Raden som hänvisas till är:

Kod: Markera allt

void System_Timer_Initiate(void)
  {
  SYSTEM.PRCR.WORD    = 0xA502; // Open lock
  MSTP(CMT0)          = 0;      // Timer module stop state cancelled
  SYSTEM.PRCR.WORD    = 0xA500; // Lock up again!
  CMT0_Stop();                  // Kill Run-flag
  CMT0.CMCR.WORD      = 0x00C0; // Enable compare interrupt & set PCLK:8
  CMT0.CMCNT          = 0x0000; // Clear the count
  CMT0.CMCOR          = ((PCLK / 8) / SYSTEM_CLOCK_SPEED) - 1; // Should give 1000Hz a.k.a. 1ms <== Denna raden är problemet i
  IPR(CMT0,CMI0)      = Int_Prio_System_Timer; // Interrupt priority
  IEN(CMT0,CMI0)      = true;   // Enable interrupts
  CMT0_Start();                 // Activate Run-flag
  }
Jag gör exakt likadan i ett antal andra projekt och där har det gnällt första och ibland andra gången jag kompilerar men sedan är det inget problem.

Hur tusan gör man så att den fattar?

EDIT:
Hade ta mig tusan skrivit fel... :doh:
Och sedan upptäckte jag att felet har försvunnit! Jag har inte gjort något annorlunda än förut - dock kan jag ha låtit IDE't stå ett tag med den fil framme medan jag grejade något annat.

Eclipse i all ära, det har många bra funktioner - men sporadisk funktionalitet är INTE önskvärd!
Senast redigerad av Icecap 2 oktober 2015, 19:59:07, redigerad totalt 1 gång.
Knappas
Inlägg: 148
Blev medlem: 26 november 2008, 16:51:09
Ort: Stockholm

Re: Hittar inte en #define

Inlägg av Knappas »

Antar att det är en liten felskrivning nu när du skrev in raden här i forumet men tänke det kunde vara värt att nämna iallafall...
"Symbol 'PLCK' could not be resolved"
alltså PLCK inte PCLK !
Skriv svar