main.c

来自「射频芯片nRF905例程」· C语言 代码 · 共 93 行

C
93
字号
#include <ARTX.h>
#include <LPC213x.H>    // Philips Peripheral Registers
#include <LPC213xDEF.H>	//ARM菜鸟HotPower创建定义文件(新版)
#include <main.h>
#include <string.h>
#include <stdio.h>

#pragma NOINIT
#pragma save
#pragma optimize (7)


volatile unsigned int SystemRamTest;//RAM掉电测试变量

OS_TID Main_Task, Key_Task, Led_Task, Lednum_Task;
OS_TID Beep_Task, Lcd_Task, Adc_Task, Pwm_Task;

void MainTask (void) __task;
void KeyTask (void) __task;
void LcdTask (void) __task;


void SystemInit(void);
void KeyInit(void);
void LcdInit(void);


void SystemInit(void) {
  if (SystemRamTest != 0x5555aaaa) {
  }
}

void KeyInit(void) {
  if (SystemRamTest != 0x5555aaaa) {
  }
}

void LcdInit(void) {
  if (SystemRamTest != 0x5555aaaa) {
  }
}


void MainTask (void) __task {
  SystemInit();
  Main_Task = os_tsk_self ();
  Key_Task = os_tsk_create (KeyTask, 1);//创建KeyTask任务及级别
  Lcd_Task = os_tsk_create (LcdTask, 1);//创建LcdTask任务及级别
  SystemRamTest = 0x5555aaaa;
  for (;;) {
    os_evt_set (0x0001, Key_Task);//
    
    os_tsk_pass();   
  }
}

void KeyTask (void) __task {
OS_RESULT result;
unsigned int i;	
  KeyInit();
  for (;;) {
    result = os_evt_wait_or(0xffff, 0xffff);//等待LedTask任务事件发生
	if(result == OS_R_EVT) {
	  i = os_evt_get();
	  switch(i) {
	    case 0x0001:  ;//IOCLR1 = (1 << LED1);//点亮LED1
		     break;
	  }
	}
    os_tsk_pass();   
  }
}

void LcdTask (void) __task {
OS_RESULT result;
//unsigned int i;	
  LcdInit();
  for (;;) {
    result = os_evt_wait_or(0xffff, 0xffff);//等待LcdTask任务事件发生
	if(result == OS_R_EVT) {
	}
//    os_dly_wait (2);//延时20mS
    os_tsk_pass();   
  }
}


void main (void) {
volatile unsigned int start;
  for (start = 0; start < 1000000; start ++);
  os_sys_init (MainTask);//启动ARTX,此函数并不返回main()
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?