diff options
| author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-05-08 10:12:19 +0000 | 
|---|---|---|
| committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-05-08 10:12:19 +0000 | 
| commit | 83bbc0a6c61cabde630dfb08d69e4d6a29657dd2 (patch) | |
| tree | ad26357e5eddcf25bc13ec486983f4c94c56e4bb /demos | |
| parent | 3f9aac327ba999d67f9501ebf590d171e496b448 (diff) | |
| download | ChibiOS-83bbc0a6c61cabde630dfb08d69e4d6a29657dd2.tar.gz ChibiOS-83bbc0a6c61cabde630dfb08d69e4d6a29657dd2.tar.bz2 ChibiOS-83bbc0a6c61cabde630dfb08d69e4d6a29657dd2.zip | |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@285 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos')
| -rw-r--r-- | demos/MSP430-MSP430x1611-GCC/board.c | 32 | ||||
| -rw-r--r-- | demos/MSP430-MSP430x1611-GCC/board.h | 60 | ||||
| -rw-r--r-- | demos/MSP430-MSP430x1611-GCC/main.c | 4 | ||||
| -rw-r--r-- | demos/MSP430-MSP430x1611-GCC/readme.txt | 4 | 
4 files changed, 94 insertions, 6 deletions
| diff --git a/demos/MSP430-MSP430x1611-GCC/board.c b/demos/MSP430-MSP430x1611-GCC/board.c index 09f93075a..b591ec3d6 100644 --- a/demos/MSP430-MSP430x1611-GCC/board.c +++ b/demos/MSP430-MSP430x1611-GCC/board.c @@ -29,13 +29,43 @@  void hwinit(void) {
    /*
 +   * Clock sources setup.
 +   */
 +  DCOCTL  = VAL_DCOCTL;
 +  BCSCTL1 = VAL_BCSCTL1;
 +  BCSCTL2 = VAL_BCSCTL2;
 +
 +  /*
     * I/O ports initialization.
     */
 +  P1OUT = VAL_P1OUT;
 +  P1DIR = VAL_P1DIR;
 +  P1SEL = VAL_P1SEL;
 +
 +  P2OUT = VAL_P2OUT;
 +  P2DIR = VAL_P2DIR;
 +  P2SEL = VAL_P2SEL;
 +
 +  P3OUT = VAL_P3OUT;
 +  P3DIR = VAL_P3DIR;
 +  P3SEL = VAL_P3SEL;
 +
 +  P4OUT = VAL_P4OUT;
 +  P4DIR = VAL_P4DIR;
 +  P4SEL = VAL_P4SEL;
 +
 +  P5OUT = VAL_P5OUT;
 +  P5DIR = VAL_P5DIR;
 +  P5SEL = VAL_P5SEL;
 +
 +  P6OUT = VAL_P6OUT;
 +  P6DIR = VAL_P6DIR;
 +  P6SEL = VAL_P6SEL;
    /*
     * Timer 0 setup.
     */
 -  TACCR0 = ACLK / CH_FREQUENCY;         /* Counter limit.               */
 +  TACCR0 = ACLK / CH_FREQUENCY - 1;     /* Counter limit.               */
    TACTL = TACLR;                        /* Clean start.                 */
    TACTL = TASSEL_1 | MC_1;              /* Src=ACLK, cmp=TACCR0.        */
    TACCTL0 = CCIE;                       /* Interrupt on compare.        */
 diff --git a/demos/MSP430-MSP430x1611-GCC/board.h b/demos/MSP430-MSP430x1611-GCC/board.h index 005b019a9..fe4523b6a 100644 --- a/demos/MSP430-MSP430x1611-GCC/board.h +++ b/demos/MSP430-MSP430x1611-GCC/board.h @@ -20,12 +20,66 @@  #ifndef _BOARD_H_
  #define _BOARD_H_
 -#ifndef __msp430x16x
  #include <msp430x16x.h>
 +
 +#define MSP_USE_XT2CLK
 +
 +#define LFXT1CLK        32768
 +#define XT2CLK          8000000
 +#define DCOCLK          1000000
 +
 +#define ACLK            LFXT1CLK
 +#ifdef MSP_USE_XT2CLK
 +#define MCLK            XT2CLK
 +#define SMCLK           (XT2CLK / 8)
 +#else
 +#define MCLK            DCOCLK
 +#define SMCLK           LFXT1CLK
  #endif
 -#define MCLK 8000000
 -#define ACLK 8000000
 +#define VAL_DCOCTL      (DCO0 | DCO1)
 +#ifdef MSP_USE_XT2CLK
 +#define VAL_BCSCTL1     (RSEL2)
 +#define VAL_BCSCTL2     (SELM_2 | DIVM_0 | DIVS_3 | SELS)
 +#else
 +#define VAL_BCSCTL1     (XT2OFF | RSEL2)
 +#define VAL_BCSCTL2     (SELM_0 | DIVM_0 | DIVS_0)
 +#endif
 +
 +/*
 + * Pin definitionsfor the Olimex MSP430-P1611 board.
 + */
 +#define P3_O_TXD0       (1 << 4)
 +#define P3_I_RXD0       (1 << 5)
 +#define P6_O_LED        (1 << 0)
 +#define P6_I_BUTTON     (1 << 1)
 +
 +/*
 + * Initial I/O ports settings.
 + */
 +#define VAL_P1OUT       0x00
 +#define VAL_P1DIR       0xFF
 +#define VAL_P1SEL       0x00
 +
 +#define VAL_P2OUT       0x00
 +#define VAL_P2DIR       0xFF
 +#define VAL_P2SEL       0x00
 +
 +#define VAL_P3OUT       P3_O_TXD0
 +#define VAL_P3DIR       ~P3_I_RXD0
 +#define VAL_P3SEL       0x00
 +
 +#define VAL_P4OUT       0x00
 +#define VAL_P4DIR       0xFF
 +#define VAL_P4SEL       0x00
 +
 +#define VAL_P5OUT       0x00
 +#define VAL_P5DIR       0xFF
 +#define VAL_P5SEL       0x00
 +
 +#define VAL_P6OUT       P6_O_LED
 +#define VAL_P6DIR       ~P6_I_BUTTON
 +#define VAL_P6SEL       0x00
  void hwinit(void);
 diff --git a/demos/MSP430-MSP430x1611-GCC/main.c b/demos/MSP430-MSP430x1611-GCC/main.c index c1d9c86bb..6790720ef 100644 --- a/demos/MSP430-MSP430x1611-GCC/main.c +++ b/demos/MSP430-MSP430x1611-GCC/main.c @@ -29,7 +29,9 @@ static WorkingArea(waThread1, 64);  static msg_t Thread1(void *arg) {
    while (TRUE) {
 +    P6OUT |= P6_O_LED;
      chThdSleep(500);
 +    P6OUT &= ~P6_O_LED;
      chThdSleep(500);
    }
    return 0;
 @@ -61,6 +63,8 @@ int main(int argc, char **argv) {     * sleeping in a loop.
     */
    while (TRUE) {
 +//    if (!(P6IN & P6_I_BUTTON))
 +//      TestThread(&COM1);
      chThdSleep(500);
    }
    return 0;
 diff --git a/demos/MSP430-MSP430x1611-GCC/readme.txt b/demos/MSP430-MSP430x1611-GCC/readme.txt index 5533287ff..0fd0c5a7b 100644 --- a/demos/MSP430-MSP430x1611-GCC/readme.txt +++ b/demos/MSP430-MSP430x1611-GCC/readme.txt @@ -4,11 +4,11 @@  ** TARGET **
 -This is an abstract demo. it is not tested on real hardware yet.
 +The demo runs on an Olimex MSP430-P1611 board but it is still untested.
  ** The Demo **
 -Creates a thread that just sleeps in a continuous loop.
 +The demo flashes the board LED using a thread.
  ** Build Procedure **
 | 
