摘要: 假设有两个寄存器SR和SR2,现在要交换这两个寄存器的数据。在C语言中,需要定义一个临时变量SR_temp来实现:SR_temp = SR;SR = SR2;SR2 = SR_temp;但在Verilog中,利用其非阻塞的赋值方式,可以在一个时钟周期内完成两个寄存器数据的交换。请看下面这段代码: 1 module Dtest 2 ( 3 input clk, enable, reset, 4 input sr_in, 5 output sr_out 6 ); 7 8 // Declare the shift register 9 reg sr;10... 阅读全文
posted @ 2012-10-10 17:42 xiangtailiang 阅读(1203) 评论(0) 推荐(0) 编辑
摘要: 最近一直在调试代码,在短短的时间内产生了大量的代码,还没有来得及总结。现在就总结一下用UART 发送数据块的方式,为什么采用数据块发送呢?一、块数据发送的方式可以提高发送效率;二、在需要发送一个数据帧的格式时,数据块的发送更实用。这里采用的是中断的方式,因此,缓冲区是必须的,笔者为这个通信方式设计了一个环形缓冲区,可以检测空信号,但不检测满信号。缓冲区的代码如下:View Code 1 #define BUFF_SIZE 16000 2 3 typedef struct 4 { 5 char data[BUFF_SIZE]; 6 volatile int read_pt, ... 阅读全文
posted @ 2012-09-19 16:48 xiangtailiang 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 最近在写GPS接收机向PC机发送数据的程序,GPS接收机每1ms产生一个积分数据,然后由ARM把这个积分数据量化为0和1。为了提高数据发送的效率,这里没有采用每1ms发送一个数据的方式,而是采用块发送的方式,采用ARM的串口发送数据块的中断来实现每次发送8字节的数据,发送8字节后,再在缓冲区读取下一个8字节块。积分数据量化为0和1后,仅仅需要1bit就可以存储了,在发送的时候,需要把8ms的积分数据拼接成一个字节,然后等待凑够8个字节的最低发送块大小时再发送,也就是说,每64ms才发送一次数据,一次就发送8字节。笔者的处理方式如下:采用状态机的方式,每1ms根据当前的状态来完成特定的任务,然后 阅读全文
posted @ 2012-09-19 16:12 xiangtailiang 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。 在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。开发环境如下所示: IDE-Version:μVision V4.23.00.0Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.Tool Version Numbers:Toolchain: MDK- 阅读全文
posted @ 2012-08-30 10:56 xiangtailiang 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。开发环境如下所示:IDE-Version:μVision V4.23.00.0Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.Tool Version Numbers:Toolchain: MDK-AR 阅读全文
posted @ 2012-08-30 10:45 xiangtailiang 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。开发环境如下所示:IDE-Version:μVision V4.23.00.0Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.Tool Version Numbers:Toolchain: ... 阅读全文
posted @ 2012-08-30 10:41 xiangtailiang 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 1 // hand gesture sampler.cpp : Defines the entry point for the console application. 2 3 // 4 #include "stdafx.h" 5 #include <string> 6 #include <iostream> 7 8 #include <opencv2\opencv.hpp> 9 10 using namespace cv;11 using namespace std;12 13 Mat src, src2Save;14 char cfi 阅读全文
posted @ 2012-05-08 17:12 xiangtailiang 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 本程序使用定时器方法,设置一个1000ms的定时器(SetTimer),然后捕捉该消息,然后调用回调函数TimerProc,在该函数中输出DEF,注意,SetTimer可以直接写回调函数地址,不必捕捉消息。这里给出的是捕捉消息的版本。//************************************************************************************ //本程序使用定时器方法,设置一个1000ms的定时器(SetTimer),然后捕捉该消息,然后调用回调函数 // TimerProc,在该函数中输出DEF,注意,SetT... 阅读全文
posted @ 2012-04-12 20:42 xiangtailiang 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: 按照一定的间隔,从视频中截图并保存(OpenCV),适用于负样本集的生成。代码:#include "cv.h"#include "highgui.h" int main(int argc, char **argv){ int period = atoi(argv[1]); //帧间隔,每隔多少帧取其中一张截图 int count = atoi(argv[2]); //文件编号开始计数值 char filename[128]; CvCapture *capture = cvCreateFileCapture(argv[3]); //打开视频文件 if (c 阅读全文
posted @ 2012-03-31 15:15 xiangtailiang 阅读(1715) 评论(0) 推荐(0) 编辑
摘要: 使用Modelsim进行图像处理算法的仿真时,需要使用到图像的像素信息序列,这里提供一个程序可以把图片中的像素信息读取出来,依赖于OpenCV库运行,这里仅仅是灰度图像而已,读者可以根据自己的需求增加其它颜色通道。 1 #include "opencv2/core/core.hpp" 2 #include "opencv2/opencv.hpp" 3 #include <iostream> 4 using namespace std; 5 using namespace cv; 6 int main(int argc, char *argv[ 阅读全文
posted @ 2012-03-31 15:12 xiangtailiang 阅读(1180) 评论(0) 推荐(0) 编辑