by Rob Toulson and Tim Wilmshurst from textbook "Fast and Effective Embedded Systems Design: Applying the ARM mbed"

Dependencies:   mbed

main.cpp

Committer:
robt
Date:
2013-06-16
Revision:
0:71c5512ccb49

File content as of revision 0:71c5512ccb49:

/*Program Example 14.1: Sets up a digital output pin using control registers, and flashes an led.
                                                                         */
// function prototypes
void delay(void);

//Define addresses of digital i/o control registers, as pointers to volatile data
#define FIO2DIR0       (*(volatile unsigned char *)(0x2009C040))
#define FIO2PIN0       (*(volatile unsigned char *)(0x2009C054))
#define FIO0PIN0 (*( volatile unsigned char *)(0x2009C014))

int main()
{
    FIO2DIR0=0xFF;     // set port 2, lowest byte to output
    while(1) {
        for (int i=1; i<=3; i++) {
            FIO0PIN0 |= 0x02;       // set port 2 pin 1 high (mbed pin 25)
            delay();
            FIO0PIN0 &= ~0x02;      // set port 2 pin 1 low
            delay();
        }

    }
}
//delay function
void delay(void)
{
    int j;                      //loop variable j
    for (j=0; j<1000000; j++) {
        j++;
        j--;                      //waste time
    }
}