G2007_プロジェクトの複写

2024122

19:13

G2007_lpc_new_project_copy

 

 

 

 

 

 

 

 

LPCXpresso を起動します

 

 

 

プロジェクトを空欄にします

 

 

 

LPC812_TEMPLATE を読み込みします

 

 

 

 

 

 

 

プロジェクト、プロパティの一部を修正します

 

 

リファレンスポリシーが、古いプロジェクトのままなので削除します

 

 

新しいリファレンスポリシーを追加します

 

 

 

 

ビルドのプロパティを展開します

 

 

 

MCU Linker も古い名前のままなので修正が必要です

 

 

 

 

 

ビルドの作業ファイルを削除します

 

 

これらは前回のプロジェクトの生成ファイルです

すべて削除します

 

 

 

 

メインコードの修正をします

 

 

///////////////////////////////////////////////////////

//        LPC812 TEMPLATE プロジェクトのひな型

//  2024.12.02 MON (19:15) goma0099 -37891551-

//

///////////////////////////////////////////////////////

 

#include "LPC8xx.h"            //ヘッダファイルの読み込み

#include "\LPC\LPC812\KYO\type.h"

#include <stdlib.h>                // atoi()活用のため

#include <string.h>                // atoi()活用のため

 

#include "\LPC\LPC812\KYO\lpc8xx_uart.h"

#include "\LPC\LPC812\KYO\lpc8xx_uart.c"

#include "\LPC\LPC812\KYO\lpc8xx_i2c.h"

#include "\LPC\LPC812\KYO\lpc8xx_i2c.c"

 

//        改造された共用関数を一箇所にまとめて最新がインクルードされるように

#include "\LPC\LPC812\KYO\lpc812_kyo.h"

#include "\LPC\lpc_kyo.h"

 

void SwitchMatrix_Init()

{

    /* Enable SWM clock */

    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7);

 

    /* Pin Assign 8 bit Configuration */

    /* U0_TXD */

    /* U0_RXD */

    LPC_SWM->PINASSIGN0 = 0xffff0004UL;

    /* I2C0_SDA */

    LPC_SWM->PINASSIGN7 = 0x11ffffffUL;

    /* I2C0_SCL */

    LPC_SWM->PINASSIGN8 = 0xffffff0dUL;

 

    /* Pin Assign 1 bit Configuration */

    /* RESET */

    LPC_SWM->PINENABLE0 = 0xffffffbfUL;

}

 

//                インターバル割り込み関数を msec 待ち時間関数に活用しています

void SysTick_Handler(void)

{

if(--Goma_msec_wait_cnt == 0)

{        NVIC_DisableIRQ(SysTick_IRQn);                // 割り込み無効

}

}

 

// 関数テストの処理をここから下に

// C#と違い、main() で利用する関数は事前に定義されている必要があります

// あるいは、型定義を行えば、main() の下に関数定義をしても利用出来ます

 

int main(void)

{

//        シリアル通信の受信データ

uint8_t        rcv_buf_max = 40;

char        rcv_buf[40+2];

    uint8_t rcv_cnt = 0;

 

uint8_t led_pin = 20;                // 20番ピンをLEDモニタとします

 

 

    // スイッチ・マトリックス設定

    SwitchMatrix_Init();

 

    pin_set_output(led_pin); // LED

 

    //////////////////////////////////////

    //        周期割り込みの初期化

    //////////////////////////////////////

SystemCoreClockUpdate();

SysTick_Config( SYSTICK_DELAY );

LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);

 

    UARTInit(LPC_USART0,115200);   // UART初期化関数( bpsに設定)

    LPC_i2c_init();                // I2C初期化

 

 

while(1)

    {

// 点滅 600msecで点滅します

pin_out(led_pin,1,'m',300);                // 300msec LED ON

pin_out(led_pin,0,'m',300);                // 300msec LED OFF

 

// コマンド受信  CR LF を検出し、コマンドが完成する

if(UART_rcv_buf_get(rcv_buf,&rcv_cnt,rcv_buf_max) == 0) continue;

 

// 受信をLEDで確認する

pin_out(led_pin,0,'m',300);        pin_out(led_pin,1,'m',0);

 

 

            if(rcv_buf[0] == 'S' || rcv_buf[0] =='s')                // 反応するI2Cアドレス調査

            {

                    LPC_i2c_add_all_chk();        // アドレス検索

            }

 

 

            if(rcv_buf[0] == 'a' || rcv_buf[0] == 'A')

            {

            }

 

            if(rcv_buf[0] == 'b' || rcv_buf[0] == 'B')

            {

            }

 

            if(rcv_buf[0] == 'c' || rcv_buf[0] == 'C')

            {

            }

 

            if(rcv_buf[0] == 'f' ||rcv_buf[0] == 'F')

            {

            }

 

            if(rcv_buf[0] == 'P' || rcv_buf[0] == 'p')

            {

            }

 

            if(rcv_buf[0] == 'z' || rcv_buf[0] == 'Z')

            {

            }

 

 

            UART_rcv_buf_clr(rcv_buf,&rcv_cnt);                // 受信コマンド初期化

 

    }

}

 

20番ピンのLEDを点滅させる

 

 

 

下記が、マイコンに書き込みする目的のファイルです

 

 

次回の説明の為に、プロジェクトフォルダをZIPファイルに圧縮して、OneDriveに公開します

 LPC812_TEMPLATE.zip