読者です 読者をやめる 読者になる 読者になる

めまいプログラマーの徒然

小脳出血でめまいをおこしている プログラマの忘備録

MSP432 (Cortex-M4F)

MSP432 基板が手に入ったので、まずLチカをやってみます。コンパイラーは TI社からリリースされている CCS を使って見ます。中身は Eclipse です。
ダウンロード先は

Download CCS - Texas Instruments Wiki

インストールは特に意識することなく簡単にインストールできました。
(注意点はウイルスチェックが動いていると警告が出ます。私はウイルスチェックを
一時、外してインストールしました。)
インストールの解説はこちら

CCS マニュアル | CCSv6 インストレーションガイド | TI

f:id:xskawabe:20160707201633j:plain

 3色LEDがあるのでこれを点滅させてみる。

まず、サンプルを動かしてみる。

Devices → MSP432P4xx → MSP432P401R(CMSIS) と選択する。

f:id:xskawabe:20160707203354p:plain

プロジェクト名で「msp432p401_1」を選択する。

f:id:xskawabe:20160707203827p:plain

サンプルの main 関数が見えます。

f:id:xskawabe:20160707204039p:plain

LED1 ( Red のみ) の点滅です。以下のように3色LED の点滅を追加し、ビルドします。

#include "msp.h"
#include <stdint.h>
#define RGB_LED_WAIT 100000
#define RGB_OFF_WAIT 100000
int main(void) {
    volatile uint32_t i;

    WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;               // Stop WDT
    P1->DIR |= BIT0;                          // P1.0 set as output

    P2->DIR |= BIT0;                          // P2.0 set as output (Red)
    P2->DIR |= BIT1;                          // P2.1 set as output (Green)
    P2->DIR |= BIT2;                          // P2.2 set as output (Blue)

    while (1)                               // continuous loop
    {
        P1->OUT ^= BIT0;                    // Blink P1.0 LED
        for (i = 20000; i > 0; i--);        // Delay

        P2->OUT = 0x0000 ;
        P2->OUT = 0x0001 ;                    // Blink P2.0 LED (Red)
        for (i = RGB_LED_WAIT; i > 0; i--);   // Delay
        P2->OUT = 0x0000 ;
        for (i = RGB_OFF_WAIT; i > 0; i--);   // LED All Off Delay

        P2->OUT = 0x0002 ;                    // Blink P2.1 LED (Green)
        for (i = RGB_LED_WAIT; i > 0; i--);   // Delay
        P2->OUT = 0x0000 ;
        for (i = RGB_OFF_WAIT; i > 0; i--);   // LED All Off Delay

        P2->OUT = 0x0004 ;                    // Blink P2.2 LED (Blue)
        for (i = RGB_LED_WAIT; i > 0; i--);   // Delay
        P2->OUT = 0x0000 ;
        for (i = RGB_OFF_WAIT; i > 0; i--);   // LED All Off Delay
    }
}

ビルドが成功すれば RUN → Debug でプログラムはターゲットボードに転送され、

int main ( void ) で停止しています。Run → Resume でプログラムが走りだします。