電子工作

LPC810メモ:I2C送受信クラス(マスターのみ)とモータードライバ

かなり以前実験したI2CのROM APIを使った送受信(マスターのみ)をクラス化。 サンプルでは、I2Cのモータードライバによりモーターを順方向、逆方向に回す。

LPC810メモ:赤外線リモコン受信クラス

テレビやエアコンなどを操作する赤外線リモコンの信号を読み取るクラスを作成。 NECフォーマットと家製協フォーマット(AEHA)に対応したつもり。SONYフォーマットは非対応。

LPC810メモ:モールス信号出力クラス

圧電スピーカでモールス信号を出力できたら便利だと思い作ってみた。 例えばprintfデバッグ的な出力をしたり(デバッガの使い方とかは知らないので)。

LPC810メモ:疑似正弦波で音楽を鳴らす(μ's/Snow halation)

前回の続き、電子オルゴールの長めのサンプル。前回は動きがなくて動画の意味が全く無かったので、音に連動して光るLEDを置いてみた。動画だと音と画面がずれてるのが残念。生で見るとけっこういい感じだし、音も澄んでるのだが。 曲はμ'sのSnow halation。…

LPC810メモ:疑似正弦波で音楽を鳴らす(おじいさんの古時計)

前々回http://d.hatena.ne.jp/mikkabo/20160527/1464358308:title=前回]で実現した正弦波による音階の出力を使って、音楽を鳴らしてみる。短いけど「おじいさんの古時計」を入力してYouTubeにアップしてみた。音だけで絵は動かないのであまり動画の意味ない…

LPC810メモ:疑似正弦波で和音を鳴らす

前回の続き、正弦波を重ねて和音を出してみる。前提とする環境はこちら→LPC810メモ 共通の準備 SCTなど基本的なサンプルについてはこちら→LPC810みっかぼ自作サンプル集ドミソ→ド#,ファ,ソ#→レ,ファ#,ラ→...という感じに半音ずつあがっていく。 他に前回と違…

LPC810メモ:疑似正弦波を鳴らす

自由研究とかでありそうな「電子オルゴール」を作ってみたい。スイッチを押すと適当に音楽が鳴るおもちゃ。 その第一段階として、SCTによるPWMを用いた「擬似正弦波」の出力を試してみる。前提とする環境はこちら→LPC810メモ 共通の準備 SCTなど基本的なサン…

LPC810メモ:C++11を使ってみる例

LPCXpressoでも設定すれば普通にC++11の文法が使えることに気付いたので実験。 というか、これまでできないと思っていて損していた模様。 [Project][Property][C/C++Build][Settings]で[Tool Settings]タブ選択。 [MCU C++ Compiler][Dialect]で、ISO C++1y(…

LPC810みっかぼ自作サンプル集(GPIO、SCTからI2C、SPI通信まで)

3ヶ月間コツコツ作ってきたLPC810用のサンプルコードをまとめます。LPC810の機能を試したいけれど、LPC Expressoなどに付いてるサンプルは処理が隠蔽されててよくわからない、という人の役には立つと思っています。 特長 基本、ブログ本文に貼ってあるソース…

LPC810メモ:pattern match engine

pattern match engineを試す。pattern match engineは、前に試したpin interruptsを高度化したような機能であり、単独のpinでなく複数pinの状態の組み合わせで割り込みを発生させる。前提とする環境はこちら→LPC810メモ 共通の準備 pattern match engineは概…

LPC810メモ:SPI interface(SDカードを読み書き)

SDカードに書き込みを行うサンプルですが、ファイルシステムは無視して書き込むので、使ったカードは再フォーマットしないとPCからアクセスできなくなると思われます。もし試そうとしてくれる方がいましたら、必ず不要なSDカードを使ってください。SPI通信の…

LPC810メモ:SysTick Timer

SysTick Timerを試す。前提とする環境はこちら→LPC810メモ 共通の準備 SysTick Timer 指定した周期で割り込みを発生させるタイマ。 counterは24bit。1clockで1countか、2clockで1countか選択できる。 LPCの機能というよりは、Cortex-M0+.の機能らしい。 この…

LPC810メモ:Flash IAP

UM10601「Chapter 22: LPC81x Flash ISP and IAP programming」の、IAPを使う例。前提とする環境はこちら→LPC810メモ 共通の準備 Flash IAP 本来はプログラムを格納するためのflash romの領域を操作する機能(In-Application programming) 電源をoffにしても…

LPC810メモ:deep power-downモード(Self wake-up timerで復帰)

前回と同様、deep power-downモードの実験。 ただし、WAKEUP pinではなく、Self wake-up timer(WKT)で定期的にwake upする例。前提とする環境はこちら→LPC810メモ 共通の準備 電源onすると、LED一回点滅してdeep power-down 3秒経過するとwake up、LEDを2回…

LPC810メモ:deep power-downモード(wake up pinで復帰)

reduced power modes(省電力モード?)のうち、最も簡単そうで、かつ最も低消費電力らしい、「deep power-downモード」の実験。前提とする環境はこちら→LPC810メモ 共通の準備 消費電力順にならべると以下のとおりらしい。数値は電流、データシートLPC81xMの…

LPC810メモ:I2C-bus ROM API、同じLPC810でI2C slaveとmasterの両機能を使う

master送信、slave受信の例や、master受信、slave送信の例と同様、LPC810を2個使って、それぞれmaster/slaveとして機能させる例。前回までは役割固定で、I2C slaveとなったLPC810はslaveとしてのみ機能(masterも同様)としていたが、今回はmasterとslaveが動…

LPC810メモ:Pin interrupts

GPIOの入力の変化で割り込みを発生させるpin interruptsの例。 ボタンを押すと、LEDの点灯/消灯が切り替わるだけ。前提とする環境はこちら→LPC810メモ 共通の準備 サンプルコード #include "LPC8xx.h" int main(void) { // UM10601 8.3 Basic configuration …

ボクのLPC810工作ノート

この例でコメントをもらったのをきっかけに検索して見つけた。LPC810だけの本が出てるとは。いまのとこ初心者に厳しいユーザマニュアル(UM10601)等でがんばってるが、心が折れたら買ってしまうと思われるのでメモ。 みっかぼの無料Androidアプリはこちら。

LPC810メモ:I2C-bus ROM API、slave送信->master受信

前回同様、I2C-bus ROM APIを利用して、I2Cのslaveとして動作させる例。ただし今回は、master側がslave側からdataを受信する。LPC810を2個使って、それぞれmaster/slaveとして機能させる点は同じ。前提とする環境はこちら→LPC810メモ 共通の準備前回コメント…

LPC810メモ:I2C-bus ROM API、I2C slaveとして動作させる(LPC810 2個使ってmaster-slave通信)

I2C-bus ROM APIを利用して、I2Cのslaveとして動作させる例。LPC810を2個使って、それぞれmaster/slaveとして機能させ、masterからslaveに文字列を送信する。LPC810が2個必要だが、他の種類のマイコンを持ってない人でも試せるので、自分のように「LPC810か…

LPC810メモ:アナログコンパレータ(電圧ラダーの例)

アナログコンパレータで、電圧ラダーを使う例。前提とする環境はこちら→LPC810メモ 共通の準備 電圧ラダーを用いると、外部からの入力電圧2本を比較するのではなく、入力電圧1本と、内部で設定する電圧と比較することができる。 GNDからVddの間で、5bit(32段…

LPC810メモ:アナログコンパレータ(比較結果をそのまま出力)

単純にアナログコンパレータを試してみた例。前提とする環境はこちら→LPC810メモ 共通の準備 8番と5番の電圧を比較して、8番の方が高ければ4番がHIGHになる(4番につないだLEDが光る) サンプルコード #include "LPC8xx.h" int main( void ) { // SWMのclockを…

LPC810メモ:SCTの例その3(超音波距離センサ)

SCTの、event発生時点のタイマの値を記録するcapture機能を試してみたくて考えてみた例。前提とする環境はこちら→LPC810メモ 共通の準備 SCT全般のメモはこちら→LPC810メモ:SCTimer/PWM (SCT)について amazonで500円くらいで買ったこのHC-SR04というセンサを…

LPC810メモ:SCTの例その2(音を鳴らすなど)

SCTの機能をいろいろ試した例。前提とする環境はこちら→LPC810メモ 共通の準備 SCT全般のメモはこちら→LPC810メモ:SCTimer/PWM (SCT)について試してみたかった機能は以下。 16bitのタイマ2本(L/H)に分けて使う bidirectinalモード(上限に達したらカウントダ…

LPC810メモ:SCTの小さい例(Lチカ2本)

SCTをとにかく使ってみる例。前提とする環境はこちら→LPC810メモ 共通の準備 SCT全般のメモはこちら→LPC810メモ:SCTimer/PWM (SCT)について サンプルコード #include "LPC8xx.h" int main(void) { // SWMのclockを有効化 LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7…

LPC810メモ:SCTimer/PWM (SCT)について

SCTimer/PWM (SCT)という高機能タイマはLPC810の特徴的な機能らしい。ベテランな方々のブログを見ると、高機能すぎて使いにくいという評価の模様。こういうのを使えたらかっこいい気がするので、ちょっとがんばってみたい。 まずはユーザマニュアル(UM10601)…

LPC810メモ:I2C-bus ROM API(テキストLCDを使う)

I2C-bus ROM API利用して(マスタによる送信のみだけど)、テキストLCDを使ってみる。前提とする環境はこちら→LPC810メモ 共通の準備利用したテキストLCDはAQM0802 秋月で600円 http://akizukidenshi.com/catalog/g/gK-06795/ でもはんだ付け苦戦したので、完…

LPC810メモ:MRT(Lチカ)

Multi-Rate Timer (MRT)を試す。指定した時間経過で割り込みを発生させる機能らしい。前提とする環境はこちら→LPC810メモ 共通の準備 サンプルコード #include "LPC8xx.h" // msミリ秒待つ、という関数をMRTを使って定義してみる volatile bool waiting = fa…

LPC810メモ:GPIO出力(Lチカ)

前提とする環境はこちら→LPC810メモ 共通の準備 サンプルコード #include "LPC8xx.h" int main(void) { // GPIOに対してclockを有効化 // UM10601 4.6.13 System clock control register LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6); // PIO0_0(すなわち8番のpin)…

LPC810メモ:共通の準備

初心者脱却を目指すべく、サンプルコードを書きながらLPC810の機能を勉強する。自分が見てきた限り、ライブラリで隠蔽されたコードは理解が困難だったので、なるべくハードの機能を直接叩くコードを書きながら、この手のものに詳しくなっていきたい。以下、…