打印
[Cortex-M0技术交流]

偷学菜农LOOK例子(IAR)

[复制链接]
2657|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CC2530|  楼主 | 2011-5-28 12:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IAR, LED, pi, gp, IO
菜农代码:

// 任务类 task_led_t 的例程
void task_led1_t::routine()
{
// TODO: 在此编写 task_led_t 例程的内容
uint32_t data = ~0b1000;
while (true) {
// TODO: 在此编写 task_led_t 例程的内容
data &= 0b111000;
data <<= 1;
data += data >> 3;
GPIOAs.DMASK.Regs = ~0b111000;
GPIOAs.DOUT.Regs = data;
delay(LOOK_TICKS_PER_SEC / 2);
}
}
// 任务类 task_led_t 的例程
void task_led2_t::routine()
{
// TODO: 在此编写 task_led_t 例程的内容
uint32_t data = 0b100;
while (true) {
// TODO: 在此编写 task_led_t 例程的内容
GPIOAs.DMASK.Regs = ~0b100;
GPIOAs.DOUT.Regs = data;
data ^= 0b100;
delay(LOOK_TICKS_PER_SEC / 10);
}
}


#include "proj_incs.h"

TSK_Implement(0)    //任务0
{
    __enable_interrupt();  
   
    uint32 data=~_BV(3);
            
    while(1)
   {   
          data &= _BV(3)|_BV(4)|_BV(5);
          data <<= 1;
          data += data >> 3;
          GPIOA->DMASK= ~(_BV(3)|_BV(4)|_BV(5));
          GPIOA->DOUT=data;
      
          TSK_Delay(HS_TICKS_PER_SEC/2);      
   }
}

TSK_Implement(1)    //任务1
{
    __enable_interrupt();  
   
    uint32 data=_BV(2);
            
    while(1)
   {   
          GPIOA->DMASK= ~_BV(2);
          GPIOA->DOUT=data;
          data^=_BV(2);
         
          TSK_Delay(HS_TICKS_PER_SEC/10);      
   }
}

int main()
{  
    __disable_interrupt();                   //任务开始调度前,要关中断
   // while(1);
   
     LED_1.MakeOutput();     //LED_1设置为输出
     LED_2.MakeOutput();     //LED_2设置为输出
     LED_3.MakeOutput();     //LED_3设置为输出
     LED_4.MakeOutput();     //LED_4设置为输出
   
     HS_HeapInit();               //初始化堆   
     SysTick_Config(SystemCoreClock/HS_TICKS_PER_SEC);           //系统节拍初始化
              
     TSK_Init(0,0,200);      //任务0,优先级0,堆栈200
     TSK_Init(1,0,200);      //任务1,优先级0,堆栈200
     
     TSK_Start();          //任务开始调度(开始调度由空闲任务主函数切换到用户任务)

     __enable_interrupt();   //空闲任务主函数开中断,空闲任务主函数也有自己单独的总中断标志位
        
     while(1)              //任务空闲时,运行这里
     {                    
          //SleepIdle();       //空闲休眠   
     }
}

相关帖子

沙发
hotpower| | 2011-5-28 13:03 | 只看该作者
原来是你自己的多线程

使用特权

评论回复
板凳
ichuangj| | 2011-5-30 11:25 | 只看该作者
不是C++啊

使用特权

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

本版积分规则

个人签名:该死的ST,还不赶快出STM8L小FLASH片子

0

主题

262

帖子

1

粉丝