当前位置:文档之家› processing 多个视频播放

processing 多个视频播放

processing 多个视频播放
processing 多个视频播放

processing制作循环播放视频问题

来自: colour-4([器味生活设计]) 2012-04-03 09:46:51

我想问可否用processing实现一个功能,

1.轮流,循环播放5段电影(编号1、2、3、4、5)。全屏,无需鼠标键盘交互。

2.播放每段影片开始时候,向串口发送当前电影编号字符(1、2、3、4、5)。即比如某时刻开始播放影片1,则发串口文字“1”

3.五段视频播放完毕,有一个短暂间隔。

第一个点是重点,后面两个希望有空也帮忙解决一下。因为涉及到毕业创作,所以比较赶,要是能帮我解决万分感激啊~

import processing.video.*;

String PATH = "C:/Users/Blane/Desktop/emptyderry.mp4";

Movie mov;

Movie mov1;

Movie mov2;

Movie mov3;

int newFrame = 0;

int movFrameRate = 30;

boolean speedSet = false;

boolean once = true;

boolean ismov=false;

boolean ismov1 =false;

boolean ismov2 =false;

boolean ismov3 =false;

boolean isPlaying;

boolean isLooping;

void setup() {

size(640, 360);

background(0);

// Load and set the video to play. Setting the video

// in play mode is needed so at least one frame is read

// and we can get duration, size and other information from

// the video stream.

// frameRate(25);

// mov = new Movie(this, PA TH);

//mov.play();

// mov.speed(5);

// mov.volume(0);

mov = new Movie(this, "transit.mov");

// mov.loop();

mov1 = new Movie(this, "one.mov");

// mov1.loop();

mov2 = new Movie(this, "two.mov");

//mov2.loop();

mov3 = new Movie(this, "three.mov");

// mov3.loop();

}

void movieEvent(Movie m) {

m.read();

// if (speedSet == true) {

// speedSet = false;

// }

}

void draw() {

background(0);

if(ismov==true){

image(mov, 0, 0, width, height);}

if(ismov1==true){

image(mov1, 0, 0, width, height);}

if(ismov2==true){

image(mov2, 0, 0, width, height);}

if(ismov3==true){

image(mov3, 0, 0, width, height);}

fill(255);

text(getFrame() + " / " + (getLength() - 1), 10, 30); }

void Rverse(Movie movie)

{

if (speedSet == false && once == true) {

// Setting the speed should be done only once,

// this is the reason for the if statement.

speedSet = true;

once = false;

movie.jump(mov.duration());

// -1 means backward playback at normal speed.

movie.speed(-1.0);

// Setting to play again, since the movie stop

// playback once it reached the end.

movie.play();

}

}

void moviespeed(Movie movie)

{

float newSpeed = map(mouseX, 0, width, 0.1, 2);

movie.speed(newSpeed);

fill(255);

text(nfc(newSpeed, 2) + "X", 10, 30);

}

void moviescratch(Movie movie)

{

if (movie.available()) {

movie.read();

// A new time position is calculated using the current mouse location: float f = map(mouseX, 0, width, 0, 1);

float t = movie.duration() * f;

movie.play();

movie.jump(t);

movie.pause();

}

}

void movieplay(Movie movie)

{

// Pausing the video at the first frame.

mov.play();

// mov.jump(0);

// mov.pause();

}

void movieloop(Movie movie)

{

movie.loop();

}

void moviestop(Movie movie)

{

movie.stop();

}

void keyPressed() {

// if (key == CODED) {

// if (keyCode == LEFT) {

// if (0 < newFrame) newFrame--;

// } else if (keyCode == RIGHT) {

//if (newFrame < getLength() - 1) newFrame++;

// }

// }

// setFrame(newFrame);

switch(key)

{

case 'q':

case 'Q':

ismov=true;ismov1=false;ismov2=false;ismov3=false;mov.loop();mov1.stop();mov2.stop();mov3. stop();

break;

case 'a':

case 'A':

ismov=false;ismov1=true;ismov2=false;ismov3=false;mov1.loop();mov.stop();mov2.stop();mov3. stop();

break;

case 'S':

case 's':

ismov=false;ismov1=false;ismov2=true;ismov3=false;

mov2.loop();mov.stop();mov1.stop();mov3.stop();

break;

case 'd':

case 'D':

ismov=false;ismov1=false;ismov2=false;ismov3=true;

mov3.loop();mov.stop();mov2.stop();mov1.stop();

break;

}

if (key == 'p') {

// toggle pausing

if (isPlaying) {

mov.pause();

} else {

mov.play();

}

isPlaying = !isPlaying;

} else if (key == 'l') {

// toggle looping

if (isLooping) {

mov.noLoop();

} else {

mov.loop();

}

isLooping = !isLooping;

} else if (key == 's') {

// stop playing

mov.stop();

isPlaying = false;

} else if (key == 'j') {

// jump to a random time

mov.jump(random(mov.duration()));

}

}

int getFrame() {

return ceil(mov.time() * 30) - 1;

}

void setFrame(int n) {

mov.play();

// The duration of a single frame:

float frameDuration = 1.0 / movFrameRate;

// We move to the middle of the frame by adding 0.5: float where = (n + 0.5) * frameDuration;

// Taking into account border effects:

float diff = mov.duration() - where;

if (diff < 0) {

where += diff - 0.25 * frameDuration;

}

mov.jump(where);

mov.pause();

}

int getLength() {

return int(mov.duration() * movFrameRate); }

RS232串口通信详解

RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 通信原理知识2010-01-03 20:53 阅读1 评论0 字号:大中小RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 串口是计算机上一种非常通用的设备通信协议。 --------------------------------- 串口的引脚定义: 信号方向来 9芯 缩写描述 自 1调制解调器CD载波检测 2调制解调器RXD接收数据 3PC TXD发送数据 4PC DTR数据终端准备好 5GND信号地 6调制解调器DSR通讯设备准备好 7PC RTS请求发送 8调制解调器CTS允许发送 9调制解调器RI响铃指示器

两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。 --------------------------------- 串口的电气特性: 1)RS-232串口通信最远距离是50英尺 2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps 3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: --------------------------------- 串口通信参数: a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。 b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。 c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一

基于FPGA的通用异步收发器设计(串口通信)

FPGA串行通用异步收发器设计 实验目的:1、掌握QuartusII6.0等EDA工具软件的基本使用; 2、熟悉VHDL硬件描述语言编程及其调试方法; 3、学习用FPGA实现接口电路设计。 实验内容: 本实验目标是利用FPGA逻辑资源,编程设计实现一个串行通用异步收发器。实验环境为EDA实验箱。电路设计采用VHDL硬件描述语言编程实现,开发软件为QuartusII6.0。 1、UART简介 UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。 基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。 UART的基本特点是: (1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 (2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。 (3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。 (4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。 (5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。 (6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。 (7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。 (8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。 FPGA UART系统组成:如下图所示,FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块; 2、模块设计:

单片机串口通讯必备基础知识

单片机串口通讯必备基础知识 你想熟悉单片机,那必须先看看单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢? SBUF 数据缓冲寄存器 这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。 SCON 串行口控制寄存器 通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 SM0 SM1 模式 功能 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 8位UART 可变 1 0 2 9位UART fosc/32 或fosc/64 1 1 3 9位UART 可变 在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。表中的fosc 代表振荡器的频率,也就是晶振的频率。UART 为(Universal Asynchronous Receiver)的英文缩写。

经测试的FPGA串口通信VHDL程序

实验三、FPGA串行通用异步收发器设计 实验目的:1、掌握QuartusII6.0等EDA工具软件的基本使用; 2、熟悉VHDL硬件描述语言编程及其调试方法; 3、学习用FPGA实现接口电路设计。 实验内容: 本实验目标是利用FPGA逻辑资源,编程设计实现一个串行通用异步收发器。实验环境为EDA实验箱。电路设计采用VHDL硬件描述语言编程实现,开发软件为QuartusII6.0。 1、UART简介 UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。 基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。 UART的基本特点是: (1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 (2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。 (3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。 (4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。 (5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。 (6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。 (7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。 (8)波特率:UART的传送速率,用于说明数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送数据位的数目来表示,称之为波特率。如波特率9600=9600bps(位/秒)。 UART的数据帧格式为: FPGA UART系统组成:如下图所示,FPGA UART由三个子模块组成:波特率发生器;接收模块;发送模块; 2、模块设计:

第7章PIC单片机串行口及串行通信技术.pdf

第7章PIC18FXX2串行口及串行通信技术 ?教学目标 串行通信基本知识 串行口及应用 PIC18FXX2与PC机间通信软件的设计

本章知识点概要 ? 1.什么是串行通信,串行通信有什么优点? ? 2.串行通信协议 ? 3.什么是波特率? ? 4.PIC18FXX2中的串行口工作方式及应用 ? 5.PIC18FXX2点对点通信 ?针对PIC18FXX2串行口而言,概括为以下问题: 1、波特率设计,初始化SPBRG 2、设定通信协议(工作方式选择,SYNC) 3、如何启动PIC18FXX2接收、发送数据? 4、如何检查数据是否接收或发送完毕?

7.1 7.1 串行通信基本知识串行通信基本知识 ?在实际工作中,计算机的CPU 与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也要交换信息,所有这些信息交换均可称为通信。 ?通信方式有两种,即并行通信和串行通信。 ?采用哪种通信方式?----通常根据信息传送的距离决定例如,PC 机与外部设备(如打印机等)通信时,如果距离小于30 m ,可采用并行通信方式;当距离大于30 m 时,则要采用串行通信方式。PIC18FXX2单片机具有并行和串行二种基本通信方式。

并行通信 ?并行通信是指数据的各 位同时进行传送(发送 或接收)的通信方式。 ?优点:传送速度快; ?缺点:数据有多少位, 就需要多少根传送线。 ?例如,右图PIC18FXX2 单片机与外部设备之间 的数据传送就属于并行 通信。

串行通信 ?串行通信是指数据一位(bit)一位按顺序传送的通信方式。?优点:只需一对传输线(利用电话线就可作为传输线),大大降低了传送成本,特别适用于远距离通信; ?缺点:传送速度较低。假设并行传送N位数据所需时间为T,那么串行传送的时间至少为N*T,实际上总是大于N*T。 接收设备发送设备 D2 D1 D0 D3 D7 D6 D5 D4

HTML设计代码大全

html设计代码大全 1)贴图:< img src="图片地址">本人照片(献丑了) 2)加入连接:< a href="所要连接的相关地址">写上你想写的字< /a> 3)在新窗口打开连接:< a href="相关地址" target="_blank">写上要写的字< /a> 4)移动字体(走马灯):< marquee>写上你想写的字< /marquee> (可用于店铺分类,和评价) 5)字体加粗:< b>写上你想写的字< /b> 6)字体斜体:< i>写上你想写的字< /i> 7)字体下划线: < u>写上你想写的字< /u> 8)字体删除线: < s>写上你想写的字< /s> 9)字体加大: < big>写上你想写的字< /big> 10)字体控制大小:< h1>写上你想写的字< /h1> (其中字体大小可从h1-h5,h1最大,h5最小) (其中字体大小可从h1-h5,h1最大,h5最小) 11)更改字体颜色:< font color="#value">写上你想写的字< /font>(其中value值在000000与ffffff(16位进制)之间 12)消除连接的下划线:< a href="相关地址" style="text-decoration:none">写上你想写的字< /a> 13)贴音乐:< embed src="音乐地址" width="宽度" height="高度" autostart=false> 14)贴flash: < embed src="flash地址" width="宽度" height="高度"> 15)贴影视文件:< img dynsrc="文件地址" width="宽度" height="高度" start=mouseover> 16)换行:< br> 17)段落:< p>段落< /p> 18)原始文字样式:< pre>正文< /pre> 19)换帖子背景:< body background="背景图片地址"> 20)固定帖子背景不随滚动条滚动:< body background="背景图片地址" body bgproperties=fixed> 21)定制帖子背景颜色:< body bgcolor="#value">(value值见10) 22)帖子背景音乐:< bgsound="背景音乐地址" loop=infinite>(听到音乐了吗?也可以加在你的店铺公告里) 23)贴网页:< iframe src="相关地址" width="宽度" height="高度">< /iframe> 最后注意了,以上所有代码中的前边后边代码段,我都加入了一个空格,要不再这里就运行了,你们无法看见了!使用时把前边后边代码内的空格去掉即可!举个例子4)移动字体(走马灯):< marquee>写上你想写的字< /marquee> 把< marquee>和< /marquee> 删为去掉括号中的空格即可,其他不用动!后边代码不动即可!

串口通信的接线方法

目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1、DB9和DB25的常用信号脚说明 2、RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 图2 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事;

串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 RS232C标准串口接线方法 (第二版) 检验仪器与微机的通讯主要是以RS232C标准接口为主,而串口的接线方法也有一定的标准,在此谈谈几种常用的串口接法,仅作参考: 一、标准接法 1、9对9(包括9针对9孔,9孔对9孔,9针对9针): 说明:以下的孔、针指串口线两端的串口,不过2、3有可能不交换 2-------------3 3-------------2 4-------------6 5-------------5 6-------------4 7-------------8 8-------------7 2、9对25(包括9孔对25孔,9孔对25针) 2-------------3 (备注:2、3有可能不交换) 3-------------2 4-------------6 5-------------7 6-------------20 7-------------5 8-------------4

我的processing学习笔记

楼主作为一个纯粹的工科男,却阴差阳错到了机关坐办公室,沦落为天天写材料为生,内心实在是千万个草泥马在狂奔。为了保持工科男的本性,也为了不被这些无聊的材料压成神经病,决定给自己找点乐趣。去年先是接触了一下arduino,编程完成了一个遥控小车,利用appinventor编了个手机遥控软件,基本实现了在手机屏幕上画图形,小车就在地上按画的路径行走。开始心挺大,想进一步学习做个小四轴,自平衡小车,激光雕刻机等,但是由于现在每天下班第一任务是陪孩子玩,加之学习硬件还是比较烧钱,结果就荒废了。上个月无意中发现了processing,又看了一些大神的作品,觉得很有意思,而且学习软件比学习硬件时间上比较灵活(比如每天中午可以学习半小时),所以决定学习一下,丰富一下自己的业余生活。为了避免再次半途而废特开此贴记录过程(不过还是很难说,哈哈)。 今天先补上前段时间零星学习的内容: 学习用教材:《爱上processing》、《代码本色》。 一、已学习的常用简单命令 1.设置屏幕尺寸:size(宽,高); 2.画点:point(x,y); 3.划线:line(x1,y1,x2,y2); 4.画三角形:triangle(x1,y1,x2,y2,x3,y3); 5.四边形:quad(x1,y1,x2,y2,x3,y3,x4,y4); 6.角度换算为弧度:radians(角度); 7.长方形:rect(x,y,宽,高); 8.椭圆:ellipse(x,y,宽,高);//目前用这个命令用的最多,嘿嘿 9.平滑曲线:smooth(); 10.关闭平滑曲线:noSmooth(); 11.设置线宽:strokeWeight(x); 12.背景颜色:background(x,x,x);//只填一个参数为灰度,0为黑255为白;填三个参 数为RGB颜色 13.fill(x,x,x,x)//颜色同上,第四个参数为透明度 14.鼠标当前坐标:mouseX,mouseY 15.上一帧鼠标坐标:pmouseX,pmouseY 16.测量两点之间的距离:dist(x1,y1,x2,y2); 17.mousePressed:布尔量,鼠标按下后为真(true,false) 18.mouseButton:返回值:LEFT,CENTER,RIGHT 用来判断哪个键按下 。。。。。 还有一些图形命令,目前用的还很少,暂时没学。 二、编程格式 1.首先创建不在setup()和draw()函数的变量(全局变量) 2.setup(){…};内的命令执行一遍 3.draw(){…}; 内的命令持续执行 三、面向对象编程 由于《代码本色》完全用的是面向对象的编程方式,而本人大学时学的计算机语言是老掉牙的FORTRAN,基本上就没听说过面向对象的编程,只有重新学习面向对象的编程方法,不过学习了两天,试着编了几个小程序,发现这种编程方法确实很强大。这里就照搬一下《爱上processing》里的描述,具体的还是得自己编几个程才能体会: class xxx //1.创建一个类 {

串口通讯通信协议技术

串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现

DSP课程设计 同步串口通信在TMS320C643上实现

摘要 进入21世纪之后,数字化浪潮正在席卷全球,数字信号处理器DSP(Digital Signal Processor)正是这场数字化革命的核心,无论在其应用的广度还是深度方面,都在以前所未有的速度向前发展。数字信号处理是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效的传输与应用。 DSP可以代表数字信号处理技术(Digital Signal Processing),也可以代表数字信号处理器(Digital Signal Processor)。前者是理论和计算方法上的技术,后者是指实现这些技术的通用或专用可编程微处理器芯片。 本文就是就是基于DSP原理及应用编写设计的同步串口通信在TMS320C643上实现。其集成开发环境为CCS,工作平台是SEED-DTK 。CCS 是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。SEED-DTK(DSP Teaching Kit)是一套可以满足大学本科、研究生和教师科研工作的综合实验设备。SEED-DTK 是我公司在总结以往产品的基础上,以独特的多DSP 结构、强大的DSP 主板功能、丰富的外围实验电路、精心设计的实验程序、精湛的产品工艺形成的高性能产品。 关键字:同步串口通信 DSP CCS SEED-DTK

目录 一.功能描述 ---------------------------------------------------------- 3二.概要设计 ---------------------------------------------------------- 3 2.1 McBSP 介绍------------------------------------------------- 3 2.2 设计目的------------------------------------------------------ 4 2.3 设计概要------------------------------------------------------ 4三.详细设计 ---------------------------------------------------------- 4 3.1 实验程序功能与结构说明 -------------------------------- 4 3.2 程序流程图 ---------------------------------------------------- 5四.调试过程及效果 ------------------------------------------------- 5 4.1 实验准备------------------------------------------------------ 5 4.2 调试过程及效果 -------------------------------------------- 6 4.2.1 创建源文件 -------------------------------------------- 6 4.2.2 创建工程文件 ----------------------------------------- 7 4.2.2 设置编译与连接选项 -------------------------------- 8 4.2.3 工程编译与调试 ------------------------------------ 10 五.存在问题 -------------------------------------------------------- 12 六. 心得-------------------------------------------------------------- 12 七.参考文献 -------------------------------------------------------- 12 附录(源程序) ----------------------------------------------------- 13

Halcon学习笔记

Halcon学习笔记 1、Halcon的自我描述 Program Logic Each program consists of a sequence of HALCON operators The program can be structured into procedures The sequence can be extended by using control operators like if, for, repeat, or while The results of the operators are passed via variables No implicit data passing is applied Input parameters of operators can be variables or expressions Output parameters are always variables HDevelop has no features to design a graphical user interface An HDevelop program is considered as a prototypic solution of the vision part of an application HDevelop is typically not used for the final application 由此可以看出,Halcon的定位是一个类库,有着完整、快速实现函数,同时提供了HDevelop 作为快速开发的图形化(IDE)界面;但是,Halcon程序并不是一个完整的最终应用软件,它没有用户界面,也不提供显示的数据(公用的数据格式)。 Halcon的初学者也应当从参考Halcon的程序入手,熟悉Halcon类库,也即HDevelop-Based Programming;在此基础上,进入ORClass-Oriented Programming。这也是Halcon推荐的开发方式: The vision part is solved with HDevelop,and the application is developed with C++ or Visual Basic。 2、HDevelop界面的学习 通过阅读Halcon的PPT,学到了下面一些有用的信息: 文件——浏览示例,可以看到很多有用的例子; 程序窗体中,可以浏览与编辑Procedues(过程),这个其实就是自定义函数咯~还可以自己修改这些过程,并添加说明文档; F4——将函数语句注释掉;F3——激活; 本地过程(Local Procedue)与外部过程(Externel Procedue) 3、基本语法结构 Halcon的语法结构 类似于Pascal 与Visual Basic,大部分的语句是Halcon提供的算子,此外也包含了少部分的控制语句; 不允许单独声明变量; 提供自动的内存管理(初始化、析构及OverWrite),但句柄则需要显示释放; C++(算子模式) 通过代码导出,以C++为例,默认导出为算子型的语法结构,而非面向对象的;在此模式下,全部函数声明为全局类型,数据类型只需要用Hobject、HTuple两类类型进行声明; C++(面向对象) 可以以面向对象的方式重写代码,也即利用类及类的成员函数; 在这种模式下,控制变量的类型仍未HTuple,而图形数据可以由多种类型,如HImage等;其他语言(略)

串口通讯

串口通信的基本知识概念(232 422 485) 串口通信的基本概念: 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线 Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte) 的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它 很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总 常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如 300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采 样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在 传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现 了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同

网页html代码大全

常用HTML代码解释 一、文字 1.标题文字.......... #=1~6;h1为最大字,h6为最小字 2.字体变化.......... 【1】字体大小.......... #=1~7;数字愈大字也愈大 【2】指定字型.......... 【3】文字颜色.......... rr:表红色(red)色码 gg:表绿色(green)色码 bb:表蓝色(blue)色码 rrggbb也可用6位颜色代码数字 3.显示小字体.......... 4.显示大字体.......... 5.粗体字.......... 6.斜体字.......... 7.打字机字体.......... 8.底线.......... 9.删除线.......... 10.下标字.......... 11.上标字.......... 12.文字闪烁效果.......... 13.换行(也称回车)
14.分段 15.文字的对齐方向

#号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐P.S.

之后的文字都会以所设的对齐方式显示,直到出现另一个

改变其对齐方向,遇到


标签时会自动设回预设的向左对齐。

串口通信的基本知识

串口通信的基本知识 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus 或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII 码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对

GSK218M990MA串口通讯软件说明书

串口通讯软件说明书 串口通讯软件为Windows界面,用于PC端向CNC端发送文件、接收文件,或者进行DNC加工。该软件可运行于Win98、WinMe、WinXP及Win2K。 1 程序启动: 直接运行GSK Comm .exe程序。程序启动后界面如下: 2 功能介紹: 1.文件菜单 文件菜单里包括新建、打开和保存程序文件,打印和打印设置,最近打开的文件列 表等功能。 2.编辑菜单 编辑菜单包括剪切、复制、粘贴、撤消、查找、替换等功能。 3.串口菜单 主要是串口的打开和设置。 4.传输方式菜单 包括DNC传输方式、文件发送传输方式、文件接收传输方式。 5.查看菜单

工具栏和状态栏的显示和隐藏。 6.帮助菜单 本软件的版本信息。 3 软件使用: 1. DNC传输方式 注:需要将系统I/O通道设为0 1) 通过文件菜单的“打开”按钮或者工具栏的打开按钮打开程序文 件,有必要的话可以利用本软件再进一步编辑。 2) 打开并设置好串口,如上图所示,选择适用于GSK218M,系统默认的 DNC波特率是38400,可通过参数重新设置(具体参考218M系统操作 说明书)。218M系统设置为数据位8位,停止位0位,无奇偶校验。 3) 第一和第二步顺序可相互交换,不影响接下来的传输和加工;但接下去的 步骤必须按顺序操作,否则会影响传输和加工效果。 4) CNC端和机床准备好了之后,按下CNC面板上的按钮。 5) 打开传输方式菜单的“DNC”菜单项或者是按下工具栏的 DNC传输按钮,找到程序开始传送数据。 6) 当“发送字节”数停止时,按下CNC面板上的键接收数据,然后 再按下CNC面板上的按钮开始加工。 7) 接下去的可以正常加工的方式进行操作。 8)传输开始后,本程序会显示出传输的情况,包括传输的文件名,传输的字 节数,传输的行数,传输所用的时间和传输的速度(字节/秒);界面如下: 此时除结束传输之外,请不要对本软件进行其它的操作。加工完后按键

storm学习笔记

Storm 对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop 一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm同样还具备容错和分布计算这些特性,这就让Storm可以扩展到不同的机器上进行大批量的数据处理。他同样还有以下的这些特性: ?易于扩展。对于扩展,你只需要添加机器和改变对应的topology(拓扑)设置。Storm 使用Hadoop Zookeeper进行集群协调,这样可以充分的保证大型集群的良好运行。 ?每条信息的处理都可以得到保证。 ?Storm集群管理简易。 ?Storm的容错机能:一旦topology递交,Storm会一直运行它直到topology被废除或者被关闭。而在执行中出现错误时,也会由Storm重新分配任务。 ?尽管通常使用Java,Storm中的topology可以用任何语言设计。 当然为了更好的理解文章,你首先需要安装和设置Storm。需要通过以下几个简单的步骤: ?从Storm官方下载Storm安装文件 ?将bin/directory解压到你的PATH上,并保证bin/storm脚本是可执行的。 Storm组件 Storm集群主要由一个主节点和一群工作节点(worker node)组成,通过Zookeeper进行协调。 主节点: 主节点通常运行一个后台程序—— Nimbus,用于响应分布在集群中的节点,分配任务和监测故障。这个很类似于Hadoop中的Job Tracker。 工作节点: 工作节点同样会运行一个后台程序—— Supervisor,用于收听工作指派并基于要求运行工作进程。每个工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。 Zookeeper

滚动图片制作方法

滚动图片制作方法 代码如下: 代码说明: 1)、direction=right 是移动的方向,可以更改为如下方向。 上:up 下:down 左:right 右:left scrollamount=5 是向下(上、左、右)移动速度,可以调整,一般设置在1-5的范围内比较好. 2)、大家也可以把代码合起来用,设置成上和下对应,或者左右对应的形式。 3)、代码中的图片可以设置成多张,形成连续的滚动效果。 代码如下: 4)、滚动图片制作成功后,可以用定位代码使之定位在博客页面的任意位置,也可同时加入随屏滚动代码,在拉动滚动条的同时,随滚动条的移动而移动,在页面的相对位置不变。 ——定位在页面固定位置 代码如下:

定位坐标RIGHT: 300px和TOP: 100px分别表示距离屏幕右边缘和上边缘的的距离,其具体数值可根据实际需求而定。

文本预览