2012-03-26 81 views

回答

0

我不能完全肯定我理解的问题是什么。

你不熟悉编程并行端口吗?

我的记忆很朦胧,但iirc很简单。这是一个“愚蠢”的界面,所以你只需要写信给它。

如果您在linux下运行,那么有一些关于它的巨大的资源:

Linux Device Drivers: Chapter 9: An Overview of the Parallel port - 会谈一些关于并行端口编程和继续谈论它编写设备驱动程序。我认为你的应用程序有点矫枉过正,但整本书很有趣,而且很有启发性。 (基本上你可以写入/ dev/port,或者包含asm/io.h并使用inb()和outb()(我在一段时间内没有这样做,但是我确定如果你碰到一个特定的问题会有多种答案,一旦你把它缩小到某个具体的东西)

如果你是在Windows或Mac上,那么ID仍然建议阅读上面所以你知道你正在尝试做什么,在我看来,它们很简单,然后搜索windows/mac等价物。

现在,我认为问题的关键是,你写什么端口?

对于Cyber​​ 310,您拥有引脚布局,但如果您浏览已列出的网站,似乎会出现多种不同的引脚布局,如果我们关注anf.nildram.co.uk here,我们可以找到一些PIC组件这将向我们展示如何旋转底座。

我在今天之前从未接触过PIC组件,但是从internet和评论中获得了一些帮助,我认为我们可以翻译它正在尝试做的事情(剪掉相关部分,因为它大部分是时序和循环)

; 6: Symbol prf = PORTA.0 
;  The address of 'prf' is 0x5,0 
; 7: Symbol strobe = PORTA.1 
;  The address of 'strobe' is 0x5,1 
; 8: Symbol base = PORTB.0 
;  The address of 'base' is 0x6,0 
; 9: Symbol shoulder = PORTB.1 
;  The address of 'shoulder' is 0x6,1 
... 
; 16: main: 
L0001: 
; 17: base = 1 
BSF 0x06,0   // set bit 0 at 0x06 to 1 essentially set base bit to 1 
; 18: strobe = 1 
BSF 0x05,1   // set strobe bit to 1 
; 19: strobe = 0 
BCF 0x05,1   // set strobe bit to 0 
; 20: While a <> 730 // now we loop 729 more times 

所以它的出现,从我的天真角度来看,旋转,你需要设定电机位臂(从您的引出线抓住),然后设置和清除频闪。

让我知道如果我完全脱离基地,这是一个迷人的项目。

+0

http://pepijndevos.nl/2012/04/07/cyber-310.html :) – Pepijn 2012-04-27 11:44:00

0

克里斯是正确的并行端口是一个愚蠢的接口。并行端口有一个地址,您可以输出一个8位二进制数字来匹配数字输出的位置。

我发现这是使用C#编程并行端口的一个很好的例子。 http://www.codeproject.com/Articles/4981/I-O-Ports-Uncensored-1-Controlling-LEDs-Light-Emit

将您的项目与他的例子相匹配。 C0是频闪。然后你的数字输出从左到右匹配他的D0-​​D6。

看起来像一个非常有趣的项目。玩的开心。