这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » Rancho 瑞萨单片机开发手记 进程帖(直流电机调速-有图有视频有说明)

共30条 1/3 1 2 3 跳转至

Rancho 瑞萨单片机开发手记 进程帖(直流电机调速-有图有视频有说明)

高工
2012-08-15 11:11:47     打赏
【2012年7月31日】报名申请开发板
【2012年8月第一二周】准备工作  学习瑞萨单片机准备 
【2012年8月15日】
开发板收到 与YRPBRL78G13-Demo连接失败
【2012年8月16日】看文献,上手阶段

各项目实验情况
定时器应用 【2012年8月24日】 05楼
AD应用  【2012年8月28日】  12楼
GPIO中断  【2012年8月25日】  13楼
LED跑马灯  【2012年8月25日】  14楼
RS232  【2012年8月26日】  15楼
蜂鸣器  【2012年8月30日】  20楼
LCD驱动  【2012年9月1日】  21楼
LCD+RTC  【2012年9月2日】  25楼
PWM模块实验直流电机+AD+LCD  【2012年9月4日】  26楼
 串口烧录  【2012年9月3日】  27楼
ucod 移值,流水灯  【2012年9月3日】  28楼
步进电机控制  【2012年9月4日】  29楼
  外接SPI    
 SPI模式SD卡读写    
  EEPROM仿真实现    
 低功耗运行    
     
     
     







关键词: Rancho     瑞萨     单片机     开发     手记     进程     直流    

高工
2012-08-15 11:24:51     打赏
2楼

沙发自己坐着。


高工
2012-08-15 11:27:18     打赏
3楼
改来的快都来齐了

高工
2012-08-17 08:10:31     打赏
4楼
此板做工精致,可就得一个LED,10K可调电阻(估计是做AD实验用),还有就是J3接口,可以用来检测MCU电流,8月14号TI的电机交流会见过一些也是做成这样的,很多测试脚引出,并通过磁珠引出防干扰。焊完排针,点亮LED,可装上光盘的YRPBRL78G13-Demo连接不上。

高工
2012-08-25 16:47:48     打赏
5楼
RL78G13,定时器模块我进程

有8个定时器
看箭头对应的引脚,ch0的P00只能作为输入,P01只能作为输出,而 ch1,ch2,ch3,ch4,ch5,ch6对应的引脚可以两用,同理ch7一样,加了括号只是这个功能用在那个引脚上。
在Applilet3功能设置上可以看到,觉得瑞萨这个有点特别


channel0,channel2,channel4,channel6,的功能比较多,定时作用,外部事件计数,脉冲输入周期检测,脉冲宽度检测,PWM输出,多通道PWM输出等,我觉得脉冲输入周期检测,脉冲宽度检测这两个很好用,刚好愁着频率跟占空比的检测方法,这个内部还集成噪声滤波器,使能就可以。多能PWM输出时,ch0作为周期设定,其它的控制占比,这个可以用来驱动步进电机,8个,刚好作为2相的步进电机驱动器控制,用6个可以驱动交流电机驱动器。至于Interval timer是用于一般的定时用,square wave output,什么方波输出,PWM不是很好的实现,一个定时器,怎输出方波,这个不是很理解,而divider function,分频功能,也不是不理解,事件计数器,很好理解,通过外部上升,下降延来做为事件的触发源,计数,到达设定的次数(在里面有输入窗口)就进入中断,然后做自己想做的事,在下面有个例子。Input pulse interval measurement 是测量脉冲周期,Iput pulse high-/low-level width measurement可以测量脉冲高或低电平的宽度,与前面一除就知道占空比了,最大16M,有待验证,我自己要测的是100K左右,应该可以很好实现。Delay count function这个也不知道用在那比较合适,也是太理解,延时计数功能....PWM output也就是用两个定时器实现PWM,也是跟PWM相似的吧,也没用过,不知道适合用在那。最后一个multi PWM,几路PWM,也好理解。
一般定时中断功能
在Applilet3设计完后,在main函数写上CG_timer.C的
void  main(void)
{
  TAU0_Channel0_Start();//加入的,等于是对定时器的使能吧
 /* Start user code. Do not edit comment generated here */
 while (1U)
 {
  ;
 }
 /* End user code. Do not edit comment generated here */
}

然后在
CG_timer_user.C的中断函数加入自己要实现的功能。LED灯
#pragma vector = INTTM00_vect
__interrupt void MD_INTTM00(void)
{
    P7=~P7;//我加入LED闪烁
    delay(1000);
 /* Start user code. Do not edit comment generated here */
 /* End user code. Do not edit comment generated here */
}
最好一次设置成功,第二次设置,IAR会reload更新,看的是自己写的程序,可关掉后双击打开就会回到原来的设置,关掉后在Project ----Add Exiting Porject打开重新编写,我发现里面的几个文件,可这样太乱了,不知有什么方法可以解决,不改写好的程序,又要更新applilet的设置。

利用两个定时器实现这PWM output,更简单点,设计完后,在main里加入CG_timer.C的
void  main(void)
{
  TAU0_Channel0_Start();//加入的
 /* Start user code. Do not edit comment generated here */
 while (1U)
 {
  ;
 }
 /* End user code. Do not edit comment generated here */
}

输入捕获功能,外部事件计数,我在外部接一个开关,上升延检测,10次LED换一次


这跟定时中断一样的,设置完后,要改的程序也一样,只时中断不是定时本身计数,而是通过外部事件,10次(这可以修改)中断一次。这我也是第一次用到这功能。

至于检测脉冲周期跟脉宽的检测应用,在后面会用到,我要做的就需要检测这个占空比的。

我不理解这个定时器输出比较功能是什么(在项目要求中写到的),知者说说

工程师
2012-08-25 19:58:48     打赏
6楼

LZ 做的很好,不知道你说的“项目要求”指什么?


高工
2012-08-25 20:08:40     打赏
7楼
指的是,这次活动的要求,技术分中的求

菜鸟
2012-08-26 14:51:17     打赏
8楼
楼主~~
咱们自己添加的代码要写在 ,那个注释的之间。否则,一更新code generater 代码就全没了。
/* start code ..
咱们自己的代码
/*end code

提醒一下哟~~

高工
2012-08-26 15:13:42     打赏
9楼
换马甲了~

菜鸟
2012-08-26 15:49:19     打赏
10楼
唉~~
一言难尽啊~~~

共30条 1/3 1 2 3 跳转至

回复

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