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

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

?? 3led_10f.c

?? pic12F675 learning module by microchip
?? C
字號:
#include <pic.h>
#include <osa.h>


#ifdef _10F222
__CONFIG (OSC_4MHZ & MCPUDIS & WDTDIS & MCLRDIS);
#else 
__CONFIG (WDTDIS & MCLRDIS);
#endif



#define TRIS_CONST  0x08
#define GPIO_CONST  0x00


// Buttons use same pins as LEDs
#define pin_RED_LED        GP0
#define pin_GREEN_LED      GP1
#define pin_BLUE_LED       GP2

#define pin_RED_BUTTON     GP0
#define pin_GREEN_BUTTON   GP1
#define pin_BLUE_BUTTON    GP2

#define pin_MODE_BUTTON    GP3




// Two bits for synchronize tasks. 
#define bRunTaskWork        OS_Flags.bUser0
#define bRunTaskButtons     OS_Flags.bUser1

// Two bits bUser0 and bUser1 in system variable OS_Flags can be used for user purposes.



/****************************************************************************/

// Intensity variables for each LED
char    cRed;
char    cBlue;
char    cGreen;
    

// LED's work mode
struct {
    char cState:4;          // Mode (see ChangeIntensity() )
    char reserved:4;    
} Mode;    

// Speed of intensity changing
union {
    char cValue;
    struct {
        char cPrs:5;        // Prescaler of intensity changing
        char bTimeout:1;    // When becames 1 (cPrs overflows), it is time to change intensity
        char cSpeed:2;      // Intensity changing speed (see SpeedConst[4] array)
    } bits;    
} Speed;         

/****************************************************************************/

const char SpeedConst[4] = {1, 4, 16, 32};  // Speed of Speed.cPrs increasing

/****************************************************************************/

void ChangeIntensity (void);
void Task_Leds (void);
void Task_Work (void);
void Task_Buttons (void);










/****************************************************************************/
/*                                                                          */
/****************************************************************************/


void main (void)
{
    OPTION = 0xC5;      // tmr0 period 16 ms, pull-ups disable
    TRIS = TRIS_CONST;
    #ifdef _10F222
    ADCON0 = 0;         // GP0, GP1 - digital
    #endif
    #ifdef _10F206
    CMCON0 = 0;         // GP0, GP1 - digital
    #endif
    OSCCAL &= ~1;       // GP2 - digital
    GPIO = 0x00;
    
    Mode.cState = 0;
    cBlue = 0xFF;
    //..................................................
    // Init system vars
    OS_Init();

    //..................................................
    // Create task 
    OS_CreateTask(0, Task_Leds);
    OS_CreateTask(0, Task_Work);
    OS_CreateTask(0, Task_Buttons);

    
    //..................................................
    // Run scheduler
    OS_Run();
    
}    





/****************************************************************************/
/* Forming PWM control signals for all three LEDs                           */
/****************************************************************************/

void Task_Leds (void)
{
    char temp;

    for (;;) {
        //..............................................................
        // Wait TMR0 overflow
        OS_WaitCondition(!(TMR0 & 0x80));
        TRIS = 0;
        TMR0 = 0;
        
        //..............................................................
        // Switch ON all working LEDs
        if (cRed)   pin_RED_LED = 1;
        if (cGreen) pin_GREEN_LED = 1;
        if (cBlue)  pin_BLUE_LED = 1;

        //..............................................................
        // Form pulses 
        do {
            if (TMR0 >= cRed)     pin_RED_LED = 0;
            if (TMR0 >= cGreen)   pin_GREEN_LED = 0;
            if (TMR0 >= cBlue)    pin_BLUE_LED = 0;
        } while (GPIO & 7);
        
        if (!(TMR0 & 0x80)) OS_WaitCondition(TMR0 & 0x80);
        //..............................................................
        // Run other tasks
        bRunTaskWork = 1;
        bRunTaskButtons = 1;
    }    
}






/****************************************************************************/
/* Task for change LED's intensity.                                         */
/****************************************************************************/

void Task_Work (void)
{
    for (;;) {
        //..............................................................
        OS_WaitCondition(bRunTaskWork);
        bRunTaskWork = 0;

        //..............................................................
        // Increase prescaler. When prescaler overflows, bit bTimeout will be set
 
        Speed.cValue += SpeedConst[Speed.bits.cSpeed];
        if (!Speed.bits.bTimeout) continue;
        
        // Reset prescaler and timeout
        Speed.bits.cPrs = 0;
        Speed.bits.bTimeout = 0;
        
        // Set new intensity values
        ChangeIntensity();  
    }
}    





/****************************************************************************/
/* Work with buttons.                                                       */
/****************************************************************************/

void Task_Buttons (void)
{
    char temp;
    for (;;) {
        TRIS = 0x0; NOP();  GPIO = 0;
        //..............................................................
        // Wait for synchronization
        OS_WaitCondition(bRunTaskButtons);

        // Set all pins as inputs
        TRIS = 0xF;
        bRunTaskButtons = 0;
        NOP();

        // Is any button pressed?
        if (!GPIO) continue;      // No.
        
        //--------------------------------------------------------------
        // Yes.

        //..............................................................
        // Buttons 1, 2 and 3 - set RED, GREEN or BLUE intensity at maximum
        if (pin_RED_BUTTON) {
            cRed = 0xFF;
            cGreen = 0;
            cBlue = 0;
            Mode.cState = 1;
        }    
        //..............................................................
        if (pin_GREEN_BUTTON) {
            cRed = 0x00;
            cGreen = 0xFF;
            cBlue = 0x00;
            Mode.cState = 2;
        }    
        //..............................................................
        if (pin_BLUE_BUTTON) {
            cRed = 0x00;
            cGreen = 0x00;
            cBlue = 0xFF;
            Mode.cState = 0;
        }

        //..............................................................
        // Button 4 - change speed
        if (pin_MODE_BUTTON)    Speed.bits.cSpeed += 1;
        
        
        //..............................................................
        // Wait for button release
        do {
            TRIS = 0x0; NOP();  GPIO = 0;
            OS_WaitCondition(bRunTaskButtons);
            TRIS = 0xF;
            bRunTaskButtons = 0;
            NOP();
        } while (GPIO);
    } 
}        







/********************************************************************************/
/* ChangeIntensity - intensity changing algorithm                               */
/* This function is unrelated to the RTOS. You can write your own function.     */
/********************************************************************************/


#define TEMP(c) temp = c >> 4; temp >>= 1; if(temp & 4) temp ^= 0x07; temp++;
#define INC(c) c+=temp;
#define DEC(c) c-=temp; if (!CARRY) c = 0;

void ChangeIntensity (void)
{
    char temp;

    switch (Mode.cState) {
    case 0:
        TEMP(cRed);
        DEC(cBlue);
        INC(cRed);
        if (CARRY) {
            cRed = 0xFF;
            Mode.cState++;
        }    
        break;
    case 1:
        TEMP(cGreen);
        DEC(cRed);
        INC(cGreen);
        if (CARRY) {
            cGreen = 0xFF;
            Mode.cState++;
        }    
        break;
    case 2:
        TEMP(cBlue);
        DEC(cGreen);
        INC(cBlue);
        if (CARRY) {
            cBlue = 0xFF;
            Mode.cState++;
        }    
        break;
    default:
        Mode.cState = 0;
        break;
    }
    
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品乱码亚洲一区二区不卡| 国产成人超碰人人澡人人澡| 亚洲国产岛国毛片在线| 精品国产乱码久久久久久闺蜜| 7777精品伊人久久久大香线蕉 | 午夜日韩在线观看| 婷婷久久综合九色综合绿巨人| 亚洲第一搞黄网站| 奇米精品一区二区三区四区| 精品一区二区三区香蕉蜜桃| 久久99精品视频| 国产成人精品午夜视频免费| 99在线热播精品免费| 欧美性色综合网| 91精品视频网| 国产日韩欧美麻豆| 亚洲另类在线制服丝袜| 视频一区视频二区中文字幕| 人人精品人人爱| 国产成人精品免费视频网站| 99re视频这里只有精品| 欧美欧美欧美欧美首页| 精品国产免费久久| 亚洲精品你懂的| 久久精品国产成人一区二区三区 | 日韩va欧美va亚洲va久久| 久久精工是国产品牌吗| 国产成人精品亚洲日本在线桃色 | 精品福利在线导航| 国产精品久久久久四虎| 香蕉久久夜色精品国产使用方法| 久久精品av麻豆的观看方式| 色先锋资源久久综合| 日韩一区二区三区电影在线观看 | 久久久欧美精品sm网站| 亚洲精品少妇30p| 国产一区二区免费视频| 欧美三级日韩在线| 久久综合色之久久综合| 亚洲国产精品一区二区www | 色八戒一区二区三区| 日韩欧美一区二区在线视频| 亚洲免费观看在线观看| 国产一区二三区| 欧美久久久久免费| 亚洲欧美日韩在线播放| 国产精品88av| 日韩精品一区二区在线| 洋洋av久久久久久久一区| 国产盗摄视频一区二区三区| 91精品久久久久久蜜臀| 亚洲乱码国产乱码精品精98午夜| 国产精品18久久久| 精品日韩一区二区| 日本一不卡视频| 在线观看欧美黄色| 亚洲四区在线观看| 国产成人免费视频| 久久久久国产精品厨房| 久久精品国产99国产精品| 678五月天丁香亚洲综合网| 一区二区三区四区高清精品免费观看| 大美女一区二区三区| 欧美精品一区二区三区久久久| 日韩av一二三| 欧美精品在欧美一区二区少妇| 一级特黄大欧美久久久| 91小视频在线| 亚洲三级小视频| 91视频在线看| 亚洲自拍偷拍麻豆| 欧美中文字幕久久| 亚洲永久精品大片| 欧美日韩不卡一区| 肉肉av福利一精品导航| 91麻豆精品国产无毒不卡在线观看| 亚洲在线免费播放| 欧美日韩国产一二三| 亚洲一区二区视频在线| 欧美精品第一页| 美脚の诱脚舐め脚责91| 精品国产一区二区三区不卡| 狠狠色狠狠色综合| 中文字幕欧美国产| 色综合久久88色综合天天免费| 亚洲精品欧美激情| 欧美久久久久久蜜桃| 久88久久88久久久| 国产女人aaa级久久久级| 91亚洲大成网污www| 亚洲成人7777| 2023国产一二三区日本精品2022| 国产精品99久久久久久久vr | 中文字幕成人av| 色综合久久久久久久| 午夜欧美电影在线观看| 久久综合色天天久久综合图片| 成人白浆超碰人人人人| 亚洲高清不卡在线观看| 日韩欧美一二三区| 91小视频免费看| 美女一区二区视频| 国产精品福利在线播放| 欧美精品久久一区二区三区| 国产一区二三区| 亚洲一二三区不卡| 久久精品在这里| 欧美午夜精品一区二区三区| 国内精品国产成人国产三级粉色 | 欧美综合亚洲图片综合区| 天堂久久一区二区三区| 欧美经典一区二区| 欧美三级电影网| 国产91富婆露脸刺激对白| 亚洲3atv精品一区二区三区| 亚洲国产精品t66y| 欧美一二三区精品| 91久久国产综合久久| 国产成人亚洲综合a∨婷婷图片| 亚洲国产综合人成综合网站| 亚洲国产高清aⅴ视频| 日韩一区二区在线观看视频| 色伊人久久综合中文字幕| 国产一区二区三区蝌蚪| 日韩国产成人精品| 亚洲自拍欧美精品| 最新久久zyz资源站| 久久久久99精品一区| 欧美日韩国产一区| 欧美午夜精品久久久久久超碰| 国产91色综合久久免费分享| 激情欧美一区二区三区在线观看| 午夜精品福利久久久| 亚洲精品网站在线观看| 日本一区二区久久| 久久久亚洲高清| 2024国产精品| 久久伊人中文字幕| 欧美videossexotv100| 日韩午夜三级在线| 日韩久久久久久| 日韩欧美自拍偷拍| 日韩久久精品一区| 精品久久99ma| 精品久久久久久久人人人人传媒| 欧美一区二区三区不卡| 欧美日本免费一区二区三区| 精品视频1区2区| 欧美日韩日本视频| 欧美精品久久天天躁| 欧美一区二区在线观看| 91麻豆精品国产91久久久 | 亚洲乱码中文字幕综合| 综合婷婷亚洲小说| 亚洲综合视频网| 亚洲国产美女搞黄色| 爽好久久久欧美精品| 爽好多水快深点欧美视频| 日韩电影在线看| 精品一区二区在线视频| 国产一区二区三区免费在线观看| 国产激情91久久精品导航| 成人精品高清在线| 日本韩国欧美在线| 欧美日韩日本视频| www国产成人免费观看视频 深夜成人网| 久久久久久免费毛片精品| 18成人在线观看| 亚洲一区二区欧美| 美女mm1313爽爽久久久蜜臀| 国产iv一区二区三区| 色妞www精品视频| 欧美一区二区三区在线观看| 精品国产伦一区二区三区观看体验| 欧美激情在线观看视频免费| 亚洲免费观看高清| 日本不卡的三区四区五区| 国产乱人伦偷精品视频不卡| av不卡免费电影| 91精品国产综合久久福利| 国产天堂亚洲国产碰碰| 亚洲精品免费播放| 国内一区二区视频| 欧美中文一区二区三区| 国产日韩欧美精品电影三级在线| 樱花草国产18久久久久| 国产综合成人久久大片91| 在线视频综合导航| www日韩大片| 三级成人在线视频| 91麻豆精品在线观看| 日韩写真欧美这视频| 亚洲激情av在线| 国产福利精品导航| 日韩欧美的一区| 亚洲国产视频在线| 99久久综合国产精品| 精品99久久久久久| 丝袜脚交一区二区| 欧美在线视频不卡|