]>
git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/tests/KL25Z/pit/main.cpp
4 volatile uint32_t msTicks
;
6 void SysTick_Handler(void) {
10 void Delay(uint32_t dlyTicks
) {
14 while ((msTicks
- curTicks
) < dlyTicks
);
19 SysTick_Config(SystemCoreClock
/ 1000);
21 SIM
->SCGC6
|= SIM_SCGC6_PIT_MASK
; // Clock PIT
22 PIT
->MCR
= 0; // Enable PIT
25 PIT
->CHANNEL
[1].LDVAL
= 0xFFFFFFFF;
26 PIT
->CHANNEL
[1].TCTRL
= 0x0; // Disable Interrupts
27 PIT
->CHANNEL
[1].TCTRL
|= PIT_TCTRL_CHN_MASK
; // Chain to timer 0
28 PIT
->CHANNEL
[1].TCTRL
|= PIT_TCTRL_TEN_MASK
; // Start timer 1
31 PIT
->CHANNEL
[0].LDVAL
= 0xFFFFFFFF;
32 PIT
->CHANNEL
[0].TCTRL
= PIT_TCTRL_TEN_MASK
; // Start timer 0, disable interrupts
34 DigitalOut
led(LED_BLUE
);
39 uint64_t ticks
= (uint64_t)PIT
->LTMR64H
<< 32;
40 ticks
|= (uint64_t)PIT
->LTMR64L
;
41 printf("ticks: 0x%x%x\n", (uint32_t)(ticks
>>32), (uint32_t)(ticks
& 0xFFFFFFFF));
43 ticks
= (~ticks
) / 24;
44 uint32_t us
= (uint32_t)(0xFFFFFFFF & ticks
);
46 printf("us : 0x%x\n", us
);