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)をoutputに設定 // UM10601 27.1 Packages より、PIO0_0は8番 // UM10601 7.6.3 GPIO port direction registers LPC_GPIO_PORT->DIR0 |= (1<<0); // 出力をon/offしてLEDを点滅させる while(1) { // PIO0_0の出力をtoggle // UM10601 7.6.9 GPIO port toggle registers LPC_GPIO_PORT->NOT0 |= (1<<0); // (補足) toggleではなくsetとclearなら以下 // LPC_GPIO_PORT->SET0 |= (1<<0); // LPC_GPIO_PORT->CLR0 |= (1<<0); // UM10601 7.6.7 GPIO port set registers // UM10601 7.6.8 GPIO port clear registers // 適当にループして間隔をあける for(volatile int i = 0; i < 200000; i++) {} } return 0 ; }
補足/雑感
- とにかく何か動かせて満足。
- 1.2Vの電池を3本使用。3.6vは許容範囲のはず。
- binが660byteもある。不当に大きすぎる気がするが、初心者故に相場がわからない。いずれ最適化とか調べよう。
- 10回点滅で6秒くらい。20万回の足し算のループが0.3秒というところか。