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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? basictest4.c

?? 一個基于AVR 單片機的操作系統(tǒng),有組于了解操作系統(tǒng)在單片機上運行的內(nèi)幕.
?? C
字號:
//#define ENABLE_BIT_DEFINITIONS
//#define _SFR_ASM_COMPAT 1
#include <avrx-io.h>
#include <avrx-signal.h>
#include "avrx.h"
#include "hardware.h"
/*
 Basic Tasking Tests #4

 Exercises Message API

 The following API covered:
    AvrXSendMessage
    AvrXRecvMessage
    AvrXWaitMessage
    AvrXAckMessage
    AvrXTestMessageAck
    AvrXWaitMessageAck

To run: Step through Task 1.  Set break points on each of the "AvrXAckMessage()"
calls and in the _Overflow0_ routine and run through making sure each is called.
The sequence is not important as long as all four get called regularly.

Alternatively run this on hardware and check the bits on PortB that are toggled
with each sucessfull run.
 */

#define TCNT0_INIT (0xFF-CPUCLK/256/TICKRATE)
#define TMC8_CK256 (1<<CS02)

/*
   One group of task def's will be dropped depending upon which
   compiler is being used.
*/
AVRX_GCC_TASK(task1, 20, 3);
AVRX_GCC_TASK(task2, 20, 2);
AVRX_GCC_TASK(task3, 20, 2);

AVRX_IAR_TASK(task1, 14, 6, 3);
AVRX_IAR_TASK(task2, 14, 6, 2);
AVRX_IAR_TASK(task3, 14, 6, 2);

Mutex Sync2, Sync3;     // Synchronization semaphores between task1 and 2&3
MessageControlBlock Message1, Message2, Message3;
MessageQueue TestQueue;

AVRX_SIGINT(SIG_OVERFLOW0)
{
    IntProlog();
    TCNT0 = TCNT0_INIT;
//    outp(TCNT0_INIT, TCNT0);

    // This relies on us "priming the queue" in the main task

    if (AvrXTestMessageAck(&Message1) == SEM_DONE)
        AvrXIntSendMessage(&TestQueue, &Message1);
    Epilog();
}

int main(void)
{
    AvrXSetKernelStack(0);

    AvrXRunTask(&task1Tcb);

    Epilog();                   // Switch from AvrX Stack to first task
    while(1);
}

NAKEDFUNC(task1)
{
	DDRB = 0xFF;
	PORTB = 0xFF;
//    outp(0xFF, DDRB);
//    outp(0xFF, PORTB);

    // Verify initial condition of empty

    if (AvrXRecvMessage(&TestQueue) != NOMESSAGE)
        AvrXHalt();

    // Send and receive a message

    AvrXSendMessage(&TestQueue, &Message1);
    if (AvrXRecvMessage(&TestQueue) != &Message1)
        AvrXHalt();

    // Check to see that queue is empty

    if (AvrXRecvMessage(&TestQueue) != NOMESSAGE)
        AvrXHalt();

    // Acknowledge the message

    AvrXAckMessage(&Message1);
    if (AvrXTestMessageAck(&Message1) != SEM_DONE)
        AvrXHalt();

    // Queue up two messages

    AvrXSendMessage(&TestQueue, &Message1);
    AvrXSendMessage(&TestQueue, &Message2);
    if (AvrXWaitMessage(&TestQueue) != &Message1)
        AvrXHalt();
    AvrXAckMessage(&Message1);
    AvrXWaitMessageAck(&Message1);
    AvrXWaitMessage(&TestQueue);

    // Funky test to verify message queue is empty

    if ((unsigned)TestQueue.message || (unsigned)TestQueue.pid)
        AvrXHalt();

    // Ok, basic static queue mechanism checked out.  Now for
    // some dynamic stuff.
    // Task2 and Task3 jam messages onto the queue.  Task 1
    // runs low priority flushing the queue.

    AvrXRunTask(&task2Tcb);
    AvrXRunTask(&task3Tcb);

	TCNT0 = TCNT0_INIT;
	TCCR0 = TMC8_CK256;
	TIMSK = _BV(TOIE0);
//    outp(TCNT0_INIT, TCNT0);
//    outp(TMC8_CK256 , TCCR0);
//    outp((1<<TOIE0), TIMSK);    // Enable Timer overflow interrupt

    AvrXIntSendMessage(&TestQueue, &Message1); //Prime the interrupt queue

    while(1)
    {
        pMessageControlBlock msg;

        msg = AvrXWaitMessage(&TestQueue);
        AvrXAckMessage(msg);
        if ((msg = AvrXRecvMessage(&TestQueue)) != NOMESSAGE)
        {
            AvrXAckMessage(msg);
	        PORTB ^= _BV(PORTB0);
//            outp(inp(PORTB) ^ 1, PORTB);          // Toggle bits
        }
    }
}

NAKEDFUNC(task2)
{
    while(1)
    {
        AvrXSendMessage(&TestQueue, &Message2);
        AvrXWaitMessageAck(&Message2);
        PORTB ^= _BV(PORTB1);
//        outp(inp(PORTB) ^ 2, PORTB);          // Toggle bits
    }
}

NAKEDFUNC(task3)
{
    while(1)
    {
        AvrXSendMessage(&TestQueue, &Message3);
        AvrXWaitMessageAck(&Message3);
        PORTB ^= _BV(PORTB2);
//        outp(inp(PORTB) ^ 4, PORTB);          // Toggle bits
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩综合小视频| 欧美在线视频全部完| 色久优优欧美色久优优| 欧美成人福利视频| 亚洲第一狼人社区| www.成人网.com| 久久久亚洲午夜电影| 偷拍与自拍一区| 欧美日韩视频专区在线播放| 国产偷v国产偷v亚洲高清| 日韩二区在线观看| 欧美综合天天夜夜久久| 国产精品久久久久一区二区三区| 青青青爽久久午夜综合久久午夜| 欧洲亚洲国产日韩| 国产精品福利一区二区三区| 极品瑜伽女神91| 日韩欧美一二三| 日韩一区精品字幕| 欧美日韩亚洲国产综合| 亚洲美女在线国产| av成人老司机| 亚洲视频一二三| 成人h精品动漫一区二区三区| 精品理论电影在线观看 | 久久99热99| 欧美日韩黄色一区二区| 亚洲精品日产精品乱码不卡| 成人av在线影院| 国产精品传媒在线| 成人动漫精品一区二区| 中文字幕第一区第二区| 高清在线观看日韩| 国产精品卡一卡二| 91色视频在线| 一区二区三区不卡视频| 久久国产夜色精品鲁鲁99| 精品日韩av一区二区| 国产乱子轮精品视频| 久久先锋影音av| 国产成人av电影在线| 国产精品对白交换视频 | 国产一区二区在线观看免费| 精品国产露脸精彩对白| 国产美女娇喘av呻吟久久| 国产午夜亚洲精品不卡| 国产一区二区三区蝌蚪| 国产精品欧美一级免费| 91亚洲精品一区二区乱码| 亚洲精品国产一区二区三区四区在线| 91啦中文在线观看| 午夜精品一区二区三区电影天堂| 日韩午夜激情视频| 国产麻豆成人精品| 亚洲女与黑人做爰| 777奇米四色成人影色区| 激情综合网天天干| 亚洲人成精品久久久久久 | 91免费看视频| 偷拍与自拍一区| 国产亲近乱来精品视频| 99re在线精品| 久久国产精品色| 日韩一区在线免费观看| 91精品国产黑色紧身裤美女| 国产乱码字幕精品高清av| 一区二区三国产精华液| 精品成人一区二区| 日韩欧美资源站| 99re这里只有精品视频首页| 热久久免费视频| 综合久久给合久久狠狠狠97色 | 成a人片国产精品| 亚洲午夜一区二区| 久久久精品tv| 欧美日韩你懂的| 成人av电影在线| 久久99久久99| 亚洲一级在线观看| 亚洲欧美在线视频| 精品成人一区二区三区四区| 欧美三电影在线| 91免费视频观看| 国产福利不卡视频| 男人的天堂亚洲一区| 亚洲精品v日韩精品| 国产精品私人自拍| 欧美成人精品高清在线播放| 欧美日韩色综合| 91在线国内视频| 成人高清免费在线播放| 激情综合一区二区三区| 免费观看91视频大全| 一区二区久久久久| 亚洲色图另类专区| 中文字幕免费不卡| 精品国产乱码久久久久久浪潮| 欧美三级电影网| 在线视频你懂得一区二区三区| 成人免费视频免费观看| 狠狠色丁香婷婷综合| 美女网站视频久久| 免费观看一级欧美片| 蜜臀久久久99精品久久久久久| 亚洲成人av资源| 亚洲大片在线观看| 一区二区三区在线不卡| 亚洲免费观看高清完整| 亚洲人成人一区二区在线观看 | 在线观看中文字幕不卡| av成人老司机| 92精品国产成人观看免费| 99久久er热在这里只有精品15 | 最新国产精品久久精品| 亚洲国产高清不卡| 中文字幕不卡的av| 中文字幕在线视频一区| 中文字幕一区二区三区在线播放 | 国产日本欧美一区二区| 中文字幕欧美日本乱码一线二线| 久久夜色精品国产噜噜av| 久久免费视频一区| 中文字幕欧美日本乱码一线二线| 日本一区二区三区四区在线视频| 国产三级精品视频| 国产精品二区一区二区aⅴ污介绍| 1024成人网色www| 亚洲最大成人综合| 日本特黄久久久高潮| 国内成人免费视频| 95精品视频在线| 欧美日韩国产小视频| 日韩欧美成人一区| 国产女主播视频一区二区| 综合婷婷亚洲小说| 同产精品九九九| 99这里只有久久精品视频| 91极品美女在线| 精品久久久久久久久久久久包黑料| 久久综合九色综合欧美亚洲| 国产欧美久久久精品影院| 一区二区视频在线看| 蜜臀av亚洲一区中文字幕| 国产不卡视频一区| 在线看日本不卡| 久久综合狠狠综合久久综合88| 国产精品国产三级国产aⅴ中文 | 欧美日韩国产成人在线91| 欧美一级在线视频| 中文字幕日本不卡| 亚洲va中文字幕| 国产麻豆日韩欧美久久| 欧美午夜视频网站| 久久久国产一区二区三区四区小说| 亚洲欧美日韩国产成人精品影院| 爽好久久久欧美精品| 成人av网站在线| 精品久久国产字幕高潮| 亚洲精品综合在线| 国产伦精品一区二区三区免费| 欧美色图在线观看| 国产精品久久久久影院亚瑟| 日本欧美在线观看| 在线中文字幕不卡| 欧美激情一二三区| 精品一区二区三区在线观看| 色就色 综合激情| 亚洲国产高清在线| 韩国一区二区视频| 欧美一区二区三区视频在线观看 | av电影在线观看一区| 69久久夜色精品国产69蝌蚪网| 国产精品免费丝袜| 久久久国产精品不卡| 在线视频你懂得一区| 91成人看片片| 精品午夜久久福利影院| 欧美综合视频在线观看| 国产精品入口麻豆九色| 男人的j进女人的j一区| 欧美日韩卡一卡二| 亚洲免费av高清| 91香蕉视频污| 亚洲国产精品成人久久综合一区 | 欧美区视频在线观看| 日韩一区在线看| 成人av资源在线观看| 国产亚洲欧美一区在线观看| 久久精品999| 日韩欧美黄色影院| 男人的j进女人的j一区| 欧美久久久一区| 亚洲影视在线观看| 97久久超碰精品国产| 国产精品久久久久影院亚瑟 | 成人一区二区三区视频在线观看| 欧美成人精精品一区二区频| 久久激情综合网| 久久综合视频网| 国产很黄免费观看久久|