论坛

bx-24的9600 Hz振荡器?

开始于 溢出航空航天 2007年1月23日
您好,有人可以告诉我制造9600 Hz的最简单方法是什么
bx24的振荡器?

内置计时器显然无法做到这一点。也许我可以操纵com3
如果我将其设置为19200,则会执行此操作。但是com3协议是否包括
一个起点?

嗯...
谢谢,路易斯
> ... 9600Hz...

尝试:

子Square9600onPin27()
单个引脚const F = 9600.0'9600Hz引脚27
尽可能长的lTCount
调用putpin(27,1)'init 销 27 high
lTCount = clng(0.5 * 7372800.0 / F)
register.OCR1AH = cbyte(lTCount \ 256)'设置匹配计数
register.OCR1AL = cbyte(lTCount mod 256)
寄存器.TCCR1A = bx0001_0000'切换OC1b,引脚27
寄存器.TCCR1B = bx0000_1001'clr,xtal / 1
结束子

ATmega8535处理器文档中介绍了计时器。

您应该能够使用引脚26(Timer1的OC1a)和引脚执行相同的操作
25(来自定时器2的OC2)。请记住,计时器用于支持
一些功能。例如,COM3需要Timer2,因此您不能使用引脚25
如果您在任何引脚上使用COM3,则将其作为定时器输出,并且需要使用Timer1
PulseIn等。
汤姆
谢谢你,汤姆,作例行的事。这真的很有帮助。我就是做不到
弄清楚如何配置TC。
计划是将引脚25设置为振荡,然后将其连接至引脚17,然后
使用移出功能在引脚20上移出一系列位。
像这样:

昏暗x字节
呼叫PutPin(17,bxOutputHigh)
呼叫Sub Square9600onPin25()
致电ShiftOut(20,17,8,x)

问题是,我必须在电线上放30位,而移出只做8
一次。我要检查atmel文档,看看我是否可以直接
对SPI编程以执行我想要的操作。

麦克风

>子Square9600onPin27()
>单个引脚const F = 9600.0'9600Hz引脚27
>尽可能长的lTCount
>调用putpin(27,1)'init 销 27 high
>lTCount = clng(0.5 * 7372800.0 / F)
>register.OCR1AH = cbyte(lTCount \ 256)'设置匹配计数
>register.OCR1AL = cbyte(lTCount mod 256)
>寄存器.TCCR1A = bx0001_0000'切换OC1b,引脚27
>寄存器.TCCR1B = bx0000_1001'clr,xtal / 1
> 结束子
>
>ATmega8535处理器文档中介绍了计时器。
>
>您应该能够使用引脚26(Timer1的OC1a)和

>25(来自定时器2的OC2)。请记住,计时器是 used to 支持
>一些功能。例如,COM3需要Timer2,因此您不能使用
销 25
>如果您在任何引脚上使用COM3,则作为定时器输出,并且 Timer1 is 需要
> PulseIn等。
> 汤姆
>
你好迈克,
这可能对您有用:

32位串行数据缓冲器IC:RSB509b
这是数据表: http://www.protean-logic.com/PDFs/Rsb509b2.pdf

数据表中有连接图以及BS2代码示例
(您可以轻松地将其转换为BX芯片。在该示例中,
在您的设备中,将RSB509B显示为MAX232到BS2的接收缓冲器
如果您将其反转以缓冲30位,然后使用信号
uC上的行以将数据从缓冲区发送到设备。
缓冲区以本机9600bps的速度运行,并且为TTL电平。

我不确定您要向...发送数据的大多数设备
在接收缓冲区已满后会丢弃多余的位,所以
您只需要在DWORD值上移位两次(LSL,LSL)
然后偷看字节进行传输...

希望有帮助!
J

---在...中,“ 溢出航空航天”
写道:
>
>谢谢你,汤姆,作例行的事。这真的很有帮助。我就是做不到
>弄清楚如何配置TC。
>计划是将引脚25振荡,然后将其连接到引脚17,
然后
>使用移出功能来移出一系列 bits on 销 20.
> 像这样:
>
> 昏暗x字节
>呼叫PutPin(17,bxOutputHigh)
>呼叫Sub Square9600onPin25()
>致电ShiftOut(20,17,8,x)
>
>问题是,我必须在电线上放30位,而移出只
8
>一次。我要检查atmel文档,看看我是否 can directly
>对SPI编程以执行我想要的操作。
>
> 麦克风
>
> >子Square9600onPin27()
> >单个引脚const F = 9600.0'9600Hz引脚27
> >尽可能长的lTCount
> >调用putpin(27,1)'init 销 27 high
> >lTCount = clng(0.5 * 7372800.0 / F)
> >register.OCR1AH = cbyte(lTCount \ 256)'设置匹配计数
> >register.OCR1AL = cbyte(lTCount mod 256)
> >寄存器.TCCR1A = bx0001_0000'切换OC1b,引脚27
> >寄存器.TCCR1B = bx0000_1001'clr,xtal / 1
> > 结束子
> >
> >ATmega8535处理器文档中介绍了计时器。
> >
> >您应该能够使用引脚26(Timer1的OC1a)执行相同的操作

> 销
> >25(来自定时器2的OC2)。请记住,计时器是用来
支持
> >一些功能。例如,COM3需要Timer2,因此 you can't use
> 销 25
> >如果在任何引脚上使用COM3,则Timer1将作为定时器输出
需要
> > PulseIn等。
> >
> >
> > 汤姆
>
thanx,Jay,这很有帮助。我不知道这样的设备
存在。看起来好像很好用,尽管我需要
检查他们的文档以确保。
在这一点上,我还没有完全确定要与之交谈的协议
我的pda,但我确实知道我必须在
为了匹配它。我仍在研究分线盒,因此我可以确定范围
出来。它的很多工作。
现在,很高兴知道,如果bx无法独自完成,我将拥有
一种相对简单的制造转换器的方法。
在此期间,我正在检查atmel文档,以查看是否可以
操作bx中的SPI寄存器以执行我想要的操作。
无论哪种方式,现在我知道我能完成。

麦克风

>
> 你好迈克,
>这可能对您有用:
>
>32位串行数据缓冲器IC:RSB509b
>这是数据表: http://www.protean-logic.com/PDFs/Rsb509b2.pdf
>
>数据表中有连接图以及BS2代码示例
>(您可以轻松地将其转换为BX芯片。在该示例中,
>在您的设备中,将RSB509B显示为MAX232到BS2的接收缓冲器
>如果您将其反转以缓冲30位,然后使用信号
>uC上的行以将数据从缓冲区发送到设备。
>缓冲区以本机9600bps的速度运行,并且为TTL电平。
>
>我不确定您要向...发送数据的大多数设备
>在接收缓冲区已满后会丢弃多余的位,所以
>您只需要在DWORD值上移位两次(LSL,LSL)
>然后偷看字节进行传输...
>
> 希望有帮助!
> J