chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

ARM(LPC810)組込みプログラミングAgain...

仕事がアップアップで休日はプログラミングをやる気も全くなかったけど、開発プロジェクトもゴールが見えてきて余裕かましているので、久しぶりにARMで工作をすることに。。
最終的には、Google HomeAmazon Echoなんかで、開けゴマ等と音声指示を出すと、めぐりめぐって、模型の扉が開いたり、右向けと音声指示を出すと、模型の矢印等の形状を左右に回転するようなのを作りたい。
先日ポイントが期限切れそうになったので、YahooShop?だったかで、小型サーボを買った。これをマイコンから動かすようにする。
一番手軽なのは、Arduinoか、ラズパイでサーボライブラリを使うのだろうけど、Arduinoは他人のフンドシに乗っかるのが気に入らないのと、ラズパイはサーボ動かすだけなのに大げさだと思い、ミニマムに作るためARM(LPC810)を使うことにした。値段だけなら、AVRのマイコン(Tiny)の方が安いけど、デバッガ買おうとすると結構高いので。。
昔使っていた開発環境もPCのどこに行ったのか分からなくなったので、NXPのサイトから、LPC Xpresso 8.2.2をダウンロードしてPCに開発環境を再度構築した。お試しのmainだけのProjectを作ってビルド、デバッグしてみた。昔販売されていたトラ技付録のmbedコンパチのARM評価ボード(トラ技ARMライタ)を利用して一応LPC810とつながった。
他人様(みっかぼログ様)のLチカプログラムを一部Copyして、デバッガでステップ実行してLEDが点滅するところまでは確認した。
下記が何も考えず、ほとんど仕様書を調べず、みっかぼログ様のソースをコピーさせてもらったLチカサンプル。チカといってもWAIT入ってないので、発振するぐらいの速さでチカチカします。(だからデバッガでステップ実行させないと目ではチカチカと見えない)


void led_setup();

int main(void) {

// TODO: insert code here

// Force the counter to be placed into memory
volatile static int i = 0 ;
led_setup();
// Enter an infinite loop, just incrementing a counter
while(1) {
i++ ;
LPC_GPIO_PORT->SET0 |= (1<<0);
LPC_GPIO_PORT->CLR0 |= (1<<0);
}
return 0 ;
}
void led_setup(){
// LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6); // Reset Value is 1, so no need
LPC_GPIO_PORT->DIR0 |= (1<<0);
}

■ご参考URL
LPC810のLチカのため参考にさせてもらった記事(みっかぼログ様)
http://d.hatena.ne.jp/mikkabo/20150401/1427886535

NXPのLPC81Xポータルサイト
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC81X_LPC83X

LPC81x User Manual
https://www.nxp.com/docs/en/user-guide/UM10601.pdf

LPCXpresso IDE
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc1100-cortex-m0-plus-m0/lpcxpresso-ide-v8.2.2:LPCXPRESSO
(Windows版、Mac版、Linux版あります)

NXPセミコンダクターズジャパンが提供するWebサイト;SCTimer/PWM
http://www.nxp-lpc.com/lpc_peripheral/sct/index.php

SCTチュートリアルスライド(説明が段階的で分かりやすいように思える)
https://onedrive.live.com/view.aspx?resid=7AE40E5A5F1EC907!24470&ithint=file%2cpptx&app=PowerPoint&authkey=!ACDxmgRtdAZZdXE


IDEを有効化するには、IDEでシリアルを生成(create serial number)、LPCXpresso IDE Free Edition Activationsの画面でIDEのシリアルを入力、ActivateKeyを入手して、IDEにて入力する。