亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? debugconsole.c

?? WWVB receiver using AVR.
?? C
字號:
/* $Id: debugconsole.c,v 1.20 2006/01/19 20:51:58 simimeie Exp $ * Functions for a serial debug console. If DEBUGCONSOLE is not defined in * the Makefile, then this will not be compiled or linked in. */ /* Unfortunately, an online-help for the debug commands would eat way too * much flash memory, so there is no online help. * Only documentation is here: * List of possible commands. * Each "command" consists of a single character, followed by it's * parameters. _CASE DOES MATTER!_. Numbers usually have to be given in * hexadecimal, and are returned that way too. *  m a        shows memory at address a *  M a v      writes value v to memory address a *  t          shows the current "ticks" value (a 16 bit timestamp) *  d          shows decoded DCF time *  B v        sets LED brightness *  i          show configured IP setting(s) *  n          show net status (MAC, traffic) *  O a v      temporarily overrides LED display. you first have to set the *             digits with a = 0 to 6, a = 7 then activates it for 5 secs */#define BV _BV#include <avr/io.h>#include "debugconsole.h"#include "timers.h"#include "dcf77.h"#include "ledmodule.h"#include "networkstack.h"#include "timeformat.h"/* PD0 is RXD, PD1 is TXD, but we shouldn't need to adress them manually *//* Formula for calculating the value of UBRR from baudrate and cpufreq */#define UBRRCALC ((CPUFREQ / (16 * BAUDRATE)) - 1)#ifdef EXTMEMORY#define INPUTBUFSIZE 20#define OUTPUTBUFSIZE 250#else#define INPUTBUFSIZE 10#define OUTPUTBUFSIZE 32#endifstatic uint8_t inputbuf[INPUTBUFSIZE];static uint8_t outputbuf[OUTPUTBUFSIZE];static uint8_t inputpos;static uint8_t outputsta;static uint8_t outputend;static uint8_t PROMPT[] = "\r\nC:\\>";static void appendchar(uint8_t what) {	uint8_t newpos;	newpos = (outputend + 1) % OUTPUTBUFSIZE;	if (newpos != outputsta) {		outputbuf[outputend] = what;		outputend = newpos;	}}void debugconsole_printtext(uint8_t * what) {	while (*what != 0) {		appendchar(*what);		what++;	}}void debugconsole_init(void) {	/* Set Baud Rate */	UBRRL = UBRRCALC;	/* Enable Send and Receive, but no IRQs */	UCSRB = BV(TXEN) | BV(RXEN);	debugconsole_printtext(PROMPT);	return;}static uint16_t parsehex16(uint8_t start, uint8_t * end) {	uint16_t res = 0;	uint8_t tmp;	while (start < inputpos) {		tmp = inputbuf[start++];		if ((tmp >= '0') && (tmp <= '9')) {			res <<= 4; /* *16 */			res += tmp - '0';		} else if ((tmp >= 'A') && (tmp <= 'F')) {			res <<= 4; /* *16 */			res += tmp - 'A' + 10;		} else if ((tmp >= 'a') && (tmp <= 'f')) {			res <<= 4; /* *16 */			res += tmp - 'a' + 10;		} else {			break;		}	}	*end = start;	return res;}void debugconsole_printhex8(uint8_t what) {	uint8_t buf;	uint8_t i;	for (i=0; i<2; i++) {		buf = (uint8_t)(what & (uint8_t)0xF0) >> 4;		if (buf <= 9) {			buf += '0';		} else {			buf += 'A' - 10;		}		appendchar(buf);		what <<= 4;	}}static void printdec32(uint32_t what) {	uint32_t f = 1000000000;	uint8_t alrpr = 0;	while (f > 0) {		if ((alrpr) || (what / f) || (f == 1)) {			appendchar((what / f) + '0');			alrpr = 1;		}		what = what % f;		f /= 10;	}}static void printdec8b(uint8_t what) {	appendchar((what / 10) + '0');	appendchar((what % 10) + '0');}void debugconsole_work(void) {	uint8_t status = UCSRA; /* Read status */	if (status & BV(RXC)) {		uint8_t val = UDR;		switch (val) {		case 8: /* Backspace? */			if (inputpos > 0) {				inputpos--;				appendchar(val);			}			break;		case '\r':		case '\n':			/* Warning: inputbuf is not null terminated! */			appendchar('\r');			appendchar('\n');			if (inputpos != 0) {				uint8_t parspos = 2;				uint16_t addr;				uint8_t val;				struct tickdata td;				struct brokentime bt;				switch(inputbuf[0]) {#ifdef LEDMODULE				case 'B':					/* B v - sets LED brightness to value					 * v (valid values are 0 - 7) */					led_brightness = parsehex16(parspos, &parspos);					set_led_brightness();				case 'O':					/* O a v - temporarily overwrites LED display */					addr = parsehex16(parspos, &parspos);					val = parsehex16(parspos, &parspos);					if (addr < 7) {						led_dispoverride[addr] = val;					} else {						led_dispovcnt = ((val) ? val : 30);					}					break;#endif				case 'm':					/* m a - shows memory at address a */					addr = parsehex16(parspos, &parspos);					val = *((uint8_t *)addr);					debugconsole_printhex8(addr >> 8);					debugconsole_printhex8(addr & 0x00FF);					appendchar(' ');					appendchar('=');					appendchar(' ');					debugconsole_printhex8(val);					break;				case 'M':					/* M a v - writes value v to memory address a */					addr = parsehex16(parspos, &parspos);					val = parsehex16(parspos, &parspos);					*((uint8_t *)addr) = val;					debugconsole_printhex8(addr >> 8);					debugconsole_printhex8(addr & 0x00FF);					appendchar(' ');					appendchar(':');					appendchar('=');					appendchar(' ');					debugconsole_printhex8(val);					break;				case 't':					/* t - shows "ticks" */					gettickdata(&td);					debugconsole_printhex8(td.seconds >> 8);					debugconsole_printhex8(td.seconds & 0x00FF);					appendchar('s');					appendchar(' ');					debugconsole_printhex8(td.ticks >> 8);					debugconsole_printhex8(td.ticks & 0x00FF);					debugconsole_printtext("t");					break;				case 'd':					/* d - show dcf77 time */					val = dcfvalid;					tstobt(dcftime[val].timestamp						+ ((uint16_t)(getseconds() - dcftime[val].ticksecs)), &bt);					printdec32(bt.day);					appendchar('.');					printdec32(bt.month);					appendchar('.');					printdec8b(bt.year);					appendchar(' ');					printdec8b(bt.hour);					appendchar(':');					printdec8b(bt.min);					appendchar(':');					printdec8b(bt.sec);					appendchar(' ');					printdec32(dcftime[val].timestamp						 + ((uint16_t)(getseconds() - dcftime[val].ticksecs)));					break;#ifdef ISANETWORK				case 'i':					/* i - Show IP settings */					printdec32(net_ip[0]);					appendchar('.');					printdec32(net_ip[1]);					appendchar('.');					printdec32(net_ip[2]);					appendchar('.');					printdec32(net_ip[3]);#if 0					appendchar('/');					printdec32(net_mask[0]);					appendchar('.');					printdec32(net_mask[1]);					appendchar('.');					printdec32(net_mask[2]);					appendchar('.');					printdec32(net_mask[3]);					appendchar(' ');					appendchar('g');					appendchar('w');					appendchar(' ');					printdec32(net_gate[0]);					appendchar('.');					printdec32(net_gate[1]);					appendchar('.');					printdec32(net_gate[2]);					appendchar('.');					printdec32(net_gate[3]);#endif					break;				case 'n':					/* n a - Show net status */					addr = parsehex16(parspos, &parspos);					if (addr == 0) {						for (val = 0; val < 5; val++) {							debugconsole_printhex8(net_mac[val]);							appendchar(':');						}						debugconsole_printhex8(net_mac[5]);#ifdef NETWORKSTATS					} else if (addr == 1) {						appendchar('R');						appendchar('X');						appendchar(' ');						printdec32(net_rxbytes);					} else if (addr == 2) {						appendchar('T');						appendchar('X');						appendchar(' ');						printdec32(net_txbytes);					} else if (addr == 3) {						appendchar('P');						appendchar(' ');						printdec32(net_pings);					} else if (addr == 4) {						appendchar('N');						appendchar('T');						appendchar('P');						appendchar(' ');						printdec32(net_ntpqs);					} else if (addr == 5) {						appendchar('R');						appendchar('C');						appendchar(' ');						printdec32(net_rcons);#endif					}					break;#endif				default:					debugconsole_printtext("Unknown command.");				};			}			debugconsole_printtext(PROMPT);			inputpos = 0;			break;		default:			if (inputpos < INPUTBUFSIZE) {				inputbuf[inputpos++] = val;				/* Echo the character */				appendchar(val);			} else {				appendchar(7); /* Bell */			}		};	}	if (outputend != outputsta) {		/* We have something to send - can we send right now? */		if (status & BV(UDRE)) { /* transmitter is ready. */			UDR = outputbuf[outputsta];			outputsta = (outputsta + 1) % OUTPUTBUFSIZE;		}	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨首页| 国产麻豆精品在线| 国产精品丝袜91| 精品国精品自拍自在线| 日韩欧美国产综合一区| 欧美一区二区免费视频| 欧美一级二级三级乱码| 久久综合九色综合97婷婷女人| 2020国产精品久久精品美国| 国产免费久久精品| 亚洲欧洲精品一区二区精品久久久| 中文字幕一区二区三区色视频| 亚洲男同1069视频| 午夜久久电影网| 九色|91porny| av动漫一区二区| 欧美影院精品一区| 欧美α欧美αv大片| 国产欧美日韩另类一区| 亚洲免费观看高清| 免费黄网站欧美| www.色精品| 欧美一级片在线| 欧美国产日韩亚洲一区| 亚洲精品免费在线播放| 蜜桃av一区二区在线观看 | 亚洲人精品午夜| 亚洲成人激情社区| 国产精品综合一区二区| 色94色欧美sute亚洲线路一久| 在线播放国产精品二区一二区四区| www激情久久| 亚洲精品中文在线| 久久精品国产秦先生| 成人精品国产一区二区4080| 欧美久久久久免费| 国产精品三级视频| 美女精品一区二区| 色综合久久九月婷婷色综合| 欧美xxxxxxxx| 亚洲一区二区3| 成人激情视频网站| 91精品国产综合久久福利软件| 国产精品久久久久影院| 老司机精品视频在线| 色妞www精品视频| 久久综合网色—综合色88| 一区二区三区欧美日韩| 国产91高潮流白浆在线麻豆| 欧美一区二区三区思思人| 亚洲精品日日夜夜| 成人精品视频一区| 亚洲精品在线三区| 日本不卡在线视频| 欧美日韩亚洲综合一区| 国产精品理伦片| 国产成人亚洲综合a∨猫咪| 日韩欧美精品三级| 日日摸夜夜添夜夜添国产精品| 色婷婷一区二区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲成人综合视频| 欧美写真视频网站| 亚洲麻豆国产自偷在线| 99久久免费国产| 国产精品福利一区| 99麻豆久久久国产精品免费优播| 中文字幕的久久| 高清shemale亚洲人妖| 国产欧美一区二区精品婷婷| 国产精品自拍网站| 国产人成亚洲第一网站在线播放| 国内精品视频666| 日韩你懂的电影在线观看| 日本一不卡视频| 欧美va亚洲va香蕉在线| 国产精品资源在线看| 国产日韩亚洲欧美综合| 国产成人免费视频网站| 国产精品乱码一区二区三区软件| 国产91丝袜在线18| 亚洲欧洲精品天堂一级| 91碰在线视频| 亚洲午夜久久久| 4hu四虎永久在线影院成人| 日韩精彩视频在线观看| 欧美一区二区三区小说| 黄色精品一二区| 国产精品三级av在线播放| 99riav一区二区三区| 亚洲一区二区三区美女| 精品少妇一区二区三区在线播放| 狠狠久久亚洲欧美| 自拍偷拍亚洲欧美日韩| 在线免费观看日韩欧美| 三级久久三级久久久| 久久免费的精品国产v∧| www.在线成人| 日韩高清在线不卡| 国产欧美一区二区三区在线看蜜臀| 成人av在线观| 秋霞国产午夜精品免费视频| 久久在线免费观看| 日本韩国视频一区二区| 久久成人免费日本黄色| 国产精品视频免费看| 欧美男同性恋视频网站| 欧美一级黄色片| 国产不卡一区视频| 精品午夜一区二区三区在线观看| 欧美韩国日本综合| 欧美嫩在线观看| 成人午夜视频福利| 日本欧洲一区二区| 日韩一区欧美小说| 日韩欧美电影在线| 91久久久免费一区二区| 国产一区二区在线电影| 亚洲一区二区三区四区在线| 国产亚洲精品超碰| 91精品国产综合久久久久久 | 亚洲国产中文字幕在线视频综合| 欧美一级日韩不卡播放免费| 91理论电影在线观看| 国产一区二区精品久久99| 午夜天堂影视香蕉久久| 亚洲美女在线国产| 国产精品国产三级国产普通话99| 日韩免费观看2025年上映的电影| 91成人看片片| 91美女在线视频| 从欧美一区二区三区| 韩国成人精品a∨在线观看| 亚洲午夜久久久| 亚洲免费看黄网站| 国产精品理论在线观看| 国产亚洲一区二区三区| 精品国产乱码91久久久久久网站| 欧美喷潮久久久xxxxx| 欧洲av在线精品| 欧美中文字幕一二三区视频| 99精品黄色片免费大全| www.亚洲色图| 成人av网站免费| 成人国产免费视频| 高清在线不卡av| 成人av在线影院| 91麻豆免费看| 色94色欧美sute亚洲线路二| 色综合久久天天综合网| 99国产精品国产精品毛片| 91在线精品一区二区三区| 99麻豆久久久国产精品免费| 91污在线观看| 色爱区综合激月婷婷| 欧美色老头old∨ideo| 欧美视频精品在线| 欧美精品黑人性xxxx| 91精选在线观看| 精品国产乱码久久久久久免费| 日韩欧美国产wwwww| 久久午夜色播影院免费高清| 国产清纯美女被跳蛋高潮一区二区久久w | 色综合久久久久综合| 91色porny蝌蚪| 欧美在线视频你懂得| 欧美日韩亚洲另类| 91精品一区二区三区在线观看| 欧美电影免费观看完整版| 国产视频一区二区在线| 国产精品电影一区二区| 亚洲小少妇裸体bbw| 久久电影网电视剧免费观看| 成人一区二区三区视频| 在线观看免费视频综合| 日韩女优毛片在线| 中文字幕在线免费不卡| 亚洲国产一区视频| 麻豆极品一区二区三区| 粉嫩绯色av一区二区在线观看| 91免费在线播放| 日韩限制级电影在线观看| 国产精品沙发午睡系列990531| 亚洲自拍偷拍图区| 黑人巨大精品欧美一区| 在线亚洲人成电影网站色www| 日韩欧美美女一区二区三区| 亚洲国产激情av| 日韩1区2区日韩1区2区| 99久久精品国产麻豆演员表| 欧美日本在线观看| 日本一区二区三区高清不卡| 亚洲一区二区偷拍精品| 国产精品综合二区| 在线综合+亚洲+欧美中文字幕| 日本一区二区视频在线观看| 天天综合天天做天天综合| caoporn国产精品| 日韩三级视频中文字幕| 亚洲一卡二卡三卡四卡五卡|