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

📄 mon400.c

📁 Small Device C Compiler 面向Inter8051
💻 C
字号:
#include <tinibios.h>#include <ds400rom.h>#include <stdio.h>#include <string.h>#define BUF_LEN 80void usage(void){    puts("Available commands:\n");    puts("ledon: turns LED on.");    puts("ledoff: turns LED off.");    puts("clock: reports millisecond timer.");    puts("sleep: sleeps for 10 seconds (or forever if you didn't startclock first).");}void blinker(void){    int i, j;        while (1)    {	P5 |= 4;	for (j = 0; j < 10; j++)	{	    for (i = 0; i < 32767; i++)	    {		;	    }	}		P5 &= ~4;		for (j = 0; j < 10; j++)	{	    for (i = 0; i < 32767; i++)	    {		;	    }	}	    }}void main(void){    char buffer[80];        // At this stage, the rom isn't initalized. We do have polled serial I/O, but that's    // about the only functional library service.    printf("TINIm400 monitor rev 0.0\n");    romInit(1, SPEED_2X);    // Now we're cooking with gas.        while (1)    {	// monitor prompt.        printf("-> ");		gets(buffer); // unsafe, of course, should use some equivalent of fgets.		if (!strcmp(buffer, "ledon"))	{	    P5 &= ~4; // LED on.	    printf("LED on.\n");	}	else if (!strcmp(buffer, "ledoff"))	{	    P5 |= 4;	    printf("LED off.\n");	}	else if (!strcmp(buffer, "clock"))	{	    printf("Clock: %ld\n", ClockTicks());	}	else if (!strcmp(buffer, "thread"))	{	    printf("Thread ID: %d\n", (int)task_getthreadID());	}	else if (!strcmp(buffer, "sleep"))	{	    printf("Sleeping for 10 seconds...\n");	    	    ClockMilliSecondsDelay(10 * 1000);	    	    printf("Back.\n");	}	else if (!strcmp(buffer, "pmr"))	{	    printf("PMR: %x\n", PMR);	}	else if (!strcmp(buffer, "exif"))	{	    printf("EXIF: %x\n", EXIF);	}	else if (!strcmp(buffer, "blink"))	{	    blinker();	}	else if (!strcmp(buffer, "t0"))	{	    printf("TH0:TL0 %x:%x\n", TH0, TL0);	}	else if (!strcmp(buffer, "t2"))	{	    printf("TH2:TL2 %x:%x\n", TH2, TH2);	}		else if (!strcmp(buffer, "faster"))	{	    printf("going really fast...\n");	    P5 |= 4; // LED off.	    PMR = 0x82; 	    PMR = 0x8a; // 8a for REAL fast	    PMR = 0x9a; // 9a for REAL fast.	    	    while (!(EXIF & 8))		;	    PMR = 0x1a; // 1a for REAL fast.	    _asm		nop_endasm;			    	    P5 &= ~5; // LED on.	}	else if (buffer[0])	{	    printf("Unknown command \"%s\".\n", buffer);	    usage();	}    }}

⌨️ 快捷键说明

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