论坛

龙12 SCI

开始于 nishanth_r 2010年9月24日
大家好,
我正在使用Dragon12开发板为Codewarrior运行的项目 码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?

谢谢,
尼什

过度期

以可显示的ASCII格式拍摄数据,各个值之间用逗号分隔 行末尾是CR和LF(.csv格式)。扔进OpenOffice 电子表格,然后您就走了。

A
在2010年9月23日晚上10:12,nishanth_r写道:

> 大家好,
>我正在使用Dragon12开发板为Codewarrior运行的项目 码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?
>
> 谢谢,
> 尼什



如何使用两个DAC:使用一些DAC绘制位置,误差等
录音机?

问候,
安德斯

> - - -原始信息 - - -
>发件人:6 ... [mailto:6 ...]代表
> nishanth_r
>发送:2010年9月24日,星期五,上午6:12
> To: 6...
>主题:[68HC12] 龙12 SCI
>
> 大家好,
>我正在使用运行Codewarrior的Dragon12开发板进行项目
对于
>代码。我正在尝试获取位置控制 arm connected to a
发动机。一世
>被管理以完成此操作,但它有点振荡并且 so my professor
建议的
>我分析位置值以获得适当的 比例控制值。
我是
>试图使用SCI获取我的位置错误的输出 values so i can plot
他们。
>有人可以建议一个好的方法来 连续输出
价值观
>对我的comp上的文本文件说或作为数组列表说 hyperterminal?
>
> 谢谢,
> 尼什
>
>
嘿,安德烈,
非常感谢您的答复。我是整个概念的新手 微控制器编程,所以请您详细说明如何做 那...。现在,我还没有测试将数据发送到超级终端中 连续流(不知道它是否行得通,让sci发送和接收 到目前为止,只有115k)任何代码片段都将不胜感激:)

再次感谢,
尼什

---在6 ...中,Andrei Chichak写道:
>
>在超期中以可显示的方式拍摄数据 ASCII值,各个值之间用逗号分隔,并且末尾有CR和LF 行(.csv格式)。将其扔到OpenOffice电子表格中,然后就可以使用了。
>
> A
>在2010年9月23日晚上10:12,nishanth_r写道:
>
> > 大家好,
> >我正在使用Dragon12开发板为Codewarrior运行的项目 码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?
> >
> > 谢谢,
> > 尼什
> >
> >
>
>

嗨安德烈,
看起来很合理,但是那对我来说太复杂了:)我希望 更简单的事情,例如获取数据并使用matlab绘制步骤 响应并使用zn阶跃响应获取比例控制值:)我是 熟悉:)

尼什

---在6 ...中,《安德斯·弗里伯格》写道:
>
>如何使用两个DAC:使用一些DAC绘制位置,误差等
> 录音机?
>
> 问候,
> 安德斯
>
> > - - -原始信息 - - -
> >发件人:6 ... [mailto:6 ...]代表
> > nishanth_r
> >发送:2010年9月24日,星期五,上午6:12
> > To: 6...
> >主题:[68HC12] 龙12 SCI
> >
> > 大家好,
> >我正在使用运行Codewarrior的Dragon12开发板进行项目
> 对于
> >代码。我试图获得连接到一个手臂的位置控制
> 发动机。一世
> >为了做到这一点而努力,但它有点振荡,所以我的教授
> 建议的
> >我分析位置值以获得适当的比例控制值。
> 我是
> >试图使用SCI获取我的位置误差值的输出,以便我可以绘图
> 他们。
> >有人可以建议一种持续输出的好方法吗
> 价值观
> >说我的comp上的文本文件还是超级终端中的数组列表?
> >
> > 谢谢,
> > 尼什
> >
> >
> >
> >
> >
> >
您有正在工作的SCI吗?您可以使用putc之类的字符发送字符吗 还是printf或您正在加载发送寄存器?

您说您有以115kbaud传输和接收的SCI,请使用 printf(“%d,%d,%d,%d \ r \ n”,adcval1,adcval2,adcval3); 。捕获数据 hyperterm,使问题发生,停止捕获,处理数据文件 您最喜欢的电子表格。

我显然缺少了一些东西。

A
在2010年9月24日上午8:10,nishanth_r写道:

> 嘿,安德烈,
>非常感谢您的答复。我是整个微控制器的新手 编程,所以请您详细说明如何执行此操作。...现在,我在 尚未测试以连续流将数据发送到超级终端(不知道是否 它将起作用,到目前为止,已使sci以115k的速率发送和接收) 的代码将不胜感激:)
>
> 再次感谢,
> 尼什
>
>---在6 ...中,Andrei Chichak写道:
> >
> > 过度期
> >
> >以可显示的ASCII格式拍摄数据,并使用逗号分隔 值以及行尾的CR和LF(.csv格式)。扔进去 使用OpenOffice电子表格即可。
> >
> > A
> >
> >
> >在2010年9月23日晚上10:12,nishanth_r写道:
> >
> > > 大家好,
> > >我正在使用Dragon12开发板为Codewarrior运行的项目 码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?
> > >
> > > 谢谢,
> > > 尼什
> > >
> > >


嗨安德烈,
到目前为止,这是我的代码...
/ *将系统时钟频率设置为_BUSCLOCK MHz(24或4)* /
PLL_Init();

/ *激活ADC,启用ADC中断* /
ADC_Init();

/ *初始化PWM单元* /
PWM_Init();

SCI1_Init();

//偏置= ADC_Read(7);

/ *永远* /
而(flag == 0){
v_set = ADC_Read(6); //通道AN06,所需位置
// v_set = 500;
如果(v_set< 100){
v_set = 100;
} //万一
如果(v_set> 916){
v_set = 916;
} //设置输入值的范围

偏差= ADC_Read(7); //通道AN07,反馈信号
如果(偏见< 496){
偏差= 496;
}
v = 15 *(偏差-496); //缩小到范围0:0.5

PosError = 10 *(v_set-v);

//确定信号的极性
如果(PosError< 0){
甲状旁腺| = 0x08; //在端口H上切换通道3
PosError = -1 * PosError;
}其他{
甲状旁腺&= ~0x08;
}

//超出数值范围,设置最大PWM信号
如果(PosError> 900){
PosError = 1000;
}
SCI1_OutChar(PosError); //输出位置值
//检查循环结束
如果(PosError== 0){
标志= 1;
}
PWM_SetDuty(PosError);
}
} //结束main

而我的SCI是:
无效SCI1_Init(){

SCI1BDH = 0; // br = MCLK /(16 * baudRate)
SCI1BDH = 0;
SCI1BDL;
SCI1CR1 = 0;
SCI1CR2 = 0x0C;

void SCI1_OutChar(char数据){

而((SCI1SR1& TDRE) == 0){};
SCI1DRL =数据;

}
}

现在,我还没有测试SCI部分。您有任何问题吗?我的时钟正在运行 在24Khz。我在哪里必须实现printf函数?我看你有 给定多个值,但是我的发送的值一遍又一遍。 Thanks.

尼什

---在6 ...中,Andrei Chichak写道:
>
>您有正在工作的SCI吗?您可以使用类似的方式发送字符吗 putc或printf还是要加载发送寄存器?
>
>您说您有以115kbaud传输和接收的SCI,请使用 printf(“%d,%d,%d,%d \ r \ n”,adcval1,adcval2,adcval3); 。捕获数据 hyperterm,使问题发生,停止捕获,处理数据文件 您最喜欢的电子表格。
>
>我显然缺少了一些东西。
>
> A
>在2010年9月24日上午8:10,nishanth_r写道:
>
> > 嘿,安德烈,
> >非常感谢您的答复。我是整个微控制器的新手 编程,所以请您详细说明如何执行此操作。...现在,我在 尚未测试以连续流将数据发送到超级终端(不知道是否 它将起作用,到目前为止,已使sci以115k的速率发送和接收) 的代码将不胜感激:)
> >
> > 再次感谢,
> > 尼什
> >
> >---在6 ...中,Andrei Chichak写道:
> > >
> > > 过度期
> > >
> > >以可显示的ASCII格式拍摄数据,并使用逗号分隔 值以及行尾的CR和LF(.csv格式)。扔进去 使用OpenOffice电子表格即可。
> > >
> > > A
> > >
> > >
> > >在2010年9月23日晚上10:12,nishanth_r写道:
> > >
> > > > 大家好,
> > > >我正在使用Dragon12开发板运行Codewarrior的项目 代码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?
> > > >
> > > > 谢谢,
> > > > 尼什
> > > >
> > > >
>
>

你好,我们又见面了,
抱歉这样的垃圾邮件,只是想报告我设法获得 该代码有效,outchar(尽管我实际上意识到它的outdec)我会 将其写入文本文件,然后从中选取值。再次感谢大家 your help!!!

我一直在尝试解决另一个问题,将不胜感激 input:
我用于电机反馈的电位器实际上是一个增量 编码器。我只需要关闭10个中的1个,所以我需要制作 与其当前位置无关。所以我用了这个:bias = ADC_Read(7);之前 循环的开始以获得初始读数。但是当我运行程序时 循环开始后,ADC将不会再次读取该值。我没用 中断,只是轮询(这意味着它不会读取ADC(6))有关 this?

再次感谢,
尼什

---在6 ...中,“ nishanth_r”写道:
>
> 嗨安德烈,
>到目前为止,这是我的代码...
>/ *将系统时钟频率设置为_BUSCLOCK MHz(24或4)* /
> PLL_Init();
>
>/ *激活ADC,启用ADC中断* /
> ADC_Init();
>
>/ *初始化PWM单元* /
> PWM_Init();
>
> SCI1_Init();
>
>偏差= ADC_Read(7);
>
> / *永远* /
>而(flag == 0){
>v_set = ADC_Read(6); //通道AN06,所需位置
> // v_set = 500;
> 如果(v_set< 100){
> v_set = 100;
> } //万一
> 如果(v_set> 916){
> v_set = 916;
>} //设置输入值的范围
>
>偏差= ADC_Read(7); //通道AN07,反馈信号
> 如果(偏见< 496){
> 偏差= 496;
> }
>v = 15 *(偏差-496); //缩小到范围0:0.5
>
>PosError = 10 *(v_set-v);
>
>//确定信号的极性
> 如果(PosError< 0){
>PTH | = 0x08; //在端口H上切换通道3
>PosError = -1 * PosError;
> }其他{
> 甲状旁腺&= ~0x08;
> }
>
>//超出数值范围,设置最大PWM信号
> 如果(PosError> 900){
>PosError = 1000;
> }
>SCI1_OutChar(PosError); //输出位置值
>
> 如果(PosError== 0){
> 标志= 1;
> }
>PWM_SetDuty(PosError);
> }
> } //结束main
>
> 而我的SCI是:
> 无效SCI1_Init(){
>
>SCI1BDH = 0; // br = MCLK /(16 * baudRate)
> SCI1BDH = 0;
> SCI1BDL;
> SCI1CR1 = 0;
> SCI1CR2 = 0x0C;
>
>void SCI1_OutChar(char数据){
>
> 而((SCI1SR1& TDRE) == 0){};
> SCI1DRL =数据;
>
> }
> }
>
>现在,我还没有测试SCI部分。您有任何问题吗?我的时钟是 以24Khz运行我在哪里必须实现printf函数?我看见你 给出了多个值,但是我的不断发送相同的值。 Thanks.
>
> 尼什
>
>---在6 ...中,Andrei Chichak写道:
> >
> >您有正在工作的SCI吗?您可以使用类似的方式发送字符吗 putc或printf还是要加载发送寄存器?
> >
> >您说您有以115kbaud传输和接收的SCI,请使用 printf(“%d,%d,%d,%d \ r \ n”,adcval1,adcval2,adcval3); 。捕获数据 hyperterm,使问题发生,停止捕获,处理数据文件 您最喜欢的电子表格。
> >
> >我显然缺少了一些东西。
> >
> > A
> >
> >
> >在2010年9月24日上午8:10,nishanth_r写道:
> >
> > > 嘿,安德烈,
> > >非常感谢您的答复。我是整个概念的新手 微控制器编程,所以请您详细说明如何做 那...。现在,我还没有测试将数据发送到超级终端中 连续流(不知道它是否行得通,让sci发送和接收 到目前为止,只有115k)任何代码片段都将不胜感激:)
> > >
> > > 再次感谢,
> > > 尼什
> > >
> > >---在6 ...中,Andrei Chichak写道:
> > > >
> > > > 过度期
> > > >
> > > >以可显示的ASCII格式拍摄数据,并使用逗号分隔 值以及行尾的CR和LF(.csv格式)。扔进去 使用OpenOffice电子表格即可。
> > > >
> > > > A
> > > >
> > > >
> > > >在2010年9月23日晚上10:12,nishanth_r写道:
> > > >
> > > > > 大家好,
> > > > >我正在使用Dragon12开发板运行Codewarrior的项目 代码。我试图获取连接到电动机的手臂的位置控制。一世 为了完成这个任务而努力,但是它有点振荡,所以我的教授建议我 分析位置值以获得适当的比例控制值。我是 他们。 有人可以建议一种持续输出值的好方法吗? 到我的comp上的文本文件还是超级终端中的数组列表?
> > > > >
> > > > > 谢谢,
> > > > > 尼什
> > > > >
> > > > >
> >
> >
> >
>