C语言
文章平均质量分 78
方丈的寺院
公众号@方丈的寺院
展开
-
如何利用c中的指针实现两个8bit的数合并为16bit
对于从事单片机开发,进行单片机c语言开发的人来说,在对外部信息采集回来的数据进行处理,经常会用到,将采集到的第一个字节作为高8位,采集到的第二个字节作为低8位,从而构成1个16bit的数,得到一次完整的数据。那么如何来实现呢。方法1:比较普遍的做法是通过移位思想,eg:void get_data(u16 *p);void main(){u16 data;get_原创 2013-08-06 14:57:50 · 3867 阅读 · 1 评论 -
浅谈C工程中的.c与.h文件
基于C语言的单片机、arm相关的工程开发时,C语言的模块化特点体现的非常明显。试想一下:你的一个工程中需要用到AD采样模块、液晶显示模块、串口发送模块、DA控制模块等。你肯定不会选择在一个.c文件中进行,必须是分模块的,这样才有利于团队开发,提高效率。那么模块化设计遵循着怎样的原则呢,应该怎么写.c,.h文件呢。1. .c和.h文件的区别通常意义上的说法,.c是源文件,.h是头文件。通原创 2013-06-01 17:26:11 · 3164 阅读 · 1 评论 -
基于Bresenham和DDA算法画线段
直线:y=kx+b 为了将他在显示屏上显示出来,我们需要为相应的点赋值,那么考虑到计算机的乘法执行效率,我们肯定不会选择用Y=kx+b这个表达式求值,然后进行画线段。我们应当是将它转化为加法运算。下面提供两种常见的算法:方法1:DDA算法DDA算法的思想是1.判断直线是近x轴线段,还是近y轴线段2.求出delt_x,delt_y ,以较大值为总步长,每次以此为标准,步进,然原创 2013-08-15 17:13:13 · 2261 阅读 · 0 评论 -
基于Bresenham算法画圆
bresenham算法画圆思想与上篇 bresenham算法画线段 思想是一致的画圆x^2+y^2=R^2 将他分为8个部分,如上图 1.只要画出1中1/8圆的圆周,剩下的就可以通过对称关系画出这个圆X变化从0->R那为什么不采用从-R->R呢,Y=+-sqrt(R^2-x^2);dy/dx=-x/(sqrt(R^2-x^2)) =-x原创 2013-08-15 17:32:56 · 4041 阅读 · 0 评论