一个智能硬件初创团队的经验分享
作为一个“创龄”不到半年的菜鸟,虽然经验还不是很丰富,但还是想做一个阶段性的总结,同时也希望能给早期创业团队一些帮助和借鉴。有不当的地方欢迎业界的朋友帮我指出,一起探讨、交流心得。一、该做什么样的硬...
精简的key扫描程序
unsigned char Trg;unsigned char Cont;void KeyRead( void ){ unsigned char ReadData = PINB^0xff; // 1 Trg = ReadData & (ReadData ^ Cont); // 2 Cont = ReadData; // 3}固定是时间比如10ms-50ms...
形象解释PID算法+PID算法源代码
小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看...
MSP430入门级程序:定时闪烁
刚学完51,还没来得及消化的自己,转身开始进军msp430。在起初的几天里,感觉msp的一切都是那么的苦涩难懂,与51有截然不同的感觉。在文字之中挣扎了两天,受到的打击不小。然后,拈来几个简单的程序,想开始学会自己点灯闪烁,就像...
Timer_A之典型应用——PWM
接下来的程序采用的单片机均为MSP430F149,编程环境为IAR程序一:#include "msp430x14x.h"void main( void ){WDTCTL = WDTPW + WDTHOLD; //关看门狗TACTL=TASSEL0+TACLR+MC0; //ACLK为时钟源,清TAR,增计数模式TACC...
新手必看--嵌入式的就业方向
由于3G持续升温,这方面的人才也保持了供不应求的势头。据悉,目前国内3G核心嵌入式人才不足万人,其中华为约5000-6000人,中兴通讯、大唐各约2000人,以区区万人的阵容去争夺据称有上千亿元的市场,3G嵌入式工程师的身价由此可...
Linux内核配置系统浅析
随着Linux操作系统的广泛应用,特别是Linux在嵌入式领域的发展,越来越多的人开始投身到Linux内核级的开发中。面对日益庞大的Linux内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到Linu...
MATLAB实训.doc
目录第1章MATLAB概述 11.1熟悉MATLAB开发环境 11.2使用Notebook 21.3使用MATLAB的帮助 31.4自我练习 3第2章MATLAB基本运算 42.1向量的运算 42.2矩阵和数组的运算 42.3字符串和日期型数组的操作 52.4多项式的运算 62....
三星利用3-bit垂直NAND成功缩减编程时间
韩国闪存代工巨头三星已经在本届闪存记忆体峰会上宣布,将把3-bit(即TLC)闪存引入其V-NAND产品线。该产品采用TLC NAND 32层设计,作为三层存储单元、TLC与当前企业级NAND产品中所使用的MLC或者称为每单元2 bit的二层单元设...
uC/OS-II进行移植的一般方法和技巧
引言---实时操作系统的使用,能够简化嵌入式系统的应用开发,有效地确保稳定性和可靠性,便于维护和二次开发。μC/OS-II是一个基于抢占式的实时多任务内核,可固化、可剪裁、具有高稳定性和可靠性,除此以外,μC/OS-II的鲜...
剖析C语言中a=a+++++a的无聊问题
看法一:a=a+++++a这个东西可以用来讨论,甚至是讨论它的无所事处,作为增长知识和发现自身理解问题的漏洞是可以的。但是绝对不能拿来作为考试题目,特别是选择题或填空题等客观题目。但是如果作为一道主观探讨题还是挺有趣...
编写代码太累?试试基于模型的设计
听起来,自动生成代码好像是专门为不想多动手的工程师准备的工具。其实,自动代码生成最早是做为基于模型的设计方法的一部分提出的。一般情况下,嵌入式系统软件的开发分为需求定义、功能设计、代码编写和测试等几个阶段,测...
怎么能使Simulink的仿真速度更快?
首先是模型的搭建问题。在Simulink环境中建模时,以s域的表达式进行建模时问题要少一些,增大误差限、取消过零检测等可以提高发展速度,减少警告信息。而z域的情况下要注意的问题会多一点。第一点是把模型中的代数环(Algeb...
如何设计低功耗嵌入式系统
嵌入式系统的应用随着各种智能控制系统、智能玩具、工业控制、掌上设备(Portable)等的需求而不断扩大和流行。特别是近几年来,随着手机、PDA、MP3等掌上系统的流行,使得系统功耗成为产品的设计瓶颈,也成为产品设计的关键技...
ARM7嵌入式系统中启动程序的实现
在我们研制开发基于ARM7的嵌入式系统过程中,发现技术难点主要在于系统启动程序的编写,为此本文详细论述了在arm7基础上开发嵌入式系统时启动程序的实现。1.启动程序流程嵌入式系统的资源有限,程序通常都是固化在ROM中运...
单片机中建立菜单的一种方法
一、新建一个结构体,需要什么按键,加入对应内容。typedef struct{unsigned char current;unsigned char up;unsigned char down;unsigned char enter;ussigned char back;void (*current_operation)();} key_table;二、...
概述十一种基于ARM的嵌入式操作系统
嵌入式LINUX嵌入式Linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。Linux做嵌入式的优势,首先,Linux是开放源代码;其次,Linux的内核小、效率高,可以定制,其系统内核最小只有...
详解:NAT原理及在VxWorks上的实现
Internet的最初设计,并没有考虑到需要支持目前这样庞大的互联网,因此在IPv4的设计当中,IP地址仅使用了32bit来标识网络中的一个节点设备,虽然这很好地解决了IP数据报的对齐问题,但随着Internet的迅猛发展,加上一些不合理的...
Keil C调试某系统时积累的一些经验
1、在Windows2000下面,我们可以把字体设置为Courier,这样就可以显示正常。2、当使用有片外内存的MCU(如W77E58,它有1K片外内存)的时候,肯定要设置标志位,并且编译方式要选择大模式,否则会出错。3、当使用KeilC跟踪程序运行状...
for循环编写延时函数的方法
很多初学者对于程序中ms级延时函数的编写方法比较疑惑,其原理和方式虽然简单,但是却没有相关资料。这里用一个例程详细介绍一下。 过程参考如下: 在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机...
让Linux应用更加得心应手的20招
1.计算文件数和目录数下面的语句可以帮你计算有多少个文件和多少个目录# ls -l * |grep "^-"|wc -l ---- to count files# ls -l * |grep "^d"|wc -l ----- to count dir还可以将以上的语句变成script或做个alias...
编译错误不通过错误汇总
Error[000] : Can't find 0x12C words for psect rbss_1 in segment BANK1连接器告诉你总共有0x12C(300)个字节准备放到bank1 中但bank1 容量不够。显然,只有把一部分原本定位在bank1 中的变量改放到其它bank 中才能解...
如何学习嵌入式
一、学习嵌入式,你可以做什么?学习嵌入式你可以做:手机、PDA、MP3、MP4、遥控玩具、psp、相机、家电控制(洗衣机、电饭煲等)、汽车导航仪,只要跟电子控制相关的,另外,这个行业也利于个人创业。二、你需要学习那些课程?下面的课...
专家揭秘提高存储器子系统效率的三种方法
对于数据中心服务器,高功率密度的原因之一在于存储器子系统。典型的1U服务器需要600~1,000W的电源供电。这些用于数据中心的高端服务器支持16~18个DRAM插槽。在DDR3(第三代双倍数据速率)系统上,每一个插槽都通过典型的2Gb...
嵌入式Linux开发学习
什么是嵌入式Linuxlinux学习 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linu...
成为一名嵌入式Linux开发工程师需要学习哪些知识?
随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究,这使得嵌入式Linux在新兴的嵌入式操作系统领域内...
Java访问SQL数据库的优化探讨
导读:本文概括了Java连接数据库的主要方法,并对JDBC的特点进行了分析。进而从提高访问数据库效率的角度,论述了采用数据库连接池技术、优化SQL语句格式和多线程方法等可提高Java访问数据库效率的方法。1.概述在软件开发...
通过JDBC连接DB2数据库技巧
关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验...
精通数据库系列之入门-基础篇1
什么是数据库系统? 是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及...
精通数据库系列之入门-基础篇2
数据库系统的产生和发展 众所周知,数据库系统并不是在计算机产生的同时就出现的,而是随着计算机技术的不断发展,在特定的历史时期、特定的需求环境下出现的。人类在1946年发明了世界上的第一台计算机到20世纪60年代这漫...
加法器和乘法器简介及设计
大多数数字功能可分为:数据通道、储存器、控制单元、I/O。加法器和乘法器属于数据通道部分。一般对数据通道有如下要求:首先是规整性以优化版图,其次是局域性(时间、空间,算子相邻布置)以使版图紧凑,正交性(数据流、控制流)以...
cat命令,参数及范例
名称:cat使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -...
内存分配——realloc()函数的使用
首先看一下下面的C程序片断:#i nclude char *p;p = (char * ) malloc (10);p = (char * ) realloc (p,20);…………………………这段程序的意思很简单,只...
rt-thread中控制定时器
/** 程序清单:动态定时器例程** 这个例程会创建1个动态周期型定时器对象,然后控制它进行定时时间长度的更改。*/#include/* 定时器的控制块 */static rt_timer_t timer1;static rt_uint8_t count;rt_tick_t timeout = 3...
LPC1227 LED闪烁实验
LPCXpresso-CN-1227这个板子使用的万利的MLINK仿真器,使用IAR编程环境,下载时出现问题,一直不能下载进Flash,弄了几天,无果,遂采用ISP的方式进行下载,但是这样就不能Debug,先只能这样用了。/* Includes ---------------------...
DSP编程技巧之:非常“关键”的关键字
什么是“关键字”?关键字就是已被C语言本身使用,不能作其它用途使用的字,例如关键字不能用作变量名、函数名等。那“关键字”到底有多关键?简单得说,就是如果不掌握它们的使用方法,程序就不能按照我...
DSP编程技巧分享:简析函数的调用过程
在我们使用C/C++对DSP进行编程的时候,函数无疑是功能模块划分的重要组成部分,这些函数之间则通过显式地调用或者中断等方式来共同工作。除了对特定的RTS库中的函数(例如某些数学函数)的调用按照它们内置规则进行分配外,...
DSP编程技巧之:使用代码优化时必须考虑的五大问题
1. 小心使用汇编表达式在C/C++代码中,有时候一些操作难免会对某些CPU寄存器进行操作,此时要使用内嵌的汇编表达式,例如asm("EALLOW"),或者重置某个中断的掩码寄存器等。在优化代码时,编译器会重新调整某些代码段的顺序,自...
超经典!工程师嵌入式Linux自学笔记及体会
一个典型的桌面 Linux 系统包括 3 个主要的软件层---linux 内核、C 库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是 C 库,负责把 POSIX API 转换为内核可...
用最简单的语言来描述奇偶校验
奇校验:数据位中1的个数 + 校验位1的个数(校验位为0或者1) = 奇数偶校验:数据位中1的个数 + 校验位1的个数(校验位为0或者1) = 偶数有了上面的认识,我们就可以得出下面的结论:1、奇校验时:如果数据位中1的个数为奇数,则校验...
2048C++实现代码
/*By Reason*/#include#include#include#include#include#include //为了读取方向键#includeusing namespace std;//srand( (unsigned)time( NULL ) ); //随机数种子 不能用在这里int pane[4][4]; //棋盘int N=...
经典C语言程序设计100例1-10
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码:main(){int i,j,...
MDK提示错误函数 XXX': redefinition和missing的解决办法
提示的错误: APP\INITIALIZE.C(32):warningC206:'EEprom_config':missingfunction-prototypeAPP\INITIALIZE.C(91):errorC231:'EEprom_config':redefinitionAPP\INITIALIZE.C(95):errorC231:'EEprom_config...
网络编程常用函数接口
通用结构体:struct sockaddr {sa_family_t sa_family; /* unsigned short , 指定了通信协议家族 */char sa_data[14];};IPV4网络通信地址结构体:struct sockaddr_in {pa_family_t sin_family;port_t sin_port;struct in...
DSP编程技巧之:详解cmd文件
cmd文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何划分到各个段,以及每个段所使用的存储空间的。许多筒子对cmd文件有畏难情绪,不容易理解各个段的含义,特别是在程序编译没有问题,但是在链接生成可...
DSP编程技巧之:不得不看的编译指示
编译指示(Pragma Directives)可能是所有的预处理指令中最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对编译器给出了如何处理特定的函数、对象和代码段的方法,在保持与C/C++...
单片机C语言程序该这样写!不是教科书上教的那样!
如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去):1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volatile变量...
linux 下makefile教程
作为Linux下的程序开发人员,大家一定都遇到过Linux Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Linux Makefile,如果要想写出一个符合自由软件惯例的Linux Makefile就不那么...
专家指点,解析Linux文件系统
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经...
关于Android 3.0以后AsyncTask默认单一线程的分析
在Android里需要大量后台操作的情况下,经常会使用到AsyncTask这个类,比如说加载网络图片,访问服务器的接口,一般的使用情境就是实例化一个AsyncTask的对象mTask,复写AsyncTask的抽象方法doinBackgroud等等,最后执行task.exe...
android Service中多线程交互
android 的service和activity是运行在UI主线程的。在android线程中,只有主线程即UI线程有自己的默认的消息队列。子线程需要创建自己的消息队列,并把消息发给队列,并循环起来,发给handler处理。1、Looper.prepare();给子...
在Android程序中使用已有的SQLite数据库
在中文搜索中,没有找到一篇比较好的关于如何在Android应用中使用自己事先创建好的数据库的文章,于是在谷歌上找到这篇英文文章,按照它的步骤,测试成功,决定把这篇文章大致的翻译一下,在overstack的一些解答中,也是直接引用了...
嵌入式程序员应知道的基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的...
求助:430编译问--我也遇到类似问题!
答案:you can try 1。备份原文件。 2。新建一个同名的项目组和项目文件,包括同名的主窗口文件。 3。把主窗口文件改得和以前的主窗口一样,但不要拷贝原主窗口文件。 4。再把备份的原文件(*.cpp ....)不包括主窗口文件的其...
求余与取模的区别
通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是...
cc2530 AD转换外部P0口模拟输入0V电压问题
cc2530的AD在转换0v电压时,也就是把AD输入通道接地,会出现转换出的数据变为负数而不是0的问题,在其他电压就不会出现这种问题,不知道是不是我选的参考电压有问题。问题的解决方法是对转换出的二进制代码进行判断如果出现...
STM32串口通信中使用printf发送数据配置方法
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK)标签: STM32 串口通信 printf方法 2011-06-29 23:29在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的...
红外遥控编码格式及学习模式
1、编码格式现有的红外遥控包括两种方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。两种形式编码的代表分别为NEC和PHILIPS的RC-5、RC-6以及将来的RC-7。PWM(脉冲宽度调制):以发射红外载波的占空比代表“0”和“...
双字节二进制无符号数除法
入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。影响资源:PSW、A、B、R1~R7 堆栈需求: 2字 DIVD: CLR CMOV A,R3SUBB A,R7MOV A,R2SUBB A,R6JC DVD1SETB OVRETDVD1: M...
用软件定时的计算方法
利用指令执行周期设定,以下为一段延时程序: 定时数=(TIME1*4+2+1)*TIM2*2+4 MOV 1DJNZ 2NOP 1MOV R5,#TIME2 ;周期1LOOP1: MOV R6,#TIME1 ; 1LOOP2: NOP ; 1 NO...
初级硬件工程师如何开发自己的单片机程序
背景是这样的,去年9月份开始安排一个工程师开始做电动汽车交流充电桩,机械设计部分由公司机械结构部门负责。充电桩的电子部分总体上分为X个部分(用到的资源),电阻触摸屏(RS232),M1卡读写(RS232),电能计量表(RS485),语音提示(SPI),电力...
8个超低功耗MCU的设计指导原则
目前,工程师的任务之一是开发基于低成本微控制器 (MCU) 的超低功耗嵌入式应用,此类应用通常要求用一颗电池维持数年的工作。在从家用自动调温器到个人医疗设备等此类超低功耗应用中,设计人员必须仔细考虑每一微安电流。...
【新手必看】Linux学习基础
Linux学习基础1、什么是Linux?准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于LinusTorvalds,在GPL(GNUGeneralPublicLicense)版权协议下发行,任何人都可以自由的复制(copy),修改(change),套装分发(distribut...
【新手必看】Linux系统安装!
[一、基础知识]1、[系统安装]Linux的安装时,使用Tab、箭头、空格、回车等键做出选择。Linux一般须安装在单独的分区下,为避免Windows系统中的注册表、快捷方式路径出错,最好安装在硬盘的最后一个分区。即将最后的一个分...
Linux新手入门必须养成的七大习惯
一、不要以根用户登录 这是你首先应该注意和遵守的。以前我们可能已经习惯了Windows,我们一直以为权限越高越好,所以我们喜欢以管理员帐户登录。但是这也许是Windows经常被病毒骚扰和不安全的重要原因,现在太多人都在用...
MPU还是MCU,不是一个简单选择的问题
每当在为新设计选择正确合理的器件时,我们可能会有些茫然不知所措。这是需要做正确的平衡处理的事,包括价格,性能,功耗等方面的影响。当然,你可以为新设计着手考虑一些直接的技术方案,但是如果核心器件,无论是微控制器还是微...
嵌入式C语言里的土豪们之除法与移位
除法土豪除法在嵌入式微处理器里可算是一个消耗大户,复杂的实现方式不仅占用了大师宝贵的计算时间而且精度有限情况下占用了大片的RAM。因此,常常在各类文章里看到,编程人员应该使用右移运算来代替除法。这个右移方法没...
嵌入式C语言里的土豪们之变量类型
“定义变量的类型要根据该变量使用的大小范围来定,在满足其最大值的条件下,使用最小空间的变量类型。”这条定义方式我们初学嵌入式编程的人们都会遇到,那么这个如何去执行也成为了关键。例如,我们在定义时钟项...
与Bug斗争其乐无穷
一些高手在程序的编写方面都有了自己的风格,可以将程序做很好的规划。以缜密的思维构造程序架构,以编程规范来打造程序的外观。Bug已经在高手面前无所遁形。所以Bug只是高手们用来愉悦的玩物。用来享受那一刻的征服感。...
如何在C++中调用C程序?
1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示extern “C”{#include “ s.h”#include “t.h”#include “g.h”#include “j.h”}...
CPU卡调试与发卡总结
1、 CPU卡的操作步骤:寻卡-防冲突-选卡-ATS,前面三步和M1操作完全一样,属于ISO14443A前面三层的操作,ATS成功后就进入ISO14443A-4协议层了,也就进入了CPU卡的操作层2、 PPS是可以不做的,只有RATS的返回值表明其接收能力大于...
经历一个单片机硬件设计项目后的总结经验
(1)在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其...
DS1302驱动程序
#defineCLR_CE()(PTDD_PTDD3 = 0)#defineSET_CE()(PTDD_PTDD3 = 1)#defineCLR_CLK()(PTDD_PTDD1 = 0)#defineSET_CLK()(PTDD_PTDD1 = 1)#defineCLR_IO()(PTDD_PTDD2 = 0)#defineSET_IO()(PTDD_PTDD2 = 1)#define INPU...
VHDL+Verilog良好的代码编写风格
良好代码编写风格的通则概括如下:(1) 对所有的信号名、变量名和端口名都用小写,这样做是为了和业界的习惯保持一致;对常量名和用户定义的类型用大写;(2) 使用有意义的信号名、端口名、函数名和参数名;(3) 信号名长度不要太长;(4) 对...
分享20多年最难忘的编程经验
1. 估算解决问题所需要的时间。不要怕,承认吧!我曾见过一些程序员为了解决一个特殊问题而坐在显示器前面8小时。为自己定一个时间限制吧,1小时、30分钟或甚至15分钟。如果在这期间你不能解决问题,那就去寻求帮助,或到网上...
逢N清零的一个小技巧
MCU编程操作中有时候需要判断到计数count到N后对count清零。采用判断操作是:if(count>=N){count=0;}采用count = count & 0x(N-1)HEX;即可实现相同的的效果。不过,此处对N有限制,N不能为任意整数,只能是N-1的二进制数为连1(1,...
Linux系统新手学习的11点建议(转)
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Lin...
见程序如见人---没有代码风格还学什么FPGA
人人都知道文如其人,这里的“文”对程序员来说指的就是代码,从一段代码源文件能看出很多问题,比如:1)此人所在公司版本管理是否规范,是否有统一的代码风格。如果一个公司没有统一的代码规范,则一个大的项目基本无...
流水灯左移8个灯亮然后右移至8个灯亮,再循环
#include#define uint unsigned intvoid delay(uint z); //函数声明void main(void){ uint i;while(1){ P1=0XFF;for(i=0;i<17;i++)//本来左右循环一遍共需要16次,但是因为在i=8时 P1=0XFF没有右移所以写i<17不是1...
一步一步教你写贪吃蛇
第一章 为什么闲着没事写贪吃蛇很多人不明白,为什么我闲着没事要写个贪吃蛇游戏呢?小时候的游戏机这个游戏早就玩够了。其实我们写贪吃蛇,不是用来玩的,而是通过编写一个有些学习一下编程的思想。一个完整的贪吃蛇游戏要...
一些编程的细节----串口打印等
STC89C52因为有专门的串口模块(RXD、TXD),所以串口打印非常的简单(单片机上位机),需要两步:1 串口初始化(网上有很多现成的程序,或直接用STC-ISP软件生成);2 printf(“xxxx”);串口输出; 需要特别注意:使用printf函数前一定...
如何成为编程高手的八大奥秘
世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。1、扎实的基础数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再...
嵌入式软件开发的优缺点浅谈
从事嵌入式软件开发的好处是:1 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率...
嵌入式JavaPOS系统测试的设计与实现
0 引 言随着嵌入式计算机应用技术的发展,嵌入式技术已经广泛应用到现代生活的方方面面。在零售系统方面,零售收款机是嵌入式应用的一个重要领域。目前,市场上的收款机大体上可分为三类:第一类是基于PC和DOS/Windows体系的...
学习嵌入式的一点建议
1、学习linux根据我在个人的了解,我选择学习嵌入式linux,刚好我们学校也重视嵌入式linux,从实验室到课程安排都是关于嵌入式linux方面,天时地利!这里我把学习linux的经验和教训说说。可以这样说,学习linux差不多就学习linux...
嵌入式的学习规划和能力必备
1.ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)(3) 必须熟悉嵌入式软件开...
新手必看,给Linux初学者的建议
给嵌入式linux初学者的建议 目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。随着嵌入式行业的...
一个LINUX学习高手写给初学者的话
现在好多的人开始接触电脑的时候,见到的应该是Windows98说实话,98已经是一个很人性化,封装的很好的一个系统了一个对电脑一窍不通的人都能很快的使用它。这样很多人对"电脑"的印象和那些和我一样一开始接触的是DOS人是...
初学者对嵌入式系统学习的误区及建议
1 嵌入式系统的知识体系嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业 控制、现代农业、家用电器、汽车电子、测控系统、数据采集等),计算机应用的延伸(MP3、手机、通信、网络、计算机外围设备等)。从...
Linux字符设备驱动程序工作机理分析
1本文主题 本文主要分析Linux字符设备驱动程序的工作机理。主要内容以及代码片段来源于《LDD3》,俺只是从另外一个角度来讲述。 见过很多关于驱动程序的书,基本上都是告诉你怎么做,然后你STEP BY STEP,然后运行完后结果...
学习嵌入式技术的26绝技
1.不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。2.初学者请不要看太多的书那会误人子弟的。先找一本好书系统的学习。很多人用了很久都...
嵌入式LINUX包含哪四大块
嵌入式LINUX里含有bootloader,内核,驱动程序、根文件系统这4大块。一、bootloader:它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。很多人一玩嵌...
如何从零开始开发一款嵌入式产品
高级工程师的经验之谈,个人觉得非常好,借来和大家分享下首先,如果你有幸看到这篇文章,千万不要试图在2 个小时内阅读完,就算你2 个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此 文章,慢慢品尝,这绝对是...
最近遇到的单片机编程小问题总结
1、时间太长,记不清在哪个项目里遇到的,指向code区数组的指针也要加 code 关键字声明。比如 unsigned char code arr[30]; 数组,要用指针指向它,要把指针也声明成 unsigned charcode*p;后来使用发现其它很多地方使用是不...
超声波测距程序
/*******超声波测距程序*******/#include #include#define uchar unsigned char#define uint unsigned intsbit rs = P2^4;sbit rw = P2^5;sbit en = P2^6;sbit tr = P3^2; sbit ec = P1^0; uint dis...
linux线程编程-详解
线程创建函数pthread_createint pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);第一个参数为指向线程标示符的指针,线程创建时,这个指针...
linux进程和线程编程(exec)
在linux中有六种调用形式#include extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char...
Linux设备模型基本机构体
经历了人生美好一刻、难过的时候,会懂得,会放弃,会怀念不断积累的平淡。那些曾经拥有的都过去了,忘记了,不再在意了,而棱角渐渐光滑,激情也慢慢消失,会同意有些事需要时间慢慢积累,也相信付出不一定会有收获,而这里,却还想欺骗自...
一线研发之声:嵌入式软件工程师常用工具软件
SourceInsight 代码阅读软件,还可以方便的自定义各种命令,公司大部分的编译平台都搭建在它上面。和批处理、make、编译器工具链、联合使用可搭建通杀版的IDE。还可以自定义丰富的快捷键,在文件中来去自如,遨游纵横。Ultr...
一线研发之声之C代码注释引发的“血案”
这位看官,既然来了,且读且评吧。故事是真实的,如有雷同纯属巧合。事情是这样的,有人离职,公司调我补缺。那个系统一直有个工程师在维护,参与该系统的新人来了又走,他始终泰若磐石。刚过去一个礼拜,我就心下窃吼:“TMD坑爹...