Testing documentation

Dependencies:   mbed

Committer:
sgrove
Date:
Mon Apr 18 04:09:29 2011 +0000
Revision:
1:e835875b325c
Parent:
0:116ff1f909ba
Child:
2:60a7f968d4ad
r2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sgrove 0:116ff1f909ba 1 #include "mbed.h"
sgrove 0:116ff1f909ba 2
sgrove 1:e835875b325c 3 //! using a led
sgrove 0:116ff1f909ba 4 DigitalOut myled(LED1);
sgrove 0:116ff1f909ba 5
sgrove 1:e835875b325c 6 /**
sgrove 1:e835875b325c 7 * @param[in] - none
sgrove 1:e835875b325c 8 * @return - none
sgrove 1:e835875b325c 9 */
sgrove 0:116ff1f909ba 10 void DisconnectPLL0(){
sgrove 0:116ff1f909ba 11 // good practice to disable before feeding
sgrove 0:116ff1f909ba 12 __disable_irq();
sgrove 0:116ff1f909ba 13 // disconnect
sgrove 0:116ff1f909ba 14 LPC_SC->PLL0CON = 0x1;
sgrove 0:116ff1f909ba 15 LPC_SC->PLL0FEED = 0xAA;
sgrove 0:116ff1f909ba 16 LPC_SC->PLL0FEED = 0x55;
sgrove 0:116ff1f909ba 17 while (LPC_SC->PLL0STAT&(1<<25));
sgrove 0:116ff1f909ba 18 // power down
sgrove 0:116ff1f909ba 19 LPC_SC->PLL0CON = 0x0;
sgrove 0:116ff1f909ba 20 LPC_SC->PLL0FEED = 0xAA;
sgrove 0:116ff1f909ba 21 LPC_SC->PLL0FEED = 0x55;
sgrove 0:116ff1f909ba 22 while (LPC_SC->PLL0STAT&(1<<24));
sgrove 0:116ff1f909ba 23 // This is the default flash read/write setting for IRC
sgrove 0:116ff1f909ba 24 LPC_SC->FLASHCFG &= 0x0fff;
sgrove 0:116ff1f909ba 25 LPC_SC->FLASHCFG |= 0x5000;
sgrove 0:116ff1f909ba 26 LPC_SC->CCLKCFG = 0x0;
sgrove 0:116ff1f909ba 27 // Select the IRC as clk
sgrove 0:116ff1f909ba 28 LPC_SC->CLKSRCSEL = 0x00;
sgrove 0:116ff1f909ba 29 // not using XTAL anymore
sgrove 0:116ff1f909ba 30 LPC_SC->SCS = 0x00;
sgrove 0:116ff1f909ba 31 }
sgrove 0:116ff1f909ba 32
sgrove 1:e835875b325c 33 //! IAP address
sgrove 0:116ff1f909ba 34 #define IAP_LOCATION 0x1FFF1FF1
sgrove 1:e835875b325c 35 //! variable for command and result
sgrove 0:116ff1f909ba 36 unsigned int command[5];
sgrove 0:116ff1f909ba 37 unsigned int result[5];
sgrove 1:e835875b325c 38 //! function pointer with 2 array parameters
sgrove 0:116ff1f909ba 39 typedef void (*IAP)(unsigned int[5],unsigned int [5]);
sgrove 1:e835875b325c 40 //! declaration of the fptr.
sgrove 0:116ff1f909ba 41 IAP iap_entry = (IAP)IAP_LOCATION;
sgrove 0:116ff1f909ba 42
sgrove 1:e835875b325c 43
sgrove 1:e835875b325c 44 /** Servo control class, based on a PwmOut
sgrove 1:e835875b325c 45 *
sgrove 1:e835875b325c 46 * Example:
sgrove 1:e835875b325c 47 * @code
sgrove 1:e835875b325c 48 * // Continuously sweep the servo through it's full range
sgrove 1:e835875b325c 49 * #include "mbed.h"
sgrove 1:e835875b325c 50 * #include "Servo.h"
sgrove 1:e835875b325c 51 *
sgrove 1:e835875b325c 52 * Servo myservo(p21);
sgrove 1:e835875b325c 53 *
sgrove 1:e835875b325c 54 * int main() {
sgrove 1:e835875b325c 55 * while(1) {
sgrove 1:e835875b325c 56 * for(int i=0; i<100; i++) {
sgrove 1:e835875b325c 57 * myservo = i/100.0;
sgrove 1:e835875b325c 58 * wait(0.01);
sgrove 1:e835875b325c 59 * }
sgrove 1:e835875b325c 60 * for(int i=100; i>0; i--) {
sgrove 1:e835875b325c 61 * myservo = i/100.0;
sgrove 1:e835875b325c 62 * wait(0.01);
sgrove 1:e835875b325c 63 * }
sgrove 1:e835875b325c 64 * }
sgrove 1:e835875b325c 65 * }
sgrove 1:e835875b325c 66 * @endcode
sgrove 1:e835875b325c 67 */
sgrove 1:e835875b325c 68 /** Create a servo object connected to the specified PwmOut pin
sgrove 1:e835875b325c 69 *
sgrove 1:e835875b325c 70 * @param pin PwmOut pin to connect to
sgrove 1:e835875b325c 71 */
sgrove 1:e835875b325c 72
sgrove 1:e835875b325c 73 /** A brief description of the function foo
sgrove 1:e835875b325c 74 *
sgrove 1:e835875b325c 75 * More details about the function goes here
sgrove 1:e835875b325c 76 * and here
sgrove 1:e835875b325c 77 *
sgrove 1:e835875b325c 78 * @param x a variable used by foo
sgrove 1:e835875b325c 79 * @returns something magical done with x
sgrove 1:e835875b325c 80 */
sgrove 1:e835875b325c 81 int foo(int x) {...}
sgrove 1:e835875b325c 82
sgrove 0:116ff1f909ba 83 int main(){
sgrove 0:116ff1f909ba 84
sgrove 1:e835875b325c 85 //! change clk to 4MHz - see below
sgrove 0:116ff1f909ba 86 DisconnectPLL0();
sgrove 1:e835875b325c 87 //! stop all ISRs
sgrove 0:116ff1f909ba 88 __disable_irq();
sgrove 1:e835875b325c 89 //!make IAP call
sgrove 0:116ff1f909ba 90 command[0] = 57;
sgrove 0:116ff1f909ba 91 iap_entry(command, result);
sgrove 0:116ff1f909ba 92
sgrove 1:e835875b325c 93 //! This should never get executed
sgrove 0:116ff1f909ba 94 while(1) {
sgrove 0:116ff1f909ba 95 myled = 1;
sgrove 0:116ff1f909ba 96 wait(0.2);
sgrove 0:116ff1f909ba 97 myled = 0;
sgrove 0:116ff1f909ba 98 wait(0.2);
sgrove 0:116ff1f909ba 99 }
sgrove 0:116ff1f909ba 100 }