user文件之main.c

/******************************************************************************
版权所有:  深圳**科技有限公司  
文件名:    main.c 
作者:      ***  
创建日期:  2022/4/16
描述:      主入口函数  
其它:      
修改历史:  //修改历史记录列表,每条修改记录应包含修改日期、修改者及修改内容简述
            序号    修改时间    修改人  修改内容
            ????    ????/??/??  ??????  参考样式       
******************************************************************************/

#include "FreeRTOS.h"
#include "hard_config.h"
#include "yc3121.h"
#include "yc_gpio.h"
#include "yc_uart.h"
#include "yc_ipc.h"
#include "yc_systick.h"
#include "usb_main.h"
#include "yc_power.h"
#include "yc_timer.h"
#include "yc_it.h"
#include "misc.h"
#include <string.h>
#include <stdio.h>
#include "type.h"
#include "hard_config.h"
#include "driver_timer.h"
#include "driver_adc.h"
#include "bsp_beep_control.h"
#include "api_para_set.h"
#include "task_power_process.h"
#include "task_watchdog_process.h"
#include "task_data_process.h"
#include "task_print_state_process.h"
#include "task_iap_update.h"
#include "task_test_process.h"
#include "task_print_process.h"
#include "task_supplies_process.h"
#include "bsp_led_control.h"
#include "bsp_motor_control.h"
#include "bsp_sensor.h"
#include "driver_timer.h"
#include "driver_iwdg.h"
#include "bsp_key.h"
#include "api_key.h"
#include "nfc.h"
#include "ws1850s.h"
#include "api_paper_calibration.h"
#include "task.h"
#include "portable.h"
#include "api_print.h"
//******************************************* 创建任务句柄
static  TaskHandle_t  Main_Task_Handle  =  NULL;    /* 创建任务句柄 */
static  TaskHandle_t  APP_Task_Handle      =  NULL;    /* 应用程序 任务句柄 */
static  TaskHandle_t  RFID_Task_Handle      =  NULL;    /* RFID 任务句柄 */

//*********************************************************************
static void APP_TASK(void*parameter)
{
    (void)parameter;
    while(1){
//        MyPrintf("APP_TASK-----\r\n");
        //看门狗任务 
        Task_Watchdog_Process();        //包含喂狗、更新灯状态、按键刷新
        //电源控制任务 
        Task_Power_Control_Process();  //包含IPC初始化,充电初始化,ADC配置,智能卡初始化
        //协议解析任务 
        Task_Data_Analysis_Process();
    
        //打印状态检测          
        Task_PrintState_Process();        //包含光耦状态、机器状态、电池电压状态
        //打印过程 

        //测试任务      
        if(MACHINE_TEST == Machine_State)
        {
            Task_Test_Process();
        }
        //远程升级检测任务 
        if(MACHINE_UPDATE == Machine_State)
        {
            Task_API_Update_Process();
        }
        vTaskDelay(1); /*  延时2个tick */
    }
}
//****************************************************************************
static void RFID_TASK(void*parameter)
{
    (void)parameter;
    while(1){
//    MyPrintf("RFID_TASK-----\r\n");
     Task_supplies_Process();        //RFID任务
      vTaskDelay(2000); /*  延时2个tick */
    }
    
}
//----------------------------------------------------------------------------
static void main_task(void *pvParameters)
{
    (void)pvParameters;
    taskENTER_CRITICAL(); //进入临界区
    uint8_t App_Task ;
    uint8_t Rfid_Task ;
     /* 创建 APP_Task 任务 */
     App_Task = xTaskCreate((TaskFunction_t )APP_TASK,     /* 任务入口函数 */
                 (const char* )"Application_Task",                 /* 任务名字 */
                (uint16_t )512,                         /* 任务栈大小 */
                 (void* )NULL,                              /* 任务入口函数参数 */
                 (tskIDLE_PRIORITY + 1),                         /* 任务的优先级 */
                 (TaskHandle_t* )&APP_Task_Handle);        /* 任务控制块指针 */
                
    /* 创建 RFID_Task 任务 */
     Rfid_Task = xTaskCreate((TaskFunction_t )RFID_TASK,     /* 任务入口函数 */
                 (const char* )"Rfid_Task",                 /* 任务名字 */
                (uint16_t )512,                         /* 任务栈大小 */
                 (void* )NULL,                              /* 任务入口函数参数 */
                 (tskIDLE_PRIORITY + 0),                         /* 任务的优先级 */
                 (TaskHandle_t* )&RFID_Task_Handle);        /* 任务控制块指针 */    
                
//        MyPrintf("App_TASK =%d\r\n",App_Task);
//        MyPrintf("RFID_TASK =%d\r\n",Rfid_Task);                
    vTaskDelete(Main_Task_Handle); //删除 main_task 任务
    taskEXIT_CRITICAL(); //退出临界区
}
//------------------------------------------------------------------------------
static void  prvInitialiseHeap(void)        //
{
    static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
    const HeapRegion_t xHeapRegions[] = 
    {
        { ucHeap, configTOTAL_HEAP_SIZE },
        { NULL, 0 }
    };
    vPortDefineHeapRegions(xHeapRegions);
}
BOOL initFlag = 0;
//------------------------------------------------------------------------------
int main()
{
    prvInitialiseHeap();
    configASSERT(POS_MANAGE_PRIORITY < configTIMER_TASK_PRIORITY);
    SYSCTRL_HCLKConfig(SYSCTRL_HCLK_Div_None);        //默认配置不分频 
    
    //sys 
    NVIC_Config();                    //NVIC配置  
    
    //初始化串口 用于打印数据  
    UART0_Configuration(921600);    //调试用串口  初始化 
    
    MyPrintf("App Init OK\r\n");
    
    //api 
    
    Test_Store_Init();                //测试参数读取 
      
    Task_Power_Control_Init();        //电源控制/初始化/ADC配置/打开3V3电源/充电初始化 /启动充电/滴答时钟配置
    Para_Store_Init();                //参数读取     
    Key_Init();                        //按键初始化
//    Task_Print_Process_Init();        //打印任务初始化     
    LED_Control_Init();

    Task_Data_Process_Init();        //协议解析    USB及蓝牙 初始化 
    Task_PrintState_Init();            //打印状态信息检测  初始化 
    
    Task_supplies_Init();           //初始化RFID相关
        
    SensorControl_Init();

    MyPrintf("PowerOn\r\n");    
    
    //开打印头电源  
//    Matchine_5V_PrintHead_Motor_Power_On();

    //定时器控制 初始化      
    timer_all_config();
    
    //看门狗初始化 
    WDT_Configuration();            

    //启动基础定时器(1ms) 
    TIMER_BASE_START;
    //启动RFID定时器(10ms)
    Init_KalmanInfo(&KFP_height,0.01,0.5);
    
    //    Buzzer_OnOff(false);            //启动蜂鸣器    U20没有蜂鸣器
    //    CaliSelftPrintTestInit();
//    Task_Print_Process_Init();        //打印任务初始化 
    uint16_t adc_value[MAX_SENSOR_SCALE];
    xTaskCreate(main_task, "MAIN", 4 * configMINIMAL_STACK_SIZE, NULL, (tskIDLE_PRIORITY + 2), (TaskHandle_t* )&Main_Task_Handle);
    initFlag = 1;
    vTaskStartScheduler();    
    while(1) ;  //正常不会执行到这里

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值