论坛» 活动中心» 合作大赛

终于做出来了!给大家共享一下程序流程

菜鸟
2009-09-03 16:36 1楼

使用UART对MMC进行寄存器设置,控制直流电机的程序流程。
可以独立控制3个通道的直流电机。

程序流程:
1) MCU初始化
2) 延时一段时间,等待硬件初始化(可以是毫秒级)
3) 通过UART发送设置MMC寄存器的指令。
例如,设置1通道,发送控制指令50,并等待2mS,然后再发送地址为00的寄存器的值C0,再等待2ms,然后再发其他需要设置的寄存器的值。
4) 设置OK,电机开始转动啦!


感谢的话就不用多说了,祝大家开发顺利,哈哈。

void delay(int t)
{
while(t--);
}

void main( void )
{

unsigned char ch1mode[]={0x50};
unsigned char ch2mode[]={0x54};
unsigned char ch3mode[]={0x58};

unsigned char ch1duty[]={0x53};
unsigned char ch2duty[]={0x57};
unsigned char ch3duty[]={0x5B};


unsigned char ch1modevalue[]={0xC0};
unsigned char ch2modevalue[]={0xC0};
unsigned char ch3modevalue[]={0xC0};

unsigned char ch1dutyvalue[]={0x55};
unsigned char ch2dutyvalue[]={0x45};
unsigned char ch3dutyvalue[]={0x45};


unsigned char read[]={0xA7};

UART0_Start();

delay(2000);//2ms

UART0_SendData(ch1duty,1) ;
delay(2000);
UART0_SendData(ch1dutyvalue,1) ;
delay(2000);
UART0_SendData(ch1mode,1) ;
delay(2000);
UART0_SendData(ch1modevalue,1) ;
delay(2000);



UART0_SendData(ch2duty,1) ;
delay(2000);
UART0_SendData(ch2dutyvalue,1) ;
delay(6000);
UART0_SendData(ch2mode,1) ;
delay(2000);
UART0_SendData(ch2modevalue,1) ;
delay(2000);


UART0_SendData(ch3duty,1) ;
delay(2000);
UART0_SendData(ch3dutyvalue,1) ;
delay(2000);
UART0_SendData(ch3mode,1) ;
delay(2000);
UART0_SendData(ch3modevalue,1) ;
delay(2000);


while (1) {
UART0_SendData(read,1) ;
delay(2000);
}
}

菜鸟
2009-09-03 16:43 2楼

呵呵··不错 鼓励 鼓励。但是确实不知道NEC提供的这个MMC1有什么意义。。。呵呵。多的不说。先祝贺+

菜鸟
2009-09-03 17:43 3楼

恭喜了,我们的还没有出来呢,好郁闷啊

院士
2009-09-03 17:56 4楼
恭喜~~~~~~~
菜鸟
2009-09-03 18:13 5楼
实际效果好么?我 的是很差啊!PWM很是不稳!
菜鸟
2009-09-05 00:18 6楼

恭喜你啊恭喜你

菜鸟
2009-09-05 02:53 7楼

恭喜发财啊!

菜鸟
2009-09-08 15:06 8楼
看看啊
菜鸟
2009-10-04 15:35 9楼
还可以 我试试看看
菜鸟
2009-12-22 13:10 10楼

路过 。。。。。。

共13条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]