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

📄 exp2timer.c

📁 Tornado的源代码资源包
💻 C
字号:
#include "vxWorks.h" 
#include "stdio.h"
#include "stdlib.h"
#include "taskLib.h"
#include "sysLib.h"
#include "tylib.h"

#define  MAX_MSG_LEN (50) /* 消息队列中消息的最大长度 */

void clk(void)
{
  char key;
  int  cnt, tcnt;
  int  sysclkrate = sysClkRateGet()/20;
  int  task_stdin_fd, global_stdin_fd;
  int  consoleFd;
  int stdIN, stdOUT;              /* 标准输入/输出设备的文件描述符 */
  char c;                         /* 字符变量 */
  char aStr[MAX_MSG_LEN];         /* 字符串缓冲区 */
  char bStr[MAX_MSG_LEN];         /* string buffer */
  

  /* 取标准输入/输出设备文件描述符 */
  stdIN  = ioGlobalStdGet(0);
  stdOUT = ioGlobalStdGet(1);

  /* 将标准输出设备输出模式设置为RAW */
  ioctl(stdOUT, FIOSETOPTIONS, OPT_RAW);  /* defined in iolib.h */

  task_stdin_fd = ioTaskStdGet(0, STD_IN);
  global_stdin_fd = ioGlobalStdGet(STD_IN);
  consoleFd = global_stdin_fd;

  ioctl (consoleFd, FIOFLUSH, 0);
  tcnt = 0;
  FOREVER
  {
    printf("timer value: %03d\r", tcnt++);
    
    /* 清空消息接收缓冲 */
    memset(aStr, 0, MAX_MSG_LEN);
    sprintf(aStr, "timer value: %03d\r", tcnt);
	write(stdOUT, aStr, sizeof(aStr));
	
    taskDelay(sysclkrate);

	ioctl (consoleFd, FIONREAD, (int) &cnt);
    if(cnt)
    {
      read(stdIN,&c,1);
	  /* 判断若输入字符为"ESC键"则退出主循环 */
		if(c == '\e')
		  break;
		else if(c == 'r')
		{
			tcnt=0;
		}
		else if (c == 'p')
		{
			printf("Pause .press any key to continue.....\r");
			
			/* 清空消息接收缓冲 */
            memset(bStr, 0, MAX_MSG_LEN);
			sprintf(bStr, "Press any key to continue.....\n");
			write(stdOUT, bStr, sizeof(bStr));
			
			memset(bStr, 0, MAX_MSG_LEN);
			sprintf(bStr, "Pause \r");
			write(stdOUT, bStr, sizeof(bStr));

			while(1){
				ioctl (consoleFd, FIONREAD, (int) &cnt);
				if(cnt)
				{
				  break;
				}
			}
		}
	   ioctl (consoleFd, FIOFLUSH, 0);
    }

  }
 
  /* 输出"end"字串 */
  write(stdOUT, "\n\rend\n\r", 7);

  ioctl (consoleFd, FIOFLUSH, 0);
  ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);
  printf("\nTimer end\n");
}

⌨️ 快捷键说明

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