Author:家有仙妻谢掌柜
Date:2021/2/18
今年会更新一个系列,小四轴无人机从功能设计→思维导图→原理图设计→PCBLayout→焊接PCB→程序代码的编写→整机调试一系列,以此记录自己的成长历程!
这个小四轴无人机是大学时期学习制作的,加上现在工作学习对嵌入式的理解更加深入,因此想要重新梳理一下小四轴,之后在此基础上实现大四轴的飞控设计,这些都将在工作之余完成!
//小四轴无人机设计,定时器中断是必须的,用滴答定时器不占用定时器外设资源,它属于内核
#include "systick.h"
/*******************************************************************************
* fuction systick_init
* brief 滴答定时器一毫秒的初始化
* param 无
* return 无
*******************************************************************************/
void systick_init(void)
{
uint32_t ticks = 0; //24位 72000
ticks = SystemCoreClock/1000; /* 重载值设定72000 */
SysTick_Config(ticks); /* 开滴答定时器使能 */
}
/*******************************************************************************
* fuction SysTick_Handler
* brief 滴答定时器中断服务函数
* param 无
* return 无
*******************************************************************************/
void SysTick_Handler(void)
{
SysTick_uptime_millis++;
system_task();
}
/*******************************************************************************
* fuction delay_ms
* brief 可编程的毫秒延时器
* param 无
* return 无
*******************************************************************************/
void delay_ms(uint32_t ms)
{
if(ms==0)
return;
uint32_t start = SysTick_uptime_millis;
while((SysTick_uptime_millis-start)<ms); //延时时间值
}
#ifndef _SYSTICK_H__
#define _SYSTICK_H__
#include "board_define.h"
#include "var_global.h"
void delay_ms(uint32_t ms);
void systick_init(void);
#endif