Last active
March 19, 2017 23:56
-
-
Save xiupos/e71c24349ec19564cea577bbf64bb56a to your computer and use it in GitHub Desktop.
LPC810についていろいろメモ(1)SysTick関連
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
// LPC810についていろいろメモ(1)SysTick関連 | |
// ha2zakura | |
// Lチカです | |
// http://ktrikms.blog.jp/archives/69449374.html | |
// 参考: | |
// http://www.nxp.com/documents/user_manual/UM10601.pdf | |
// http://d.hatena.ne.jp/mikkabo/20150424/1429907816 | |
// ___ ___ | |
// PIO0_5 [1|O U |8] PIO0_0 | |
// PIO0_4 [2| |7] GND | |
// PIO0_3 [3| |6] 3.3V | |
// PIO0_2 [4|_______|5] PIO0_1 | |
#include "LPC8xx.h" | |
// CMSISライブラリをinclude | |
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 | |
// 注:LPC810は5(PIO0_5)まで | |
} | |
int main(void) { | |
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7); | |
// clock有効化の設定...? | |
// UM10601 4.6.13 Table 30. | |
// 0:無効化 1:有効化 「x)」x=デフォルト | |
// 0 => 1)SYS | |
// 1 => 1)ROM | |
// 2 => 1)RAM | |
// 3 => 1)FLASHREG | |
// 4 => 1)FLASH | |
// 5 => 0)I2C | |
// 6 => 1)GPIO | |
//>7 => 1)SWM | |
// 8 => 0)SCT | |
// 9 => 0)WKT | |
// 10 => ?)MRT | |
// 11 => 0)SPI0 | |
// 12 => ?)SPI1 | |
// 13 => 0)CRC | |
// 14 => 0)UART0 | |
// 15 => 0)UART1 | |
// 16 => 0)UART2 | |
// 17 => 0)WWDT | |
// 18 => 0)IOCON | |
// 19 => 0)ACMP | |
LPC_SWM->PINENABLE0 = 0xffffffbfUL; | |
// 有効化するピンの設定...? | |
// UM10601 9.5.10 Table 118. | |
// 0:有効化 1:無効化 「x)」x=デフォルト | |
// 0 => (PIO0_0) 1)ACMP_I1 | |
// 1 => (PIO0_1) 1)ACMP_I2 | |
// 2 => (PIO0_3) 0)SWCLK | |
// 3 => (PIO0_2) 0)SWDIO | |
// 4 => (PIO0_8) 1)XTALIN | |
// 5 => (PIO0_9) 1)XTALOUT | |
//>6 => (PIO0_5) 0)RESET | |
// 7 => (PIO0_1) 1)CLKIN | |
// 8 => (PIO0_6) 1)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 | |
// 注:LPC810は5(PIO0_5)まで | |
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 ; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment