⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 LPC2366低功耗测试代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "stdlib.h"
INT8U err=0;

extern void RTCIni(void);

#define LEDCON  0x03<<4|0x03<<25   //LED1-4的I/O口设置(P0.9,P0.8,P0.7,P0.6控制四个LED,低电平点亮)
OS_EVENT *sem;

#define	Task0StkLengh	64			//Define the Task0 stack length 定义用户任务0的堆栈长度
#define	Task1StkLengh	64			//Define the Task0 stack length 定义用户任务0的堆栈长度
 
OS_STK	Task0Stk [Task0StkLengh];		//Define the Task0 stack 定义用户任务0的堆栈
OS_STK	Task1Stk [Task1StkLengh];		//Define the Task1 stack 定义用户任务0的堆栈

void 	Task0(void *pdata);			//Task0 任务0
void 	Task1(void *pdata);			//Task1 任务1
void    DelayNS(uint32 dly);



        int main (void)
{
	OSInit ();																										
	OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], 4);		
	OSStart ();
	return 0;															
}
/*********************************************************************************************************
**                            Task0 任务0
********************************************************************************************************/

		void Task0	(void *pdata)
{
	pdata = pdata;
	
	OSTaskCreate (Task1,(void *)0, &Task1Stk[Task1StkLengh - 1], 5);	
	
	TargetInit ();

	
	PINSEL0  = 0x00000000;
	PINSEL3  = (0x00<<20)|(0<<28);       //使能脚设置为IO
	//PINSEL4  = 0x01<<22;              //外部中断1
	IO0DIR   = LEDCON;             //设置LED口为输出
	IO1DIR   = (0xff<<20)|1<<28;
	IO1CLR   = 1<<28;             //控制5v_p
	IO1CLR   = 0xff<<20;             //关闭所有的使能
	
	
	RTC_ALYEAR = 2007;                                       //初始化年,月,日
	RTC_ALMON= 12;
	RTC_ALDOM  = 29;
	RTC_ALHOUR=10;
	RTC_ALMIN=0;
	RTC_ALSEC=3;
	
	//RTC_CIIR = 0x01;                                       //是指秒值得增量产生一次中断?
	//RTC_AMR = 0XFE;
	
	
	sem = OSMboxCreate((void *)0);	
		
	OSTaskSuspend(4);  
	
}

void Task1	(void *pdata)

{
uint32 count=1;
uint32 i=3;
pdata  = pdata;
	
RTCIni();

IO0SET  =0XFFFFFFFF;
PCONP  =1<<9;
//PCONP  =0;    				//关闭外围所有设备

while(1)
  {
   OSMboxPend(sem,0, &err);
   RTC_ALSEC=(3+i);
   switch(count)
   {
   case 1:
     IO0CLR=1<<4;
    // DelayNS(100);
     break;
   case 2:
     IO0CLR=1<<5;
    // DelayNS(100);
     break;
   case 3:
     IO0CLR=1<<25;
   //  DelayNS(100);
     break;
   case 4:
     IO0CLR=1<<26;
    // DelayNS(100);
     break; 
   default:
     count=0;
     IO0SET=LEDCON;
     break;     
   }
  // RTC_CIIR = 0x01; 
   RTC_AMR = 0XFE;
   RTC_CCR  = 0x11;
  // PCON   =0X02|(1<<7);//PM2, PM1, PM0为110,进入深度掉电模式
   count++;
   i+=3;
   RTC_AMR = 0XFE;
   RTC_CCR  = 0x11;
  }
}
 
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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