Timer 启用系统AHB时钟至计时器
我试图理解为LPC11U14 MCU和村田陀螺传感器编写的SPI通信代码。我自己也有过使用Arduino的经历,听说过指针和移位寄存器,现在学习C编程是为了好玩 我不清楚该行分配计时器:Timer 启用系统AHB时钟至计时器,timer,cpu-registers,Timer,Cpu Registers,我试图理解为LPC11U14 MCU和村田陀螺传感器编写的SPI通信代码。我自己也有过使用Arduino的经历,听说过指针和移位寄存器,现在学习C编程是为了好玩 我不清楚该行分配计时器: LPC_SYSCON->SYSAHBCLKCTRL |=(1 SYSAHBCLKCTRL |=(1 MR0=20870; LPC_CT16B0->MCR=(0x3 TCR=1;//启用计时器0 p.S.也许是“Arduino语言”中的一个例子也可能有帮助。LPC\u SYSCON是指向SYSCON的基址的
LPC_SYSCON->SYSAHBCLKCTRL |=(1 SYSAHBCLKCTRL |=(1 MR0=20870;
LPC_CT16B0->MCR=(0x3 TCR=1;//启用计时器0
p.S.也许是“Arduino语言”中的一个例子也可能有帮助。
LPC\u SYSCON
是指向SYSCON
的基址的指针,我认为它是MCU中的一个硬件块。从基址开始的数据结构在名为LPC\u SYSCON\u Type
的头文件中有很好的定义。LPC\u SYSCON->SYSAHBCLKCTRL
使用该基址和寄存器的偏移量SYSAHBCLKCTRL
来计算SYSAHBCLKCTRL
的物理地址,然后通过设置位7=(1
// Enable AHB clock to the 16-bit counter/timer 0 (CT16B0)
LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 7);
// MR0 (Match Register 0) will generate an interrupt at 2300 Hz (MCLK is 48 MHz)
LPC_CT16B0->MR0 = 20870;
LPC_CT16B0->MCR = (0x3 << 0); // Interrupt and Reset on MR0
NVIC_EnableIRQ(TIMER_16_0_IRQn); // Enable the TIMER0 Interrupt
LPC_CT16B0->TCR = 1; // Enable TIMER0