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

📄 timertest.c

📁 本人编写的无线电话程序,给予PIC18C801设计,包括了uCOS的移植以及菜单,自己设计的拼音注入法,完整地一级汉字库,希望对大家有所帮助
💻 C
📖 第 1 页 / 共 3 页
字号:
		}
		else{
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_7_PRIO]=TASK_7_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_6_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_7_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_7_PRIO]=TASK_7_PRIO;
//	        OSQPost(MsgQueue[TASK_6_PRIO],msg);
		}


    }
}
//===================================================================
void  Task8 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_8_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_8_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_9_PRIO]!=TASK_9_PRIO
			|| msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_8_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_8_PRIO]=TASK_8_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_7_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_8_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_8_PRIO]=TASK_8_PRIO;
//	        OSQPost(MsgQueue[TASK_7_PRIO],msg);
		}

    }
}
//===================================================================
void  Task9 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_9_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006

		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_9_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_10_PRIO]!=TASK_10_PRIO
			|| msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_9_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_9_PRIO]=TASK_9_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_8_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_9_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_9_PRIO]=TASK_9_PRIO;
//	        OSQPost(MsgQueue[TASK_8_PRIO],msg);
		}


    }
}
//===================================================================
void  Task10 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {
		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_10_PRIO],0, &err);

//		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_10_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_11_PRIO]!=TASK_11_PRIO
			|| msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_10_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			//CheckBytes[1]=(INT8U)((msg>>16)&0xff);
			//CheckBytes[2]=(INT8U)((msg>>8)&0xff);
			//CheckBytes[3]=(INT8U)(msg&0xff);
			LoopForTest();
		}
		else{
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_10_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_10_PRIO]=TASK_10_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_9_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_10_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_10_PRIO]=TASK_10_PRIO;
//	        OSQPost(MsgQueue[TASK_9_PRIO],msg);
		}


    }
}
//===================================================================
void  Task11 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
    
    data = data;
    for (;;) {

		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_11_PRIO],0, &err);

		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_11_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_12_PRIO]!=TASK_12_PRIO
			|| msg[TASK_13_PRIO]!=TASK_13_PRIO){
			CheckBytes[0]=TASK_11_PRIO;
			CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
			CheckAddr=msg;
			LoopForTest();
		}
		else{
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_11_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_11_PRIO]=TASK_11_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_10_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_11_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_11_PRIO]=TASK_11_PRIO;
//	        OSQPost(MsgQueue[TASK_10_PRIO],msg);
		}
		
    }
}
//===================================================================
void  Task12 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
	rom INT8U *addr1;
	INT8U i;
	unsigned short long slint;
    
    data = data;
    for (;;) {

		msg = (rom INT8U *)OSQPend(MsgQueue[TASK_12_PRIO],0, &err);

			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+32;
				CheckBytes[1]=err;
			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];
				CheckAddr=msg;
				LoopForTest();
			}



//		if(msg!=(rom INT8U *)0x11a000){
		if((unsigned short long)msg<0x11a006 || (unsigned short long)msg>=0x11C006){

			CheckBytes[0]=TASK_12_PRIO+64;
			CheckBytes[1]=err;
			CheckAddr=msg;
			LoopForTest();

		}
		else if(msg[TASK_13_PRIO]!=TASK_13_PRIO){

			CheckBytes[0]=TASK_12_PRIO;
			CheckBytes[1]=err;
			CheckAddr=msg;

			for(i=1;i<14;i++)	CheckBytes[i+1]=msg[i];

			LoopForTest();
		}
		else{
		
			addr1=OSMemGet(pMemSml,&err);
			for(i=1;i<16;i++)		addr1[i]=0xEE;

			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+80;
				CheckAddr=addr1;
				LoopForTest();
			}

			msg[TASK_12_PRIO]=TASK_12_PRIO;
			for(i=1;i<16;i++)	addr1[i]=msg[i];
			
	        OSQPost(MsgQueue[TASK_11_PRIO],addr1);

			err=OSMemPut(pMemSml,msg);
			if(err!=OS_NO_ERR){
				CheckBytes[0]=TASK_12_PRIO+96;
				CheckAddr=msg;
				LoopForTest();
			}

//			msg[TASK_12_PRIO]=TASK_12_PRIO;
//	        OSQPost(MsgQueue[TASK_11_PRIO],msg);

		}
    }
}
//===================================================================

void  Task13 (void *data)
{
    rom INT8U *msg;
    INT8U  err;
    INT8U i;
	rom INT8U *addr1;
	unsigned short long slint;
	INT16U blocks;
	
	blocks=0;
    
    data = data;
    for (;;) {
       OSTimeDly(50);                       /* Wait one second                          */


		msg=OSMemGet(pMemSml,&err);
//		msg=(rom INT8U *)0x11a006;	//OSMemGet(pMemSml,&err);

			slint=(unsigned short long)msg;
			if(slint<0x11a006 || slint>=0x11c006){
				CheckBytes[0]=TASK_13_PRIO+64;
				CheckBytes[1]=0xe1;
				CheckAddr=msg;
				LoopForTest();
			}

		for(i=0;i<32;i++)	msg[i]=0xee;
		msg[TASK_13_PRIO]=TASK_13_PRIO;
        OSQPost(MsgQueue[TASK_12_PRIO],msg);
    }
}
//===================================================================

void Task14(void *data)
{
	INT8U i,j;
	INT32U times,time1;
	INT8U disptime[6];
	INT8U err;
	INT8U f_handle;
	
	INT16U count;
	
	count=0;
	time1=0;
	
	FileSysInit();	//add by cj	
	
	for(;;){
		count++;
		if(count>24000){
			time1++;
			times=time1;
			disptime[0]=times%10+0x30;
			times=times/10;
			disptime[1]=times%10+0x30;
			times=times/10;
			disptime[2]=times%10+0x30;
			times=times/10;
			disptime[3]=times%10+0x30;
			times=times/10;
			disptime[4]=times%10+0x30;
			disptime[5]=(times/10)%10+0x30;

			OSSemPend (DisplaySem,0,&err);
			if(err!=OS_NO_ERR)	OSTrap(14+48);
			i=Disp_Word(0,0,disptime[5],1);
			i=Disp_Word(0,8,disptime[4],1);
			i=Disp_Word(0,16,disptime[3],1);
			i=Disp_Word(0,24,disptime[2],1);
			i=Disp_Word(0,32,disptime[1],1);
			i=Disp_Word(0,40,disptime[0],1);
			err=OSSemPost(DisplaySem);
			if(err!=OS_NO_ERR)	OSTrap(14+48);
			count=0;
			
			for(j=0;j<50;j++){
				TestRomData[j] = j;
			}
			err = FileSave(14, 2, TestRomData, 50);
			
			for(j=0;j<50;j++){
				TestRomData[j] = 0;
			}
			err = FileRead(13, 3, TestRomData, 50);
			for(j=0;j<40;j++)
				DebugContent[j]=TestRomData[j];
			
		}
	}		
}
				
				
				
				
				
	

⌨️ 快捷键说明

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