打印
[菜农助学交流]

【第三批】基于RL-RTX实时操作系统的呼吸灯

[复制链接]
4383|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xianghou|  楼主 | 2011-10-27 22:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xianghou 于 2011-10-27 22:22 编辑

初始化代码:
#include "NUC1xx.h"
#include "drvsys.h"
#include "drvgpio.h"
#include "drvpwm.h"

static void ClockInit( void )
{
UNLOCKREG();
DrvSYS_SetOscCtrl( E_SYS_XTL12M, ENABLE );
DrvSYS_SelectPLLSource( E_SYS_EXTERNAL_12M );
DrvSYS_Open(48000000);
DrvSYS_SelectSysTickSource( 3 );
}

static void PWMInit( void )
{
S_DRVPWM_TIME_DATA_T sPt;

sPt.u8Mode = DRVPWM_AUTO_RELOAD_MODE;
sPt.u8HighPulseRatio = 1; /* High Pulse peroid : Total Pulse peroid = 20 : 100 */
sPt.i32Inverter = 0;
sPt.u32Frequency = 1000; // Set 1KHz to PWM timer output frequency
/* Select PWM engine clock */
DrvPWM_SelectClockSource(DRVPWM_TIMER7, DRVPWM_EXT_12M);
DrvPWM_Open();
DrvGPIO_InitFunction(E_FUNC_PWM0);
/* Set PWM Timer0 Configuration */
DrvPWM_SetTimerClk(DRVPWM_TIMER0, &sPt);
DrvPWM_SetTimerIO(DRVPWM_TIMER0, 1);
DrvPWM_Enable(DRVPWM_TIMER0, 1);

}

void SystemInit( void )
{
ClockInit();
PWMInit();
}
程序代码

#include "NUC1xx.h"
#include <rtl.h>
#include "drvgpio.h"
#include "bsp.h"
#include "drvpwm.h"
__task void ledtask( void )
{
for( ;; )
{  
  S_DRVPWM_TIME_DATA_T sPt;  
  static unsigned char sPulseRatio, sDir;
  
  if(sDir == 0)
  {
   sPulseRatio++;
  }
  else
  {
   sPulseRatio--;
  }     
  sPt.u8Mode = DRVPWM_AUTO_RELOAD_MODE;
  sPt.u8HighPulseRatio = sPulseRatio;   
  sPt.i32Inverter = 0;
  sPt.u32Frequency = 1000;   // Set 1KHz to PWM timer output frequency
  DrvPWM_SetTimerClk(DRVPWM_TIMER0, &sPt);   
  if(sPulseRatio == 100)
  {
   sDir = 1;
   os_dly_wait( 200 );
  }
  else if(sPulseRatio == 1)
  {
   sDir = 0;
  }
  os_dly_wait( 5 );
}
}
__task void taskinit( void )
{
os_tsk_create(ledtask, 1);  //创建任务
os_tsk_delete_self();   //删除自己
for( ;; )
{
}
}

int main( void )
{
os_sys_init( taskinit ); //启动任务调度器
while( 1 )
{
}
}

呼吸灯.rar

256.7 KB

相关帖子

沙发
dong_abc| | 2011-10-29 15:27 | 只看该作者
继续顶RTX,曾经在51上弄了一下。

使用特权

评论回复
板凳
weshiluwei6| | 2011-10-30 13:24 | 只看该作者
继续RTX啊

使用特权

评论回复
地板
hotpower| | 2011-11-1 14:26 | 只看该作者
俺也比较喜欢RTX,楼主有时间教俺。

使用特权

评论回复
5
rocket432| | 2012-6-30 17:05 | 只看该作者
楼主你的这个系统 稍微修改下,多加了几个任务怎么都跑不起来了

使用特权

评论回复
6
ceflsh| | 2013-8-4 19:53 | 只看该作者
学习学习,谢谢。

使用特权

评论回复
7
ilee123| | 2013-8-13 23:09 | 只看该作者
:victory:

使用特权

评论回复
8
wangch_sh| | 2013-8-21 14:34 | 只看该作者
extern void      rt_dly_wait (U16 delay_time);
请问这个函数在哪定义的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

94

帖子

2

粉丝