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

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

?? serialexample.c

?? 一個基于AVR 單片機的操作系統,有組于了解操作系統在單片機上運行的內幕.
?? C
字號:
/*
    Serial interface Demo for AvrXFifo's

    Also illustrates the use of Frame based variables
    at the top level tasking (switched from NAKED to
    NORETURN function attribute)

	When linked with simple serialio there is no buffering
	of charactors so only two charactors can be received
	during the delay (Hardware buffering within the USART).

	When linked with the buffered IO up to 31 (or whatever
	the buffer size - 1 is) charactors can be received while
	delaying.
*/
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <stdio.h>
#include "avrx.h"

// Uncomment this to override "AvrXSerialIo.h and just use one channel
// #define USART_CHANNELS (1<1)	// 0 - USART0, 1 = USART1

#include "AvrXSerialIo.h"

enum
{
	FALSE,
	TRUE
};

typedef unsigned char BOOL;

// Peripheral initialization

#define TCNT0_INIT (0xFF-CPUCLK/256/TICKRATE)

/*
 Timer 0 Overflow Interrupt Handler

 Prototypical Interrupt handler:
 . Switch to kernel context
 . handle interrupt
 . switch back to interrupted context.
 */
AVRX_SIGINT(SIG_OVERFLOW0)
{
    IntProlog();                // Switch to kernel stack/context
    TCNT0 += TCNT0_INIT;		// Add to pre-load to account for any missed clocks
    AvrXTimerHandler();         // Call Time queue manager
    Epilog();                   // Return to tasks
}

// Super simple string printers...

// PutString from RAM
void myputs(int (*putch)(char), const uint8_t * psz)
{
	while (*psz != 0)
		(*putch)(*psz++);
}

// PutString from FLASH
void myputs_P(int (*putch)(char), const uint8_t * psz)
{
	while (__LPM(psz) != 0)
		(*putch)(__LPM(psz++));
}

#if (USART_CHANNELS & CHANNEL_0)

// This task uses GCC Libc stdio facility and needs an additional 60-80 bytes of stack
// for processing the strings.  Longer strings probably need more stack.

AVRX_GCC_TASKDEF(task0, 76, 1)
{
	TimerControlBlock timer;

//	InitSerial0(BAUD(115200));	// Note: this only works with 12mhz or baud rate crystal
	InitSerial0(BAUD(38400));
    fdevopen(put_char0, get_c0, 0);		// Set up standard I/O
	while(1)
	{
		int c;
		BOOL bGotACharacter = FALSE;

		printf_P(PSTR("Type something within 5 seconds\r"));
		AvrXDelay(&timer, 5*1000);
#if 0		// Alternate code to determine when something was typed in.
		if ((c = AvrXStatFifo(Rx0Buf)))
		{
			bGotACharacter = TRUE;
			printf_P(PSTR("You typed in %d char: \""), c);
			while ((c = getchar()) >= 0)
				putchar(c);
		}
#else
		while ((c = getchar()) != EOF)
		{
			if (!bGotACharacter)
			{
				printf_P(PSTR("You typed in \""));
				bGotACharacter = TRUE;
			}
			putchar(c);
		}
#endif
		if (!bGotACharacter)
			printf_P(PSTR("Try again... "));
		else
			putchar('"'),putchar('\r');
	}
}
#endif // USART_CHANNELS & CHANNEL_0

#if USART_CHANNELS & CHANNEL_1

// This task uses simplified string handlers and only needs a little extra
// stack for the timer & normal call-return stuff.  Note: Buffered I/O routines
// need more stack (this is sufficient for buffered, but not stdio!).

AVRX_GCC_TASKDEF(task1, 40, 1)
{
	TimerControlBlock timer;

//	InitSerial1(BAUD(115200));	// Note: this only works with 12mhz or baud rate crystal
	InitSerial1(BAUD(38400));
	while(1)
	{
		int c;
		BOOL bGotACharacter = FALSE;

		myputs_P(put_char1, PSTR("Type something within 5 seconds\r"));
		AvrXDelay(&timer, 4*1000);
		while ((c = get_c1()) != EOF)
		{
			if (!bGotACharacter)
			{
				myputs_P(put_char1, PSTR("You typed in \""));
				bGotACharacter = TRUE;
			}
			put_char1(c);
		}

		if (!bGotACharacter)
			myputs_P(put_char1, PSTR("Try again... "));
		else
			myputs(put_char1, "\"\r");		// Example of non-FLASH string..
	}
}
#endif // USART_CHANNELS & CHANNEL_1

int main(void)
{
    AvrXSetKernelStack(0);

	MCUCR = _BV(SE);
	TCNT0 = TCNT0_INIT;
#if defined (__AVR_ATmega103__) || defined (__ATmega103__)
	TCCR0 =  ((1<<CS02) | (1<<CS01));
#elif defined (__AVR_ATmega128__) || defined (__ATmega128__) || defined (__AVR_ATmega64__) || defined (__ATmega64__)
	TCCR0 =  ((1<<CS2) | (1<<CS1));
#else	// Most other chips...  Note: some are TCCR0 and some are TCCR0B...
	TCCR0 =  (1<<CS02);
#endif
	TIMSK = _BV(TOIE0);

#if USART_CHANNELS & CHANNEL_1
	AvrXRunTask(TCB(task1));
#endif
#if USART_CHANNELS & CHANNEL_0
	AvrXRunTask(TCB(task0));
#endif
	Epilog();
	while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线国偷精品产拍免费yy| 久久久www成人免费毛片麻豆 | 91超碰这里只有精品国产| 亚洲一级电影视频| 欧美精品乱人伦久久久久久| 手机精品视频在线观看| 欧美人体做爰大胆视频| 色先锋aa成人| 亚洲欧美日韩国产综合| 免费成人在线观看视频| 国产91在线|亚洲| 91国产丝袜在线播放| 欧美一级在线免费| 亚洲影院理伦片| 日韩一区欧美一区| 亚洲成精国产精品女| 99re热视频这里只精品| 自拍偷拍亚洲激情| 欧美人妖巨大在线| 国产91丝袜在线播放0| 亚洲精品久久久久久国产精华液| 欧美日韩亚洲高清一区二区| 久久成人免费网站| 最新欧美精品一区二区三区| 在线91免费看| bt7086福利一区国产| 视频在线观看91| 中文字幕精品在线不卡| 欧美日韩精品欧美日韩精品| 国产一区二区伦理| 亚洲国产精品视频| 国产午夜精品在线观看| 欧美日韩视频第一区| 国产成人欧美日韩在线电影| 亚洲成人高清在线| 国产欧美精品一区二区三区四区| 欧美日韩一区 二区 三区 久久精品| 国产麻豆精品一区二区| 亚洲国产日韩综合久久精品| 中文字幕欧美日本乱码一线二线| 欧美日韩一本到| 99久久婷婷国产综合精品| 秋霞电影网一区二区| 亚洲丝袜美腿综合| 久久久综合视频| 欧美一区二区精品久久911| av在线不卡电影| 国内精品嫩模私拍在线| 日韩精品欧美精品| 亚洲综合色丁香婷婷六月图片| 欧美经典一区二区| 欧美xxxxxxxx| 欧美一级黄色大片| 欧美男同性恋视频网站| 色视频欧美一区二区三区| 国产91对白在线观看九色| 蜜臀久久99精品久久久久宅男| 亚洲激情图片小说视频| 国产精品传媒视频| 国产精品色一区二区三区| 久久亚洲捆绑美女| 中文字幕欧美一| 日韩女优视频免费观看| 在线观看91精品国产麻豆| 韩国欧美一区二区| 亚洲蜜臀av乱码久久精品| 欧美大片在线观看一区二区| 色婷婷一区二区| 日本午夜一本久久久综合| 久久久蜜臀国产一区二区| 91在线小视频| 国产91精品露脸国语对白| 久久精品av麻豆的观看方式| 一区二区三区在线不卡| 亚洲免费av高清| 亚洲另类春色校园小说| 亚洲精品videosex极品| 亚洲蜜臀av乱码久久精品| 日韩美女啊v在线免费观看| 综合色中文字幕| 中文字幕在线不卡一区| 亚洲女与黑人做爰| 怡红院av一区二区三区| 亚洲一区精品在线| 日韩中文字幕亚洲一区二区va在线| 五月综合激情网| 日韩在线观看一区二区| 精品一区二区三区在线播放 | 日韩精品在线看片z| 91精品国产色综合久久ai换脸 | 国产成人8x视频一区二区| 国产电影精品久久禁18| caoporn国产精品| 91国偷自产一区二区三区观看| 欧美日韩综合在线| 91精品国产免费久久综合| 精品成人在线观看| 国产精品国产三级国产| 夜夜嗨av一区二区三区| 日韩av电影天堂| 国产精品亚洲а∨天堂免在线| 99久久er热在这里只有精品66| 精品婷婷伊人一区三区三| 日韩精品一区二区三区四区| 国产日韩综合av| 亚洲成av人片在线| 国产精品一二三在| 欧洲精品一区二区| 911精品国产一区二区在线| 国产日韩视频一区二区三区| 亚洲卡通动漫在线| 美女在线视频一区| 成人黄页在线观看| 欧美精品自拍偷拍动漫精品| 日韩片之四级片| 亚洲色图欧美在线| 国产成人在线视频网址| 2014亚洲片线观看视频免费| 国产日产欧美一区| 青青草国产精品97视觉盛宴| 国产宾馆实践打屁股91| 7777精品伊人久久久大香线蕉超级流畅| 久久一留热品黄| 亚洲成人福利片| 99re这里只有精品6| 欧洲人成人精品| 日韩国产欧美在线观看| 亚洲一区二区不卡免费| 婷婷国产v国产偷v亚洲高清| 成人国产精品免费观看视频| 91精品国产一区二区三区香蕉| 亚洲国产精品av| 激情文学综合网| 欧美三区在线观看| 国产精品美女久久福利网站| 毛片av一区二区| 欧美日韩中文国产| 亚洲日本免费电影| 成人aa视频在线观看| 精品盗摄一区二区三区| 日韩高清在线电影| 欧美在线不卡一区| 日韩一区在线播放| 成人听书哪个软件好| 久久久久久夜精品精品免费| 久久精品国产亚洲高清剧情介绍| 在线观看免费视频综合| 日韩理论在线观看| 成人av在线资源网| 国产亚洲一区二区在线观看| 捆绑调教美女网站视频一区| 欧美体内she精高潮| 一区二区三区在线观看动漫| www.亚洲在线| 欧美激情一区三区| 懂色av噜噜一区二区三区av| 久久女同互慰一区二区三区| 狠狠色丁香婷婷综合| 精品毛片乱码1区2区3区| 久久se精品一区精品二区| 91精品国产高清一区二区三区| 亚洲h在线观看| 国产免费久久精品| 国产麻豆精品95视频| 久久欧美中文字幕| 日韩精品专区在线影院重磅| 偷拍一区二区三区| 欧美日韩黄视频| 日本大胆欧美人术艺术动态 | 亚洲四区在线观看| 99久久99久久精品免费看蜜桃| 亚洲欧美综合网| 99久久久精品| 亚洲狠狠爱一区二区三区| 亚洲精品欧美在线| 久久女同性恋中文字幕| 一区二区三区在线视频观看| 日韩欧美一级二级| 日本韩国欧美三级| 成人三级伦理片| 久久精品国产免费| 亚洲h动漫在线| 亚洲一区二区中文在线| 中文字幕一区二区在线播放| 久久久另类综合| 日韩视频永久免费| 日韩亚洲欧美综合| 久久亚洲一级片| 亚洲欧美一区二区三区孕妇| 91视频国产资源| 婷婷久久综合九色综合绿巨人| 制服丝袜亚洲精品中文字幕| 精品在线播放免费| 日韩一区在线播放| 91麻豆精品国产无毒不卡在线观看 | 日本不卡一区二区| 国产日韩v精品一区二区| 色综合久久99| 精品亚洲成a人在线观看| 中文字幕一区二区在线播放|