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

📄 main.c

📁 MinArm MNU20-20模块 ,8563使用例程
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c) ****************************************
**                         Guangzhou ZHIYUAN electronics Co.,LTD.                               
**                                     
**                               http://www.embedtools.com
**
**―――File Info――――――――――――――――――――――――――――――――――――――
**  File          name :main.c
**  Last modified Date :
**  Last       Version :V1.0
**  Descriptions       :用户主程序
**
**―――――――――――――――――――――――――――――――――――――――――――――
** Created   	    by :
** Created  	  date :
** Version             :
** Descriptions:	    通过调试观察RTC8563的运行
**                      如果按下KEY1,实时时钟PCF8563重新恢复默认设置值为2007年6月22日,星期5,1时22分30秒  
**
**―――――――――――――――――――――――――――――――――――――――――――――
** Modified	        by :
** Modified	      date :
** Version		       :
** Descriptions		   :
**
*******************************************************************************************/

#include "main.h"

#define TASK0_ID            16      		     // 任务的ID
#define TASK0_PRIO          TASK0_ID		     // 任务的优先级
#define TASK0_STACK_SIZE    512     		     // 定义用户堆栈长度   

#define TASK1_ID            17      		     // 任务的ID
#define TASK1_PRIO          TASK1_ID		     // 任务的优先级
#define TASK1_STACK_SIZE    512     		     // 定义用户堆栈长度   
   
#define TASK2_ID            18				     // 任务的ID
#define TASK2_PRIO          TASK2_ID		     // 任务的优先级
#define TASK2_STACK_SIZE    512				     // 定义用户堆栈长度

#define TASK3_ID            19				     // 任务的ID
#define TASK3_PRIO          TASK3_ID		     // 任务的优先级
#define TASK3_STACK_SIZE    512				     // 定义用户堆栈长度

#define TASK4_ID            20				     // 任务的ID
#define TASK4_PRIO          TASK4_ID		     // 任务的优先级
#define TASK4_STACK_SIZE    512				     // 定义用户堆栈长度

#define TASK5_ID            21				     // 任务的ID
#define TASK5_PRIO          TASK5_ID		     // 任务的优先级
#define TASK5_STACK_SIZE    512				     // 定义用户堆栈长度



OS_STK  TASK0_STACK[TASK0_STACK_SIZE];
OS_STK  TASK1_STACK[TASK1_STACK_SIZE];
OS_STK  TASK2_STACK[TASK2_STACK_SIZE];
OS_STK  TASK3_STACK[TASK3_STACK_SIZE];
OS_STK  TASK4_STACK[TASK4_STACK_SIZE];
OS_STK  TASK5_STACK[TASK5_STACK_SIZE];

void TASK0(void *pdata);
void TASK1(void *pdata);
void TASK2(void *pdata);
void TASK3(void *pdata);
void TASK4(void *pdata);
void TASK5(void *pdata);
/*******************************************************************************************
** Function name: main
** Descriptions : 主函数
** Input        : 无
** Output       : 无 
*******************************************************************************************/
uint8  MCU_IP[4]      = {192, 168,  1, 240};      // 初始化MCU的IP数组等信息
uint8  MCU_Mark[4]    = {255, 255, 255,  0};
uint8  MCU_GateWay[4] = {192, 168,  1, 253};   
uint16 MCU_Port       = 8000;

uint8  PC_IP[4]       = {192, 168,  1, 31};       // 初始化PC的IP数组等信息
uint16 PC_Port        = 2000;

int main (void)
{ 
/*------------------ 系统初始化代码 -----------------*/
    #if OS_CRITICAL_METHOD == 3				     // Allocate storage for CPU status register
    OS_CPU_SR  cpu_sr;
	#endif
	
    TargetInit();                                // 初始化系统,并检测系统固件版本号,如果不一致将通不过。
    DevDriveIni();			                     // 初始化基础驱动库
/*---------------- 添加自己的初始化代码 ----------------*/
				
    ZlgipInitial(MCU_IP, MCU_GateWay, MCU_Mark); // 初始化用户MCU系统IP

    gpio_set(BUZZER);                            // 鸣叫BUZZER,注意 PWM 输出引脚与蜂鸣器是同一引脚
    OSTimeDly(OS_TICKS_PER_SEC/10);              
    gpio_clr(BUZZER); 
    OSTimeDly(OS_TICKS_PER_SEC/10);
    gpio_set(BUZZER);
    OSTimeDly(OS_TICKS_PER_SEC/10);
    gpio_clr(BUZZER);  
/*--------------------------------------------*/
    OSTaskCreateExt(TASK0,
                    (void *)0,
                    &TASK0_STACK[TASK0_STACK_SIZE-1],
                    TASK0_PRIO,
                    TASK0_ID,
                    &TASK0_STACK[0],
                    TASK0_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                    
    OSTaskCreateExt(TASK1,
                    (void *)0,
                    &TASK1_STACK[TASK1_STACK_SIZE-1],
                    TASK1_PRIO,
                    TASK1_ID,
                    &TASK1_STACK[0],
                    TASK1_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                 
    OSTaskCreateExt(TASK2,
                    (void *)0,
                    &TASK2_STACK[TASK2_STACK_SIZE-1],
                    TASK2_PRIO,
                    TASK2_ID,
                    &TASK2_STACK[0],
                    TASK2_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                     
    OSTaskCreateExt(TASK3,
                    (void *)0,
                    &TASK3_STACK[TASK3_STACK_SIZE-1],
                    TASK3_PRIO,
                    TASK3_ID,
                    &TASK3_STACK[0],
                    TASK3_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
              
    OSTaskCreateExt(TASK4,
                    (void *)0,
                    &TASK4_STACK[TASK4_STACK_SIZE-1],
                    TASK4_PRIO,
                    TASK4_ID,
                    &TASK4_STACK[0],
                    TASK4_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);                 
                    
    OSTaskCreateExt(TASK5,
                    (void *)0,
                    &TASK5_STACK[TASK5_STACK_SIZE-1],
                    TASK5_PRIO,
                    TASK5_ID,
                    &TASK5_STACK[0],
                    TASK5_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
	while (1)
    {
		OSTimeDly(OS_TICKS_PER_SEC*10); 
    }   
}

/*******************************************************************************************
**函数名称:void TimeToData(char *date,char *week,char *time,char *buff)
**函数功能:将时间转换成PCF8563所需要的数据格式,并将转换得到的数据存到 buff中;
**入口参数:char *date      初始化年月日
**          char *week      初始化星期
**          char *time      初始化时间
**          char *buff      数据缓冲区
**出口参数:无
**说    明:在年月日和时间初始化参数设置时,如果遇到参数是个位数的,则在个位数前加0(星期的参
**			数可以不用加0),例如("2006-08-05","6","07:05:30")。
**			而("2006-8-5","6","7:5:30")是错误的输入。
*******************************************************************************************/
void TimeToData(char *date,char *week,char *time,char *buff)
{
	
	
	TIME   New_time;		                               // 时间结构体
	DATE   New_data;		                               // 日期结构体
	
    New_data.year 	=((date[0]-'0')*1000)+((date[1]-'0')*100)+((date[2]-'0')*10+((date[3]-'0')*1));    // 提取年
    New_data.mon 	=(((date[5]-'0')*10)+((date[6]-'0')*1));										   // 提取月
    New_data.day	=(((date[8]-'0')*10)+((date[9]-'0')*1));										   // 提取日

    New_time.dow 	=(week[0]-'0');																	   // 提取星期

    New_time.hour	=(((time[0]-'0')*10)+((time[1]-'0')*1));										   // 提取时
    New_time.min	=(((time[3]-'0')*10)+((time[4]-'0')*1));										   // 提取分
    New_time.sec    =(((time[6]-'0')*10)+((time[7]-'0')*1));                                           // 提取秒

⌨️ 快捷键说明

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