This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

error: #268: declaration ...

I have just downloaded uVision v4 (sept 09) and am using the following code:

#include <AT91SAM7S256.h>

#define LED            (1<<0)   // PA0
#define INPUT_PIN      (1<<1)   // PA1
#define INT_PIN        (1<<2)   // PA2

static void initialize( void);

int main(void)
{
  volatile long input;
  initialize();

  volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA;

  while(1)
   {

    input = pPIOA->PIO_PDSR;          //for debugging.  Watch input variable to check if inputs working.


    pPIOA->PIO_CODR = LED;
    pPIOA->PIO_CODR = 0x01;

    pPIOA->PIO_SODR = LED;
  }
}

static void initialize(void)
{
  //Turn on the peripheral clock.  Without this on, inputs do not actually register in the PDSR register
  volatile AT91PS_PMC   pPMC = AT91C_BASE_PMC;                  // pointer to PMC data structure
  pPMC->PMC_PCER = (1<<AT91C_ID_PIOA);                         // enable Timer0 peripheral clock

  volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA;
  pPIOA->PIO_PER = (LED | INPUT_PIN);         // Set PIO to control LED and button.
  // Initialize Input
  pPIOA->PIO_ODR = INPUT_PIN ;                // Disable outputs for INPUT pins. (not needed as all pins default input on reset)
  pPIOA->PIO_PPUER = INPUT_PIN;               //Pullup Enable (not needed as all pullups are enabled on reset)

  // Initialize Output
  pPIOA->PIO_OER = LED;                      // Enable output for LED.
  pPIOA->PIO_SODR = LED;                     // Turn LED off.
  pPIOA->PIO_PPUDR = LED;                    //Pullup disable
}




and it throws up the following compile error:

main.c(14): error: #268: declaration may not appear after executable statement in block

with lines:

volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA;

and:

volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA;

What am I doing wrong. It compiles OK with my other compiler.

Please let me know

0