📄 lpld_breathing.c
字号:
/*
* 测试硬件平台: LPLD_K60 Card
* 版权所有: 北京拉普兰德电子技术有限公司
* 网络销售: http://laplenden.taobao.com
* 公司门户: http://www.lpld.cn
*
* 说明: 本工程基于Kintis K60开源底层开发包开发,
* 所有开源驱动代码均在"LPLD"文件夹下,调用说明见文档[#LPLD-003-N]
*
* File: LPLD_Breathing.c
* Purpose: 呼吸灯效果演示,PIT定时中断和GPIO模块综合例程
*
* LPLD_K60 Card 硬件配置说明:
* LED: D1~D8分别连接到PortD8~15
*
*
*/
#include "common.h"
#include "HAL_GPIO.h"
#include "HAL_PIT.h"
extern int periph_clk_khz;
uint16_t cnt=0;
uint16_t pit0cnt=0;
uint16_t pit0cnt2=0;
uint16_t led_ld[8]={0};
uint16_t led_lds[27]={0,0,5,10,20,30,50,80,130,200,130,80,50,30,20,10,5,0,0,5,10,20,30,50,80,130,200};
//函数声明
void init_gpio(void);
void pit_isr0();
void pit_isr1();
/********************************************************************/
void main (void)
{
init_gpio();
LPLD_PIT_Init(0, 100000, pit_isr0);
LPLD_PIT_Init(1, 100, pit_isr1);
while(1)
{
}
}
/*
* 初始化LPLD_K60 Card上的GPIO
*
* PTD8~PTD15 - D1~D8
*
*/
void init_gpio()
{
// 配置 PTD8~PTD15 为GPIO功能,方向为输出
LPLD_GPIO_Init(PORTD_BASE_PTR, 8, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 9, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 10, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 11, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 12, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 13, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 14, 1, 1, 0);
LPLD_GPIO_Init(PORTD_BASE_PTR, 15, 1, 1, 0);
}
/*
* PIT0中断服务子程序
*
* 该程序每100毫秒触发一次,不用清标志位,因为已经在底层处理了。
*
*/
void pit_isr0()
{
uint8_t i;
int16_t lds;
if(pit0cnt==10)
{
if(pit0cnt2<1)
{
pit0cnt2++;
return;
}else{
pit0cnt2=0;
}
}
else if(pit0cnt>17 && pit0cnt<25)
{
pit0cnt++;
return;
}else if(pit0cnt==25)
{
pit0cnt=0;
}
for(i=0;i<8;i++)
{
lds = led_lds[pit0cnt]-25*i;
if(lds<0)
lds=0;
led_ld[i] = lds;
}
pit0cnt++;
}
/*
* PIT1中断服务子程序
*
* 该程序每1毫秒触发一次,不用清标志位,因为已经在底层处理了。
*
*/
void pit_isr1()
{
uint8_t i;
for(i=0;i<8;i++)
{
if(cnt>=led_ld[i])
LPLD_GPIO_Set_b(PTD_BASE_PTR, i+8, 1);
else
LPLD_GPIO_Set_b(PTD_BASE_PTR, i+8, 0);
cnt++;
}
if(cnt==200)
cnt=0;
}
/********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -