Skip to content

Instantly share code, notes, and snippets.

@xiupos
Last active March 20, 2017 11:06
Show Gist options
  • Save xiupos/52ae30c2592912b6ce289057efab376a to your computer and use it in GitHub Desktop.
Save xiupos/52ae30c2592912b6ce289057efab376a to your computer and use it in GitHub Desktop.
LPC812についていろいろメモ(1)
// LPC812についていろいろメモ(1)
// ha2zakura
// 参考:
// http://www.nxp.com/documents/user_manual/UM10601.pdf
// http://d.hatena.ne.jp/mikkabo/20150424/1429907816
// 大体LPC810と同じ。
// _____ _____
// PIO0_17 [ 1|| U |20] PIO0_14
// PIO0_13 [ 2|| |19] PIO0_0
// PIO0_12 [ 3|| |18] PIO0_6
// PIO0_5 [ 4|| |17] PIO0_7
// PIO0_4 [ 5|| |16] GND
// PIO0_3 [ 6|| |15] 3.3V
// PIO0_2 [ 7|| |14] PIO0_8
// PIO0_11 [ 8|| |13] PIO0_9
// PIO0_10 [ 9|| |12] PIO0_1
// PIO0_16 [10||__________|11] PIO0_15
#include "LPC8xx.h"
// CMSISライブラリをinclude
int main(void) {
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7);
// clock有効化の設定...?
// UM10601 4.6.13 Table 30.
// 0:無効化 1:有効化
// 0 => SYS
// 1 => ROM
// 2 => RAM
// 3 => FLASHREG
// 4 => FLASH
// 5 => I2C
// 6 => GPIO
//>7 => SWM
// 8 => SCT
// 9 => WKT
// 10 => MRT
// 11 => SPI0
// 12 => SPI1
// 13 => CRC
// 14 => UART0
// 15 => UART1
// 16 => UART2
// 17 => WWDT
// 18 => IOCON
// 19 => ACMP
LPC_SWM->PINENABLE0 = 0xffffffbfUL;
// 有効化するピンの設定...?
// UM10601 9.5.10 Table 118.
// 0:有効化 1:無効化
// 0 => (PIO0_0) ACMP_I1
// 1 => (PIO0_1) ACMP_I2
// 2 => (PIO0_3) SWCLK
// 3 => (PIO0_2) SWDIO
// 4 => (PIO0_8) XTALIN
// 5 => (PIO0_9) XTALOUT
//>6 => (PIO0_5) RESET
// 7 => (PIO0_1) CLKIN
// 8 => (PIO0_6) VDDCMP
LPC_GPIO_PORT->DIR0 |= (1<<2);
// GPIOの設定
// UM10601 7.6.3 Table 84.
// 0:入力(デフォルト) 1:出力
// 0 => PIO0_0
// 1 => PIO0_1
//>2 => PIO0_2
// ...
// 17 => PIO0_17
SysTick->LOAD = 6000000;
// タイマの周期を設定
// UM10601 14.6.2
//>1秒(12MHz/2)に設定
// 注:デフォルトでは2clockで1count
SysTick->VAL = 0;
// タイマの初期値の設定...?
// UM10601 14.6.3
//>初期値を0に設定
SysTick->CTRL = (1 << 0) | (1 << 1);
// タイマ有効化の設定...?
// UM10601 14.6.1 Table 167.
// デフォルトは0
//>0 => ENABLE 1:タイマを有効化
//>1 => TICKINT 1:割り込みを有効化(カウントが0の時に割り込み発生)
// 2 => CLKSOURCE (クロックソースの選択) 0:CPUクロック/2 1:CPUクロック/2
// 16 => COUNTFLAG (最後の読み取り以降、タイマが0にカウントされた場合は1を返す...?)
return 0 ;
}
void SysTick_Handler(void)
// SysTick割り込み
// カウントが0の時に発生
{
LPC_GPIO_PORT->NOT0 |= (1<<2);
// GPIO出力を反転
// UM10601 7.6.9 Table 90.
// 1:反転
// 0 => PIO0_0
// 1 => PIO0_1
//>2 => PIO0_2
// ...
// 17 => PIO0_17
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment