create every day - 福野泰介の一日一創

IchigoJam「で」LPC810マイコン開発!(まずは実行編)

2017/12/11 23:55:00
#IchigoJam #maker #lpc810 

マシン語でLPC810のエルチカができたので、次のステップ、IchigoJamからの書き込みです。
IchigoJamだけで、LPC810の開発に成功しました!


エルチカのプログラムのメイン部分をBASICのPOKE文にasm15で変換して、メモリに書き込んでおきます。

10 POKE#700,11,72,223,33,1,96,11,72,1,104,3,34,210,67,17,64,1,96,9,72,9,73,1,96,9,72,12,33,1,96,9,72,4,33,9,74,1,112,19,70 20 POKE#728,1,59,253,209,250,231,0,0,128,128,4,64,16,0,4,64,192,193,0,64,191,255,255,255,0,32,0,160,0,35,0,160,128,132,30,0 30 A=#700:L=76

LPC810へはシリアル信号でつなぎます。RESETをOUT1、ISPをOUT2へ、TXD/RXDをクロスしてIchigoJamに接続。VCC/GNDもIchigoJamから取りましょう。

プログラムをメモリに書き込み、即実行するIchigoJam BASICプログラムがこちら

100 'LPC810 WRITER A:ADR L:LEN 110 UART3,2:OUT1,0:WAIT9:OUT1,1 120 CLS:?"?":GSB@R 130 ?"Synchronized":GSB@R 140 ?12000:?:GSB@R 150 ?"U 23130":GSB@R 160 ?"W 268435456 ";L:GSB@R:UART1,2:LC0,-1:FORI=0TOL-1:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6:? 170 ?"G 268435456 T":GSB@R:END 180 @R:K=INKEY():IF K=13 K=INKEY():RTN ELSE CONT

110行、LPC810を一度リセット
120行、?を送ることでシリアル信号のbpsを合わせてくれます
130行、bpsが合っていることを確認
140行、周波数12MHzを表します
150行、書き込みや実行権限をゲット
160行、アドレスAから、長さLを書き込み!
170行、書き込んだ場所を即実行!
※1 268435456は、16進数で#10000000、LPC810のRAMの先頭位置を表します。(linecalcで0x10000000)
※2 LPC1114と違って、バイナリで直接書き込めるのでプログラムが短く、速い!


マシン語を書き換えて、点滅速度を高速変えて書き込むデモ動画

マシン語を直接書くも良し、アセンブラやコンパイラを作るも良し。
安くてかわいいコンピューターを使いこなしちゃいましょう!
追記、デプロイ・完結編はこちら!


links
- マシン語で作る!75円のかわいいArmマイコン、LPC810用エルチカプログラム
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1
- LPCマイコン情報:LPC800 Cortex-M0+搭載-スイッチ・マトリックス
- LPC810 - marutsu
- LPC810 - 秋月電子通商
- IchigoJamでLPC810マイコン開発!(デプロイ・完結編)

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image