Skip to content

Instantly share code, notes, and snippets.

@xiupos
Last active March 19, 2017 23:56
Show Gist options
  • Save xiupos/e71c24349ec19564cea577bbf64bb56a to your computer and use it in GitHub Desktop.
Save xiupos/e71c24349ec19564cea577bbf64bb56a to your computer and use it in GitHub Desktop.
LPC810についていろいろメモ(1)SysTick関連
// 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