
单片机
机器人开发者
从事机器人、自动驾驶开发
展开
-
avr 单片机中的指令_BV(i)
关于这个_BV(i)指令的统一解释是:#define _BV(bit) (1 _BV()是把1左移N位的函数。_BV(7)相当于(1本身和置位还是清零没有关系。不过这个函数,实际上却真的大多数应用于位的置位或清零。比如:PORTA|=_BV(PA7)PORTB&=~_BV(PB6)PORTC^=_BV(PC5)分别相当于:PORTA = PORTA | (1原创 2012-09-16 23:59:45 · 8587 阅读 · 2 评论 -
ADS的go to命令
我们有时候在一个函数右键没有看到“go to”选项,这是因为没有Make,要先Make之后才能使用go to 命令原创 2013-07-17 22:12:00 · 1003 阅读 · 0 评论 -
Host USB与USB Device
原创 2013-07-17 21:16:38 · 813 阅读 · 0 评论 -
在qt上OpenCV处理OV9650采集的图像
网上移植Opencv到ARM+linux上的教程很多,叫我们如何把OV9650采集的数据传递给opencv使用的教程也很多,但是说的模棱两可,没有一个确切的说法。我在这里总结一下。 一般我们OV9650采集的数据得先经过OpenCV处理以后才会给qt显示,所以要转换两次:第一次是OV9650采集的数据要放到IplImage结构里面,这样Opencv才能使用,第二次是经OpenCV处理以后的原创 2013-08-07 20:46:09 · 4706 阅读 · 1 评论 -
TQ2440实验板OV9650测试程序的详解
我买的是TQ2440实验板,LCD是480*272。实验板给的测试程序是针对320x240的,下面给出详细注解,并且改成480*272显示。修改后的程序在板子上成功运行。程序中的注解只是我作为一个初学者的角度来理解的,有什么不对的地方还望指教。/* * TQ2440 camera test program * * preview : 480*272 overlay on 48原创 2013-06-10 16:24:06 · 5111 阅读 · 4 评论 -
关于《十天学会AVR单片机》的教程头文件AVR_PQ1A.h
最近开始学习AVR单片机,由于之前买的51开发板是兼容AVR单片机的,所以就没有必要开发板了。于是从网上找了一个教程《十天学会AVR单片机》,也是郭天祥公司的人讲的,觉得还可以。因为没有买开发板,所以没有AVR_PQ1A.h这个头文件,这头文件定义了寄存器等,非常好用,所以有必要下下来解读。/******************************************* 文件:A原创 2012-10-02 19:48:26 · 6463 阅读 · 1 评论 -
TQ2440实验板qtopia应用程序开发总结
一、建立编程环境(教程:TQ2440_CD\Linux资源\Linux编译视频教程) 1、安装VMware,安装Fedora2、安装VMwareTools,设置共享目录image、src3、安装交叉编译器4、编译u-boot5、编译内核6、编译文件系统7、解压应用程序例程8、建立qtopia环境 二、安装USB转串口驱动、超级终端和USB下载软件、USB原创 2014-04-14 17:19:59 · 2226 阅读 · 0 评论 -
初学LPC2138两个小问题
今天在看《ARM嵌入式系统基础教程》的时候,苦于没有硬件时间书本内容,于是尝试使用protues软件仿真一下LPC2138.1、test.c(9): warning: #1-D: last line of file ends without a newline由于好久没有使用keil了,今天变了一个简单的程序发现都出现错误(正如以上标题所示)网上搜了一下原来是代码最后一行没有回车,加原创 2013-10-20 15:10:57 · 2669 阅读 · 0 评论 -
对于0x30000000地址的理解
看了一些网上的资料,写一下我的理解: 首先 0x30000000是sdram的位置,flash里的程序负责把你的用户程序拷到sdram中,然后转向0x30000000开始运行,所以ads中的地址为0x30000000原创 2013-07-21 17:46:49 · 4478 阅读 · 0 评论 -
opencv1.0移植到ARM+linux(TQ2440)
在OpenCV官网下载linux安装包:http://opencv.org/downloads.html,解压到/opt/EmbedSky/opencv下,然后cd进入解压文件夹。在解压目录下运行:./configure --host=arm-linux --without-gtk --without-carbon --without-v4l --without-v4l2 --withou原创 2013-07-24 21:35:23 · 3619 阅读 · 1 评论 -
keil调试查看ROM或RAM
Ctrl+F5或点击调试按钮进入调试界面: 在工具栏上点击Memory Windows则右下角出现Memory1的页面,默认出现的是ROM的查看界面,在Address一栏输入十六进制的地址即可查看ROM里面的数值。 点击Memory Windows按键右边黑三角选择Memory2,则在右下角出现Memory2的标签页面,在Address一栏输入D:20H,代表查看RAM中2原创 2013-03-29 11:27:51 · 33788 阅读 · 2 评论 -
TQ2440开发板存储器
TX2440A与TQ2440A开发板使用核心板相同,下面是转载: s3c2440存储器概述:1、S3C2440A的存储器管理器提供访问外部存储器的所有控制信号2、27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等3、总共有8个存储器bank(bank0—bank7) bank0---bank5为固定128MB bank6和bank7的容量可编程改原创 2013-07-21 12:24:58 · 2038 阅读 · 0 评论 -
嵌入式Linux下的LCD驱动程序设计与实现
随着嵌入式Linux的迅速发展,由于其没有昂贵的版权费,完全开放源代码,可裁减性与可移植性,因此是开发嵌入式产品的优秀操作系统平台。设备驱动程序是Linux内核的重要组成部分,运行在Linux内核底层,在内核源代码中占较大比例,驱动程序开发逐渐成为嵌入式软件开发中一项重要工作。应项目设计的需要完成了嵌入式Linux下的LCD驱动程序设计。 1 Linux下设备驱动程序 &nbs随着嵌入式转载 2013-06-10 13:56:25 · 2046 阅读 · 1 评论 -
什么是ioctl。
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。转载 2013-06-08 13:14:02 · 839 阅读 · 0 评论 -
OV9650驱动程序跟踪
学习了裸机OV9650的P通道LCD直接显示程序,作为这点基础开始分析OV9650在linux设备驱动程序。昨天看了点这个驱动程序,让我很郁闷的是写这个程序的人是有毛病还是怎么回事,简简单单的IO口功能引脚的定义,整出了一个套一个的定义,看的我晕乎乎的,也可能是哥根本没有入门,看别人牛逼的程序就看迷糊了。鉴于上面这种情况,我在程序跟踪时只能带一下了。我们跟踪程序按照常规方法,跟着驱动的编写脉络转载 2013-06-07 20:59:59 · 1641 阅读 · 0 评论 -
在TQ2440实验板上进行linux+qtopia++ov9650+opencv的图像处理系统
暑假的这两三个星期一直学校在忙项目的事情。本人今年大三,自动化专业,在今年5月份的时候申请了学校的国家级大学生创新创业训练计划项目(简称国创),项目题目是:轮式双目自主避障小型机器人研发。由于项目中需要用到很多模式识别方面的知识,而模式识别是研究生的一个研究方向,本科生很少有机会接触。所幸的是我之前跟一位老师做过一个模式识别方面的项目,使用过OpenCV,而且使用的还算比较熟,再然后自己在学校的一原创 2013-08-04 00:56:22 · 5030 阅读 · 3 评论 -
fb_var_screeninfo解析
struct fb_var_screeninfo {__u32 xres; /* visible resolution横像素 */__u32 yres; //竖像素__u32 xres_virtual; /* virtual resolution */__u32 yres_virtual;__u32 xoffset; /* offset from virtual t转载 2013-06-10 14:10:52 · 17032 阅读 · 0 评论 -
arm2440的启动流程
要分析arm2440的启动流程,先得了解arm2440的硬件配置,在arm2440这款cpu里面没有什么存储的芯片,除了以个4kb的SRAM(静态存储器可以运行程序,但是最重要的一点就是掉电就失掉所有的数据)注意这4kb是cpu自己的不是外设的的。好了现在讲述下启动的流程。(一下是从nand flash 启动)1、首先机器上电,从外部的nand flash 的0x0000-0x0100转载 2013-06-04 13:41:38 · 721 阅读 · 0 评论 -
对ARM加载域和运行域的理解
对ARM加载域和运行域的理解一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装转载 2013-06-04 13:53:48 · 1657 阅读 · 0 评论 -
V4L2
V4L2(video 4 linux 2)V4L2有一段历史了。大约在1998的秋天,它的光芒第一次出现在Bill Dirks 的眼中。经过长足的发展,它于2002年11 月,发布2.5.46 时,融入了内核主干之中。然而直到今天,仍有一部分内核驱不支持新的API,这种新旧API 的转换工作仍在进行。同时,V4L2 API也在发展,并在2.6.18 版本中进行了一些重大的改变。支持V4L2的应转载 2013-06-10 17:05:24 · 1981 阅读 · 0 评论