算法
肖恩•布莱恩特
这个作者很懒,什么都没留下…
展开
-
根据经纬度计算地球表面两点间的距离
#define PI 3.1415926#define EARTH_RADIUS 6371004#if 0double rad(double d){ return d * PI / 180.0;}#else#define rad(d) ((d)*PI/180.0)#endifdouble getDistanceVer1(double lat1, double lng1, double lat原创 2014-01-09 23:55:01 · 4998 阅读 · 0 评论 -
软件定时器-闹钟提醒我们该吃饭吃饭,该睡觉睡觉
闹钟提醒我们该吃饭吃饭,该睡觉睡觉softwaretimer.h#ifndef _SOFTWARETIMER_H_#define _SOFTWARETIMER_H_typedef enum{z_false = 0, z_true = !z_false} z_bool;typedef unsigned char原创 2014-06-06 10:51:03 · 2141 阅读 · 0 评论 -
时间,给了我们起点,从此,我们开始创造历史
时间,给了我们起点,从此,我们开始创造历史世纪秒:2000年1月1日0时0分0秒到现在的秒数datetime.h文件:#ifnded _DATETIME_H_#define _DATETIME_H_typedef unsigned char z_u8;typedef signed char z_原创 2014-05-29 19:36:47 · 1336 阅读 · 0 评论 -
一个简单而强大的单片机内存管理器-不带内存碎片整理
单片机简单内存管理器本代码基于无操作系统的STM32单片机开发,功能强大,可申请到地址空间连续的不同大小的内存空间,且用户接口简单,使用方便memory.h#ifndef __MEMORY_H__#define __MEMORY_H__#include "stdio.h"#include "string.h"#include "includes.h"//用户使用t原创 2015-07-10 19:13:41 · 6752 阅读 · 5 评论 -
又一个简单而强大的单片机内存管理器-不带内存碎片整理
与之前的单片机内存管理实现思路不同前者为将内存区域划分为固定大小的块,通过每个块的状态来分配内存,获取到的是连续的内存块,则相应的,内存也是连续的。此次新的内存管理是将整个待分配的内存块看作一个空闲内存描述结构加内存区域,申请一块内存是将空闲且大小合适的内存一分为二或整块获取来实现,释放内存是将当前内存与前后空闲内存合并完成的,有双向链表的意思。memory.h原创 2015-08-25 21:45:50 · 2468 阅读 · 0 评论 -
单线程轮训裸机OS程序
近日在学习STM32单片机操作系统之余,写了如下单线程轮训裸机OS程序,分享出来与大家共同进步,如有错误或不足之处,敬请谅解,尊听指导。此单线程轮训裸机OS具有一下特点:1.以系统滴答时钟为驱动持续工作;2.任务具有关闭、睡眠、执行、延时、等待共五种状态;3.任务ID及任务数需在系统运行前就确定;4.任务执行过程中可根据需要随时对任务进行关闭,打开,睡眠及唤醒操作;原创 2016-01-22 22:04:04 · 850 阅读 · 0 评论