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

📄 main.c

📁 基于LPC2134的在ucos2操作系统下的源代码
💻 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"

#define     out    IO1DIR|=(1<<25)         // set output
#define     in     IO1DIR&=~(1<<25)        // set input
#define     set    IO1SET=(1<<25)          // set dat
#define     clr    IO1CLR=(1<<25)          // clr dat
#define     sh     IO1PIN

#define	 TaskStkLengh	200		//Define the Task0 stack length 定义用户任务0的堆栈长度

OS_STK	 TaskStk[TaskStkLengh];		//Define the Task0 stack 定义用户任务0的堆栈
void 	 Task0(void *pdata);			//Task0 任务0

/****************************************************************************
* 名称: main()
* 功能: 初始化uC/OS-II操作系统,建立第一个任务,然后启动系统。
****************************************************************************/
int main(void)
{
	OSInit ();																										
	OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);		
	OSStart ();
	return 0;															
}
void  delay(uint32 n)
{  
   while(n--);
}

uint8  init(void)
{
  uint8  i;
  out;
  set;
  clr;
  delay(6000);
  set;
  in;
  delay(1200);
  
  if((sh&(1<<25))==0)
  {
   i=1;
   delay(6000);
  }
  else
   i=0;
  return(i);
    
}
uint32  readbit(void)
{
  uint32  dat;
  dat=0;
  out;
  set;
  clr;
  delay(56);
  set;
  delay(56);
  in;
  dat=sh&(1<<25);
  delay(600);
  return  dat;
}
  
void  writeBTS(uint8  dat)
{
  uint8  i;
  out;
  for(i=0;i<8;i++)
   {
      
     if (dat&0x01)
      { 
         set;             
         clr;
         delay(56);         
         set;   
         delay(400);
                  
      }
      else 
      {
         set;    
         clr;
         delay(800);
                 
      }
    dat = dat >> 1;
   }
   set;
  
}
uint32  readBTS(void)
{
   uint32  i,dat;
   uint32 j=0;
   dat=0;
   for(i=0;i<16;i++)
   {
      j=readbit();
      j=(j>>25)&0x01;
      dat=(j<<15)|(dat>>1);
   }
   out;
   set;
   return(dat);
}
 
uint8  readB(void)
{
   uint8  i,dat;
   uint32 j=0;
   dat=0;
   for(i=0;i<8;i++)
   {
      j=readbit();
      j=(j>>25)&0x01;
      dat=(j<<7)|(dat>>1);
   }
   out;
   set;
   return(dat);
}     
void  gettemp(void)
{
    fp64    temp; 
    char    s[20];  
    init();
    writeBTS(0xcc);
    writeBTS(0x44);
    OSTimeDlyHMSM(0,0,0,200);
    init();
    writeBTS(0xcc);
    writeBTS(0xbe);                   
    temp=readBTS();
    temp=temp*0.0625;                       
    sprintf(s,"%f",temp);
    GUI_PutString(0,0,s);        
}
void  readID(void) 
{
    uint8  i;
    uint8  b[8];
    char   s[20];
    init(); 
    writeBTS(0x33);
    for(i=0;i<8;i++)
      b[i]=readB();
    for(i=0;i<3;i++)
    {
      sprintf(s,"%d",b[i]);
      GUI_PutString(18*i,8,s); 
    }
    for(i=3;i<8;i++)
    {
      sprintf(s,"%d",b[i]);
      GUI_PutString(18*(i-3),16,s); 
    }
} 
      
     
/*********************************************************************************************************
**                            Task0 任务0
** 功能:使用ZLG/GUI,在屏幕上同时显示多个"Hello ZLG/GUI!"字符串
********************************************************************************************************/
void Task0(void *pdata)
{  
    uint8  i;
	pdata = pdata;
	TargetInit ();
	PINSEL2=0x00000000;     
	GUI_Initialize();       // 初始化LCM
    GUI_SetColor(1, 0);     // 设置前景色和背景色
	while (1)
	{ 
	     i=init();
	     if(i==1)
	     {
	     writeBTS(0xcc);
	     readID();
	     gettemp();
	     }
	     if(i==0)
	       GUI_PutString(0,48,"erro");
	        
	     OSTimeDlyHMSM(0,0,1,0);     
	}
}
   
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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