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

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

?? main.lss

?? 給出一個簡單操作系統在AVR中應用實例
?? LSS
?? 第 1 頁 / 共 2 頁
字號:
}

#if OS_TIME_DLY_EN
//OS Time Delay --- 使任務延時Tdly個時間節拍
void OSTimeDly(INT16U Tdly)               /* Delay Tdly clock tick */
{
	OSTCB[OS_TASK_CrtPrio].OSTimeDly=Tdly+OS_TASK_TimeOut;
	OSTCB[OS_TASK_CrtPrio].OSTaskStatus=OS_TASK_WaitTicks;
	OSSched();
}
#endif

#if OS_TASK_SUSPEND_EN>0
//把正在運行的任務掛起(Suspend a task)。
void OSTaskSuspend(INT8U TaskPrio) 
{
	OSTCB[OS_TASK_CrtPrio].OSTaskStatus=OS_TASK_Rdy;
	OSTCB[TaskPrio].OSTaskStatus=OS_TASK_Suspend;
	OSTCB[TaskPrio].OSTimeDly=OS_TASK_TimeOut;
	OSSched();
}
#endif

#if OS_TASK_Resume_EN>0
// 恢復被掛起的任務(resume a task)。
void OSTaskResume(INT8U TaskPrio) 
{
	OSTCB[TaskPrio].OSTaskStatus=OS_TASK_Rdy;
}
#endif

//任務調度,把CPU控制權轉到優先級最高的處于就緒態的任務。如果沒有處于就緒態的任務,就地等待,
void OSSched(void) 
{
	do
	{
		OS_TASK_HighPri=OSPrioHighRdy();
 190:	c4 df       	rcall	.-120    	; 0x11a
 192:	80 93 7c 01 	sts	0x017C, r24
	} while (OS_TASK_HighPri==no_TASK_Rdy);
 196:	8f 3f       	cpi	r24, 0xFF	; 255
 198:	d9 f3       	breq	.-10     	; 0x190
	OSTCB[OS_TASK_HighPri].OSTaskStatus=OS_TASK_Run;
 19a:	99 27       	eor	r25, r25
 19c:	f9 2f       	mov	r31, r25
 19e:	e8 2f       	mov	r30, r24
 1a0:	ee 0f       	add	r30, r30
 1a2:	ff 1f       	adc	r31, r31
 1a4:	ee 0f       	add	r30, r30
 1a6:	ff 1f       	adc	r31, r31
 1a8:	e8 0f       	add	r30, r24
 1aa:	f9 1f       	adc	r31, r25
 1ac:	ed 59       	subi	r30, 0x9D	; 157
 1ae:	fe 4f       	sbci	r31, 0xFE	; 254
 1b0:	8b ef       	ldi	r24, 0xFB	; 251
 1b2:	82 83       	std	Z+2, r24	; 0x02
	OS_TASK_INT();
 1b4:	72 d0       	rcall	.+228    	; 0x29a
 1b6:	08 95       	ret

000001b8 <OSTimeDly>:
 1b8:	20 91 62 01 	lds	r18, 0x0162
 1bc:	33 27       	eor	r19, r19
 1be:	f3 2f       	mov	r31, r19
 1c0:	e2 2f       	mov	r30, r18
 1c2:	ee 0f       	add	r30, r30
 1c4:	ff 1f       	adc	r31, r31
 1c6:	ee 0f       	add	r30, r30
 1c8:	ff 1f       	adc	r31, r31
 1ca:	e2 0f       	add	r30, r18
 1cc:	f3 1f       	adc	r31, r19
 1ce:	ed 59       	subi	r30, 0x9D	; 157
 1d0:	fe 4f       	sbci	r31, 0xFE	; 254
 1d2:	83 83       	std	Z+3, r24	; 0x03
 1d4:	94 83       	std	Z+4, r25	; 0x04
 1d6:	8a ef       	ldi	r24, 0xFA	; 250
 1d8:	82 83       	std	Z+2, r24	; 0x02
 1da:	da df       	rcall	.-76     	; 0x190
 1dc:	08 95       	ret

000001de <OSTaskSuspend>:
 1de:	90 91 62 01 	lds	r25, 0x0162
 1e2:	29 2f       	mov	r18, r25
 1e4:	33 27       	eor	r19, r19
 1e6:	43 e6       	ldi	r20, 0x63	; 99
 1e8:	51 e0       	ldi	r21, 0x01	; 1
 1ea:	f3 2f       	mov	r31, r19
 1ec:	e2 2f       	mov	r30, r18
 1ee:	ee 0f       	add	r30, r30
 1f0:	ff 1f       	adc	r31, r31
 1f2:	ee 0f       	add	r30, r30
 1f4:	ff 1f       	adc	r31, r31
 1f6:	e2 0f       	add	r30, r18
 1f8:	f3 1f       	adc	r31, r19
 1fa:	e4 0f       	add	r30, r20
 1fc:	f5 1f       	adc	r31, r21
 1fe:	9c ef       	ldi	r25, 0xFC	; 252
 200:	92 83       	std	Z+2, r25	; 0x02
 202:	99 27       	eor	r25, r25
 204:	f9 2f       	mov	r31, r25
 206:	e8 2f       	mov	r30, r24
 208:	ee 0f       	add	r30, r30
 20a:	ff 1f       	adc	r31, r31
 20c:	ee 0f       	add	r30, r30
 20e:	ff 1f       	adc	r31, r31
 210:	e8 0f       	add	r30, r24
 212:	f9 1f       	adc	r31, r25
 214:	e4 0f       	add	r30, r20
 216:	f5 1f       	adc	r31, r21
 218:	8d ef       	ldi	r24, 0xFD	; 253
 21a:	82 83       	std	Z+2, r24	; 0x02
 21c:	13 82       	std	Z+3, r1	; 0x03
 21e:	14 82       	std	Z+4, r1	; 0x04
 220:	b7 df       	rcall	.-146    	; 0x190
 222:	08 95       	ret

00000224 <OSTaskResume>:
 224:	99 27       	eor	r25, r25
 226:	f9 2f       	mov	r31, r25
 228:	e8 2f       	mov	r30, r24
 22a:	ee 0f       	add	r30, r30
 22c:	ff 1f       	adc	r31, r31
 22e:	ee 0f       	add	r30, r30
 230:	ff 1f       	adc	r31, r31
 232:	e8 0f       	add	r30, r24
 234:	f9 1f       	adc	r31, r25
 236:	ed 59       	subi	r30, 0x9D	; 157
 238:	fe 4f       	sbci	r31, 0xFE	; 254
 23a:	8c ef       	ldi	r24, 0xFC	; 252
 23c:	82 83       	std	Z+2, r24	; 0x02
 23e:	08 95       	ret

00000240 <InitOSTimer>:
#define T0_TCNT0 (256 - (T0_RELOAD & 0xff))
//Initial OS Timer for time ticks --- 初始化時間節拍定時器。
void InitOSTimer(void)
{
  TIMSK |= (1<<1);     // set T0IE0
 240:	89 b7       	in	r24, 0x39	; 57
 242:	82 60       	ori	r24, 0x02	; 2
 244:	89 bf       	out	0x39, r24	; 57
  TCCR0  = 0x05;       // CTC0=CK/1024
 246:	85 e0       	ldi	r24, 0x05	; 5
 248:	83 bf       	out	0x33, r24	; 51
  TCNT0  = T0_TCNT0;   // (256 - (T0_RELOAD & 0xff))
 24a:	8a e7       	ldi	r24, 0x7A	; 122
 24c:	82 bf       	out	0x32, r24	; 50
  SREG  |= (1<<7);     // SEI
 24e:	8f b7       	in	r24, 0x3f	; 63
 250:	80 68       	ori	r24, 0x80	; 128
 252:	8f bf       	out	0x3f, r24	; 63
 254:	08 95       	ret

00000256 <OSTaskCreate>:
}

//建立一個任務(Create a Task)。
//Inport :  tFunc --- function address , tStk --- stack bottom , prio --- Priority .
void OSTaskCreate (void (*tFunc)(void) , OS_STK *tStk, INT8U prio) 
{
 256:	cf 93       	push	r28
 258:	df 93       	push	r29
 25a:	28 2f       	mov	r18, r24
 25c:	39 2f       	mov	r19, r25
 25e:	f7 2f       	mov	r31, r23
 260:	e6 2f       	mov	r30, r22
 262:	84 2f       	mov	r24, r20
 	OSTCB[prio].OSTaskStatus = OS_TASK_Rdy;
 264:	99 27       	eor	r25, r25
 266:	b9 2f       	mov	r27, r25
 268:	a8 2f       	mov	r26, r24
 26a:	aa 0f       	add	r26, r26
 26c:	bb 1f       	adc	r27, r27
 26e:	aa 0f       	add	r26, r26
 270:	bb 1f       	adc	r27, r27
 272:	a8 0f       	add	r26, r24
 274:	b9 1f       	adc	r27, r25
 276:	ad 59       	subi	r26, 0x9D	; 157
 278:	be 4f       	sbci	r27, 0xFE	; 254
 27a:	8c ef       	ldi	r24, 0xFC	; 252
 27c:	db 2f       	mov	r29, r27
 27e:	ca 2f       	mov	r28, r26
 280:	8a 83       	std	Y+2, r24	; 0x02
	OSTCB[prio].OSStkTop = (INT16U)tStk-1 /* Initial value when main was called             */
 282:	3f 97       	sbiw	r30, 0x0f	; 15
 284:	ed 93       	st	X+, r30
 286:	fc 93       	st	X, r31
 288:	3f 96       	adiw	r30, 0x0f	; 15
                          -12             /* reserve for to save R0-R5 , R26-R31 registers  */
                          -sizeof(INT16U) /* The PC value to be loaded                      */
					   ;
	*--tStk	=  (INT16U const)tFunc & 0xff;   /* Save low byte of task function address   */
 28a:	22 93       	st	-Z, r18
	*--tStk	=  (INT16U const)tFunc / 0x100;  /* Save high byte of task function address  */
 28c:	31 97       	sbiw	r30, 0x01	; 1
 28e:	83 2f       	mov	r24, r19
 290:	99 27       	eor	r25, r25
 292:	80 83       	st	Z, r24
 294:	df 91       	pop	r29
 296:	cf 91       	pop	r28
 298:	08 95       	ret

0000029a <OSCtxSw>:
}

static unsigned int SaveSP; //用于保存需恢復的SP,在OSTickISR或用戶中斷結束做任務切換時,恢復SP.

//context switch interrupt --- 軟中斷任務切換
void OSCtxSw(void) 
{
//asm("in %0, %1" : "=r" (value) : "I" (PORTD) : );

	asm("PUSH R31");
 29a:	ff 93       	push	r31
	asm("PUSH R30");
 29c:	ef 93       	push	r30
	asm("PUSH R29");	
 29e:	df 93       	push	r29
	asm("PUSH R28");
 2a0:	cf 93       	push	r28
	asm("PUSH R27");
 2a2:	bf 93       	push	r27
	asm("PUSH R26");
 2a4:	af 93       	push	r26

	asm("PUSH R0");
 2a6:	0f 92       	push	r0
	asm("PUSH R1");
 2a8:	1f 92       	push	r1
	asm("PUSH R2");	
 2aa:	2f 92       	push	r2
	asm("PUSH R3");
 2ac:	3f 92       	push	r3
	asm("PUSH R4");
 2ae:	4f 92       	push	r4
	asm("PUSH R5");	
 2b0:	5f 92       	push	r5

	asm("IN R31,0x3d");
 2b2:	fd b7       	in	r31, 0x3d	; 61
	asm("STS SaveSP,R31");
 2b4:	f0 93 60 00 	sts	0x0060, r31
	asm("IN R31,0x3e");	
 2b8:	fe b7       	in	r31, 0x3e	; 62
	asm("STS SaveSP+1,R31");	
 2ba:	f0 93 61 00 	sts	0x0061, r31

	OSTCB[OS_TASK_CrtPrio].OSStkTop = SaveSP; //Save the current task top.
 2be:	80 91 62 01 	lds	r24, 0x0162
 2c2:	99 27       	eor	r25, r25
 2c4:	23 e6       	ldi	r18, 0x63	; 99
 2c6:	31 e0       	ldi	r19, 0x01	; 1
 2c8:	f9 2f       	mov	r31, r25
 2ca:	e8 2f       	mov	r30, r24
 2cc:	ee 0f       	add	r30, r30
 2ce:	ff 1f       	adc	r31, r31
 2d0:	ee 0f       	add	r30, r30
 2d2:	ff 1f       	adc	r31, r31
 2d4:	e8 0f       	add	r30, r24
 2d6:	f9 1f       	adc	r31, r25
 2d8:	e2 0f       	add	r30, r18
 2da:	f3 1f       	adc	r31, r19
 2dc:	80 91 60 00 	lds	r24, 0x0060
 2e0:	90 91 61 00 	lds	r25, 0x0061
 2e4:	80 83       	st	Z, r24
 2e6:	91 83       	std	Z+1, r25	; 0x01

	OS_TASK_CrtPrio=OS_TASK_HighPri;
 2e8:	80 91 7c 01 	lds	r24, 0x017C
 2ec:	80 93 62 01 	sts	0x0162, r24

// Load context from the stack
    SaveSP = OSTCB[OS_TASK_CrtPrio].OSStkTop;	//load the high priority task task top.
 2f0:	99 27       	eor	r25, r25
 2f2:	f9 2f       	mov	r31, r25
 2f4:	e8 2f       	mov	r30, r24
 2f6:	ee 0f       	add	r30, r30
 2f8:	ff 1f       	adc	r31, r31
 2fa:	ee 0f       	add	r30, r30
 2fc:	ff 1f       	adc	r31, r31
 2fe:	e8 0f       	add	r30, r24
 300:	f9 1f       	adc	r31, r25
 302:	e2 0f       	add	r30, r18
 304:	f3 1f       	adc	r31, r19
 306:	80 81       	ld	r24, Z
 308:	91 81       	ldd	r25, Z+1	; 0x01
 30a:	90 93 61 00 	sts	0x0061, r25
 30e:	80 93 60 00 	sts	0x0060, r24

	asm("CLI");					
 312:	f8 94       	cli
	asm("LDS R31,SaveSP"); 
 314:	f0 91 60 00 	lds	r31, 0x0060
	asm("OUT 0x3d,R31");
 318:	fd bf       	out	0x3d, r31	; 61
	asm("LDS R31,SaveSP+1"); 
 31a:	f0 91 61 00 	lds	r31, 0x0061
	asm("OUT 0x3e,R31");
 31e:	fe bf       	out	0x3e, r31	; 62
	asm("SEI");
 320:	78 94       	sei
	
    asm("POP R5");
 322:	5f 90       	pop	r5
    asm("POP R4");
 324:	4f 90       	pop	r4
    asm("POP R3");
 326:	3f 90       	pop	r3
    asm("POP R2");
 328:	2f 90       	pop	r2
    asm("POP R1");
 32a:	1f 90       	pop	r1
    asm("POP R0");
 32c:	0f 90       	pop	r0
		
	asm("POP R26");
 32e:	af 91       	pop	r26
	asm("POP R27");
 330:	bf 91       	pop	r27
    asm("POP R28");
 332:	cf 91       	pop	r28
    asm("POP R29");
 334:	df 91       	pop	r29
    asm("POP R30");
 336:	ef 91       	pop	r30
    asm("POP R31");
 338:	ff 91       	pop	r31
 33a:	08 95       	ret

0000033c <__vector_7>:

}

//OS Time Tick Interrupt,OS 時鐘節拍中斷.
INTERRUPT(SIG_OVERFLOW0)
{
 33c:	78 94       	sei
 33e:	1f 92       	push	r1
 340:	0f 92       	push	r0
 342:	0f b6       	in	r0, 0x3f	; 63
 344:	0f 92       	push	r0
 346:	11 24       	eor	r1, r1
 348:	2f 93       	push	r18
 34a:	3f 93       	push	r19
 34c:	4f 93       	push	r20
 34e:	5f 93       	push	r21
 350:	6f 93       	push	r22
 352:	7f 93       	push	r23
 354:	8f 93       	push	r24
 356:	9f 93       	push	r25
 358:	af 93       	push	r26
 35a:	bf 93       	push	r27
 35c:	ef 93       	push	r30
 35e:	ff 93       	push	r31
    TCNT0  = T0_TCNT0;   // (256 - (T0_RELOAD & 0xff))
 360:	8a e7       	ldi	r24, 0x7A	; 122
 362:	82 bf       	out	0x32, r24	; 50
#if OS_TICK_HOOK_EN>0
//	AppTickHook();     //Hook file for a time tick --- 用戶每個時間節拍的鉤子函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产3级a| 天堂av在线一区| 欧美日韩免费一区二区三区| 狠狠色狠狠色合久久伊人| 亚洲一区二区三区美女| 国产日韩欧美精品一区| 欧美一区二区三区白人| 91首页免费视频| 国产盗摄视频一区二区三区| 日韩va亚洲va欧美va久久| 亚洲日本va午夜在线影院| 国产午夜精品久久久久久久| 日韩欧美二区三区| 精品国产91亚洲一区二区三区婷婷| 国产.欧美.日韩| 久久成人18免费观看| 日日摸夜夜添夜夜添精品视频 | 欧美日本一区二区在线观看| 不卡高清视频专区| 国产在线日韩欧美| 琪琪一区二区三区| 日韩黄色片在线观看| 亚洲综合图片区| 亚洲另类在线视频| 亚洲色图视频网| 综合欧美一区二区三区| 国产精品午夜在线| 中文字幕不卡在线| 国产欧美日韩在线观看| 国产色产综合产在线视频| 欧美tickle裸体挠脚心vk| 日韩免费一区二区三区在线播放| 欧美精品在线视频| 337p亚洲精品色噜噜| 在线播放一区二区三区| 宅男在线国产精品| 91精品婷婷国产综合久久性色| 欧美综合欧美视频| 精品视频色一区| 欧美老女人在线| 欧美精品粉嫩高潮一区二区| 制服丝袜亚洲色图| 欧美日韩高清一区二区| 欧美一区二区三区小说| 日韩亚洲欧美在线观看| 精品久久一区二区| 日本一区二区视频在线| 欧美国产激情二区三区| 国产精品国产三级国产普通话蜜臀| 中文字幕日韩精品一区| 亚洲欧美成aⅴ人在线观看| 亚洲欧美经典视频| 香蕉av福利精品导航| 蜜桃av一区二区三区| 久久国产精品99精品国产 | 欧美午夜精品电影| 欧美专区日韩专区| 884aa四虎影成人精品一区| 91精品国产入口| 久久综合99re88久久爱| 国产精品久久久久久久浪潮网站 | 久久久久国产精品免费免费搜索| 国产欧美日本一区视频| 国产精品久久久久久户外露出 | 欧美一区二区三区小说| 国产色产综合产在线视频| 成人免费在线视频观看| 亚洲在线成人精品| 精品在线观看免费| 99精品在线观看视频| 欧美日韩1区2区| 国产色产综合产在线视频| 亚洲男同1069视频| 男人操女人的视频在线观看欧美| 国产又粗又猛又爽又黄91精品| av中文字幕在线不卡| 欧美精品三级日韩久久| 国产三级三级三级精品8ⅰ区| 亚洲日本va午夜在线影院| 秋霞影院一区二区| 成人av免费在线| 在线成人午夜影院| 国产精品美女久久久久久久久久久| 亚洲图片欧美一区| 风间由美性色一区二区三区| 欧美美女bb生活片| 国产精品美女久久久久久久网站| 石原莉奈一区二区三区在线观看| 成人av在线播放网址| 欧美一区二区三区播放老司机 | 蜜臀av一区二区三区| 成人黄色小视频在线观看| 欧美精品日韩一区| 国产精品不卡一区二区三区| 久久国产精品无码网站| 欧美无砖砖区免费| 中文字幕第一区第二区| 美腿丝袜亚洲一区| 欧美图区在线视频| 国产精品入口麻豆原神| 久国产精品韩国三级视频| 欧美视频三区在线播放| 国产精品第五页| 韩国精品主播一区二区在线观看| 欧美日韩精品欧美日韩精品一| 国产精品国产精品国产专区不片 | 91福利国产成人精品照片| 久久久精品影视| 视频一区视频二区中文| 91九色最新地址| 成人欧美一区二区三区| 岛国精品在线播放| 精品国产乱码久久| 日韩不卡免费视频| 欧美猛男gaygay网站| 亚洲福利国产精品| 欧美中文字幕亚洲一区二区va在线 | 欧美激情一区二区三区全黄| 精品一区二区久久| 日韩欧美一区电影| 日韩vs国产vs欧美| 欧美精品日日鲁夜夜添| 亚洲国产精品精华液网站| 色诱视频网站一区| 亚洲人精品午夜| eeuss鲁一区二区三区| 国产欧美日本一区视频| 国产乱码精品一区二区三区忘忧草 | 日韩精品成人一区二区在线| 色综合久久88色综合天天 | 国产资源在线一区| 精品国产91久久久久久久妲己| 九九国产精品视频| 精品国产网站在线观看| 裸体一区二区三区| 欧美成人一级视频| 国产一区二区视频在线| 久久精品日韩一区二区三区| 国产精品538一区二区在线| 国产日韩欧美a| eeuss鲁片一区二区三区在线看| 国产精品理论片| 92精品国产成人观看免费| 亚洲日本在线天堂| 欧美日韩在线免费视频| 视频一区在线播放| 日韩精品一区二区三区三区免费 | 日韩一区二区影院| 激情成人综合网| 日本一区二区三区电影| 91啪在线观看| 婷婷亚洲久悠悠色悠在线播放 | 国产欧美日产一区| 91麻豆福利精品推荐| 午夜一区二区三区视频| 日韩一区二区三区三四区视频在线观看| 日韩国产欧美一区二区三区| 精品国产伦一区二区三区观看体验| 国产在线精品一区二区不卡了 | 石原莉奈一区二区三区在线观看| 欧美一区二区在线视频| 韩国av一区二区三区在线观看| 国产日韩欧美激情| 欧美综合视频在线观看| 久久se精品一区精品二区| 中文字幕精品综合| 精品视频一区二区三区免费| 久久66热偷产精品| 亚洲品质自拍视频网站| 欧美一区二区三区性视频| 成人精品视频一区二区三区| 洋洋av久久久久久久一区| 欧美电影免费观看高清完整版在| 不卡电影一区二区三区| 香蕉久久夜色精品国产使用方法 | 中文幕一区二区三区久久蜜桃| 91高清视频免费看| 久久国产精品第一页| 亚洲欧美二区三区| 精品少妇一区二区三区视频免付费 | 韩国欧美国产1区| 亚洲另类在线视频| 久久女同性恋中文字幕| 欧美日韩国产成人在线免费| 国产91在线观看丝袜| 亚洲成a人v欧美综合天堂| 国产欧美在线观看一区| 91精品欧美福利在线观看| 99久久精品国产毛片| 久久精品国产亚洲高清剧情介绍 | 色噜噜狠狠成人中文综合 | 精品在线视频一区| 亚洲综合一二区| 国产亚洲欧美日韩在线一区| 欧美亚洲国产一区在线观看网站 | 国产91丝袜在线播放九色| 午夜亚洲国产au精品一区二区| 国产精品成人在线观看| 精品99久久久久久| 欧美日韩国产精品成人|