DDA直线插补算法在单片机上的实现基于C

/*-------------------------------*/

/*时间2011年11月*/

/*功能:DDA 插补算法在单片机上实现*/

/*作者JC*/

/*-------------------------------*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define Xe 8 //定义初始点坐标

#define Ye 10

uchar code tab[]={0x03,0x09,0x0c,0x06}; //电机正传控制字

/*------------------------------*/

//定义a^b函数

/*------------------------------*/

uint pow(char a,char b)

{

uchar t=1;

while(b--)

t*=a;

return t;

}

/*------------------------------*/

//定义求绝对值函数

/*--------------------------------*/

char abs(char a )

{

returna>0?a:(-a);

}

/*------------------------------*/

//定义求最大值函数

/*--------------;

char max(char a,char b)

{

return abs(a)>abs(b)? abs(a):abs(b);

}*/

/*--------------------------*/

//定义延时函数,延时tms

/*------------------------------*/

void delay(uint t)

{

uchar i;

for(;t>0;t--)

for(i=114;i>0;i--);

}

/*------------------------------*/

/*求寄存器位数n*/

/*------------------------------*/

int res_n()

{

int m,n;

for(m=1;m<256;m++)

{

if(abs(Xe)>abs(Ye))

{

if(pow(2,m-1)<=abs(Xe)&&abs(Xe)<=pow(2,m))

{

n = m;

}

}

else

{

if(pow(2,m-1)<=abs(Ye)&&abs(Ye)<=pow(2,m))

{

n = m;

}

}

}

return n;

}

/*------------------------------*/

/*DDA直线插补算法声明*/

/*------------------------------*/

void DDALine()

{

char i,j,t;

int n;

int X=0,Y=0,FX=0,FY=0;

n=res_n();

for(i=0;i

{

if(abs(X)

{

FY=FY+abs(Ye);

FX=FX+abs(Xe);

if(FX>=pow(2,n))

{

FX=FX-pow(2,n);

X=X+1;

for(t=0;t<12;t++)

DDA插补算法C语言,DDA直线插补算法在单片机上的实现基于C.doc相关推荐

  1. matlab程序 直线插补,无聊写matlab仿真直线插补算法

    本帖最后由 CK345 于 2016-6-24 17:16 编辑 X0 = input('请输入起点横坐标 X\n X0 = '); Y0 = input('请输入起点纵坐标 Y\n Y0 = '); ...

  2. rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

    原文托管在Github: https://github.com/shellhub/blog/issues/52 数据结构与算法之线性表-顺序表实现(C语言版本) 前言 数据结构与算法是一个程序员必备的 ...

  3. c语言代码先来先服务算法_C语言十大经典排序算法(动态演示+代码,值得收藏)...

    以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要. 时间.空间复杂度比较 排序算法 平均时间复杂度 最差时间复杂度 空间复杂度 数据对象 ...

  4. java合一算法_Prolog语言的编译原理:合一算法

    Prolog语言的编译原理:合一算法 分类:软考 | 更新时间:2016-07-08| 来源:转载 Prolog是一种基于谓词演算的程序设计语言.Prolog是一种说明性语言,它的基本意思是程序员着重 ...

  5. c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区

    决策树之C4.5算法详解 主要内容 C4.5算法简介 分裂属性的选择--信息增益率 连续型属性的离散化处理 剪枝--PEP(Pessimistic Error Pruning)剪枝法 缺失属性值的处理 ...

  6. 最坏适应算法c语言源码,首次适应算法,最佳适应算法,最坏适应算法源代码

    这是一个非常完美的程序,输出显示的格式也很棒,里面包含首次适应算法,最佳适应算法,最坏适应算法 #include #include #define Free 0 //空闲状态 #define Busy ...

  7. 自适应对消算法c语言,LMS自适应对消算法

    LMS算法最小均方误差算法,是一种自适应滤波算法.该算法通过对输入信号进行滤波输出一个信号y(n),将输出信号与期望输出信号作差得到一个误差信号,再将误差信号输入到自适应滤波器中形成一个反馈回路.LM ...

  8. r语言插补法_R语言用多重插补法估算相对风险

    在这里,我将用R中的一个小模拟示例进行说明.首先,我们使用X1和X2双变量法线和Y模拟大型数据集,其中Y遵循给定X1和X2的逻辑模型. 首先,我们模拟一个非常大的完整数据集: #simulate完整数 ...

  9. 虚拟存储页面置换算法c语言,虚拟存储器管理页面置换算法模拟实验.doc

    虚拟存储器管理页面置换算法模拟实验 淮海工学院计算机工程学院 实验报告书 课程名:< 操作系统原理A > 题 目: 虚拟存储器管理 页面置换算法模拟实验 班 级: 软件*** 学 号: 2 ...

最新文章

  1. Enterprise Architect 中文经典教程
  2. java logfaction_Java调试的变迁:从System.out.println到log4j
  3. JavaScript中getBoundingClientRect()方法详解
  4. BZOJ2212——线段树合并
  5. ubuntu16.04右键没有终端的问题
  6. c语言水平制表符怎么才能占16列,水平制表符是?其作用?
  7. 动态阈值_如何设置数据看板(大屏)数据异常报警的动态阈值
  8. 威刚 S102 量产成功 制作带cd-rom启动型U盘 16g USB3.0
  9. SpringBoot 2.0 系列003 -- 自定义Parent
  10. 于明:移动支付将代替电子支付?
  11. Numpy系列(六)常用的数组合并操作
  12. 计算机打印指定测试页到文件夹中,上海计算机等级一级考试复习指导.pptx
  13. 一位计算机牛人的心得,谈计算机和数学
  14. ps修改社保照片 不大于20KB
  15. python 爬取财经新闻_python爬取路透社财经新闻
  16. 什么是TF-IDF?
  17. 邮箱登录名身份证号码等验证
  18. 微信 小程序 APP 渗透测试方案
  19. (入门、全面、通用)树莓派Raspbian系统安装配置,篇一
  20. 更换NVMe SSD不用重装系统,Windows系统迁移

热门文章

  1. RISC-V 不定长的指令周期
  2. 云端图片处理工具Cloudinary强势出世 Photoshop鸭梨山大
  3. 3. 多层select的使用:子查询的定义、无关子查询、相关子查询
  4. 浅析不良资产商业性债转股法律相关问题
  5. 如何使用USB接口对C51单片机下载固件
  6. Text-Mining-DataCamp-Text Mining: Bag of Words
  7. Android开发学习(4)简单登录界面
  8. 浪潮 ClusterEngineV4.0 任意命令执行
  9. ajax数据库图片路径php显示,数据库+ajax方法如何实现地图界面
  10. 一款小程序增强开发工具 - EWA