Last active
March 20, 2017 11:06
-
-
Save xiupos/52ae30c2592912b6ce289057efab376a to your computer and use it in GitHub Desktop.
LPC812についていろいろメモ(1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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