📄 main.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 + -