Used to hold all my \"snippets\" I create in forum support.

Dependencies:   mbed

forum1828/forum1828.cpp

Committer:
AjK
Date:
2011-02-10
Revision:
0:98784e7c6163

File content as of revision 0:98784e7c6163:

/**
 * @file forum1828.cpp
 * @see http://mbed.org/forum/mbed/topic/1828
 * @code
#include "mbed.h"

#define P0_22_SEL_MASK    ~(3UL << 12)
#define P0_22_SET_MASK    (1UL << 22)
#define P0_22_CLR_MASK    ~(p15_SET_MASK)
#define P0_22_AS_OUTPUT   LPC_PINCON->PINSEL1&=P0_22_SEL_MASK;LPC_GPIO0->FIODIR|=P0_22_SET_MASK
#define P0_22_AS_INPUT    LPC_GPIO0->FIOMASK &= P0_22_CLR_MASK; 
#define P0_22_SET         LPC_GPIO0->FIOSET = P0_22_SET_MASK
#define P0_22_CLR         LPC_GPIO0->FIOCLR = P0_22_SET_MASK
#define P0_22_IS_SET      (bool)(LPC_GPIO0->FIOPIN & P0_22_SET_MASK)
#define P0_22_IS_CLR      !(P0_22_IS_SET)
#define P0_22_MODE(x)     LPC_PINCON->PINMODE1&=P0_22_SEL_MASK;LPC_PINCON->PINMODE1|=((x&0x3)<<12)

DigitalOut myled(LED1);
DigitalOut led2(LED2);
InterruptIn mybool(P0_22);

void led2on(void) {
    led2 = 1;
}
 
void led2off(void) {
    led2 = 0;
}   

int main() {

    // Setup InterruptIn as normal.
    mybool.mode(PullUp);
    mybool.rise(&led2on);
    mybool.fall(&led2off);
    
    // Now cheat, manually switch it to an output.
    P0_22_AS_OUTPUT;

    while(1) {
        myled = 1;
        P0_22_SET; // Set the bool and led2on() is called.
        wait(0.2);
        
        myled = 0;
        P0_22_CLR; // Clear the bool and led2off() is called.
        wait(0.2);
    }
}
 
 * @endcode
 */

#ifdef FORUM_1828

/**
 * @see http://mbed.org/forum/mbed/topic/1828 
 */

#include "mbed.h"

#define P0_22_SEL_MASK    ~(3UL << 12)
#define P0_22_SET_MASK    (1UL << 22)
#define P0_22_CLR_MASK    ~(p15_SET_MASK)
#define P0_22_AS_OUTPUT   LPC_PINCON->PINSEL1&=P0_22_SEL_MASK;LPC_GPIO0->FIODIR|=P0_22_SET_MASK
#define P0_22_AS_INPUT    LPC_GPIO0->FIOMASK &= P0_22_CLR_MASK; 
#define P0_22_SET         LPC_GPIO0->FIOSET = P0_22_SET_MASK
#define P0_22_CLR         LPC_GPIO0->FIOCLR = P0_22_SET_MASK
#define P0_22_IS_SET      (bool)(LPC_GPIO0->FIOPIN & P0_22_SET_MASK)
#define P0_22_IS_CLR      !(P0_22_IS_SET)
#define P0_22_MODE(x)     LPC_PINCON->PINMODE1&=P0_22_SEL_MASK;LPC_PINCON->PINMODE1|=((x&0x3)<<12)

DigitalOut myled(LED1);
DigitalOut led2(LED2);
InterruptIn mybool(P0_22);

void led2on(void) {
    led2 = 1;
}
 
void led2off(void) {
    led2 = 0;
}   

int main() {

    // Setup InterruptIn as normal.
    mybool.mode(PullUp);
    mybool.rise(&led2on);
    mybool.fall(&led2off);
    
    // Now cheat, manually switch it to an output.
    P0_22_AS_OUTPUT;

    while(1) {
        myled = 1;
        P0_22_SET; // Set the bool and led2on() is called.
        wait(0.2);
        
        myled = 0;
        P0_22_CLR; // Clear the bool and led2off() is called.
        wait(0.2);
    }
}

#endif