【MSPM0L1306 LaunchPad】systick定时器中断测试
[复制链接]
本帖最后由 TL-LED 于 2023-10-12 18:02 编辑
这篇测试下systick滴答定时器中断测试。
一、硬件部分
使用LED1输出,指示systick中断
电路图部分
二、程序
SDK->dl_systick.h头文件中已经定义有关systick的函数。
在此函数的基础上,设置1ms定时中断,反转LED1输出。
2.1、systick.c
#include "ti_msp_dl_config.h"
#include "systick/systick.h"
#include "led/led.h"
void init_systick(void)
{
DL_SYSTICK_config(CPUCLK_FREQ/1000);
}
void SysTick_Handler(void)
{
led1_r_tog();
}
2.2、led.h
#ifndef _LED_H
#define _LED_H
#include <ti/driverlib/driverlib.h>
/* Port definition for Pin Group GPIO_LEDS */
#define GPIO_LEDS_PORT (GPIOA)
#define GPIO_LEDS_USER_LED1_R_PIN (DL_GPIO_PIN_0)
#define GPIO_LEDS_USER_LED1_R_IOMUX (IOMUX_PINCM1)
/* Defines for USER_LED_1: GPIOA.27 with pinCMx 28 on package pin 31 */
#define GPIO_LEDS_USER_LED2_B_PIN (DL_GPIO_PIN_27)
#define GPIO_LEDS_USER_LED2_B_IOMUX (IOMUX_PINCM28)
/* Defines for USER_LED_2: GPIOA.26 with pinCMx 27 on package pin 30 */
#define GPIO_LEDS_USER_LED2_R_PIN (DL_GPIO_PIN_26)
#define GPIO_LEDS_USER_LED2_R_IOMUX (IOMUX_PINCM27)
/* Defines for USER_LED_3: GPIOA.13 with pinCMx 14 on package pin 17 */
#define GPIO_LEDS_USER_LED2_G_PIN (DL_GPIO_PIN_13)
#define GPIO_LEDS_USER_LED2_G_IOMUX (IOMUX_PINCM14)
#define led1_r_tog() (DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED1_R_PIN))
#define led1_r_on() (DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED1_R_PIN))
#define led1_r_off() (DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED1_R_PIN))
#define led2_r_tog() (DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_R_PIN))
#define led2_r_on() (DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_R_PIN))
#define led2_r_off() (DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_R_PIN))
#define led2_g_tog() (DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_G_PIN))
#define led2_g_on() (DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_G_PIN))
#define led2_g_off() (DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_G_PIN))
#define led2_b_tog() (DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_B_PIN))
#define led2_b_on() (DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_B_PIN))
#define led2_b_off() (DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED2_B_PIN))
void init_led(void);
#endif
2.3、main.c
#include "ti_msp_dl_config.h"
#include "led/led.h"
#include "systick/systick.h"
int main(void)
{
SYSCFG_DL_init();
init_systick();
init_led();
while (1)
{
led2_r_on();
delay_cycles(32000*100);
led2_r_off();
delay_cycles(32000*100);
}
}
三、运行
3.1、下载程序后,运行结果
102
3.2、使用示波器测试PA0引脚波形
结果和程序设置的一致,1ms中断输出。
|