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

📄 main.c

📁 SmartARM2200开发平台光盘资料中的所有的源码和测试程序以及应用程序
💻 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"

OS_STK	Task0Stk [128];				// Define the Task0 stack 定义用户任务0的堆栈
OS_STK	Task1Stk [128];				// Define the Task1 stack 定义用户任务1的堆栈
OS_STK	Task2Stk [128];				// Define the Task2 stack 定义用户任务2的堆栈
OS_STK	Task3Stk [128];				// Define the Task3 stack 定义用户任务3的堆栈
OS_STK	Task4Stk [128];				// Define the Task4 stack 定义用户任务4的堆栈

void 	Task0(void *pdata);			// Task0 任务0
void 	Task1(void *pdata);			// Task1 任务1
void 	Task2(void *pdata);			// Task2 任务2
void 	Task3(void *pdata);			// Task3 任务3
void 	Task4(void *pdata);			// Task4 任务4

int main (void)
{
	OSInit ();																										
	OSTaskCreate (Task0,(void *)0, &Task0Stk[128 - 1], 2);
	OSTaskCreate (Task1,(void *)0, &Task1Stk[128 - 1], 3);
	OSTaskCreate (Task2,(void *)0, &Task2Stk[128 - 1], 4);
	OSTaskCreate (Task3,(void *)0, &Task3Stk[128 - 1], 5);
	OSTaskCreate (Task4,(void *)0, &Task4Stk[128 - 1], 6);
	OSStart ();
	return 0;															
}



/*********************************************************************************************************
**                            Task0 任务0
********************************************************************************************************/
void Task0	(void *pdata)
{   uint32 i;

	pdata = pdata;
	TargetInit ();
	
	while (1)
	{
        OS_ENTER_CRITICAL();
        for(i=0; i<1600; i++)
        {
            while( (ADDR&0x80000000)==0 );              // 等待转换结束
            CH1[i] = (ADDR>>8) & 0xFF;                  // 提取AD转换值
        }
        OS_EXIT_CRITICAL();
        
	    OSC_LockTrigerPoint();
        OSC_FindPeriod();
        OSC_CH1MaxMin();
        GUI_ClrTrack();
        GUI_DispTrack();

		OSTimeDly(50);

	}
}
   
/*********************************************************************************************************
**                            Task1 任务1
********************************************************************************************************/
void Task1	(void *pdata)
{   
	pdata = pdata; 

	while (1)
	{
	    sprintf(UART0_StrBuff, "CH1max = %1.2fV", CH1Max*3.3/256);
	    GUI_PrtStr(5, 10, UART0_StrBuff, 0xfee4, 0x0274);
	     
	    sprintf(UART0_StrBuff, "CH1min = %1.2fV", CH1Min*3.3/256);
	    GUI_PrtStr(5, 110, UART0_StrBuff, 0xfee4, 0x0274);
	    
	    sprintf(UART0_StrBuff, "CH1Fre = %6d Hz", CH1Fre);
	    GUI_PrtStr(5, 210, UART0_StrBuff, 0xfee4, 0x0274);
	    	    
        OSTimeDly(100); 
	}
}
  
/*********************************************************************************************************
**                            Task2 任务2
********************************************************************************************************/
void Task2	(void *pdata)
{  
	pdata = pdata;
	 
	while (1)
	{
	    GUI_PrtStr(208, 270, "Coupling", 0xfee4, 0x0274); 
	    GUI_PrtStr(188, 280, " DC ", 0x0000, 0xffff); 
	    
	    GUI_PrtStr(168, 273, "Volt/Div", 0xfee4, 0x0274); 
	    GUI_PrtStr(148, 275, " 0.42V ", 0x0000, 0xffff); 
	    
	    GUI_PrtStr(128, 270, "Time/Div", 0xfee4, 0x0274); 
	    GUI_PrtStr(108, 275, " 60uS ", 0x0000, 0xffff); 
	    
	    GUI_PrtStr( 88, 274, "TrigVolt", 0xfee4, 0x0274); 
	    sprintf(UART0_StrBuff, " %1.2fV ", CH1TptVal*3.3/255);
	    GUI_PrtStr( 68, 276, UART0_StrBuff, 0x0000, 0xffff); 
	     
	    GUI_PrtStr( 48, 280, "Invert", 0xfee4, 0x0274); 
	    GUI_PrtStr( 28, 283, " Off ", 0x0000, 0xffff);   
	    
        OSTimeDly(2000); 
	}
}
   
/*********************************************************************************************************
**                            Task3 任务3
********************************************************************************************************/
void Task3	(void *pdata)
{ 
	pdata = pdata; 
	
	while (1)
	{
	    //sprintf(UART0_StrBuff, "CH1Tpt1 = %6d\n\r", CH1Tpt1);
	    //UART0_SendStr(UART0_StrBuff);
	    //sprintf(UART0_StrBuff, "CH1Tpt2 = %6d\n\r", CH1Tpt2);
	    //UART0_SendStr(UART0_StrBuff);
	    
	    GUI_PrtStr(226, 268, " Running ", 0xfee4, 0x0274); 
        OSTimeDly(200); 
	    GUI_PrtStr(226, 268, " Running ", 0xfee4, 0xa000); 
        OSTimeDly(200); 
	}
}

/*********************************************************************************************************
**                            Task4 任务4
********************************************************************************************************/
void Task4	(void *pdata)
{   uint32 pwm;

	pdata = pdata; 
	
	while (1)
	{
        /* 自检信号,可以调节PWM占空比*/
        if( (IO0PIN&KEY) == 0 ) 
        {
            OSTimeDly(20); 
            if( (IO0PIN&KEY) == 0 ) 
            {
                pwm++;
                while( (IO0PIN&KEY) == 0 );
                if(pwm >= 5)  pwm = 1;
                PWMMR6 = DUTY_CYCLE_DATA*pwm;	// 设置PWM占空比
                PWMLER = 0x41;			        // PWMMR0、PWMMR6锁存
                PWMTCR = 0x09;			        // 启动定时器,PWM使能
            }
        }
    }
}
   
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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