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

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

?? mcdemo.c

?? pic單片機驅動mcp2510源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
** Copyright (C)1999 KVASER AB, http://www.kvaser.com
** This code may be freely distrubuted and used if the source is indicated.
**
*/
#ifdef __WIN32__
#include <vcl.h>
#pragma hdrstop

#include <canlib.h>
#include "mainUnit.h"
#include "mcThread.h"
#include "..\inc\canUnit.h"
#include "util_w32.h"
#else
#include <string.h>
#include "..\inc\util_mc.h"
#include <pic.h>
#include <stdio.h>
#endif

#include "..\inc\mcdemo.h"
#include "..\inc\ck.h"


//---------------------------------------------------------------------------
#ifdef __WIN32__
#pragma package(smart_init)
#endif


/*
Available functions:

There are three transmit buffes in MCP2510, but only the first one is used.
If it is in use, a message may be dropped. This could be improved.
The two receive buffers are used as a short receive queue. The are polled,
should they both be full, received messages are dropped.


Document list. Document number and Folder number are identical and fixed
Receive documents
0 Kings Document   DLC = 8
Page 0. Selects Action and Communication mode.
Page 1. Provides the Base numbers, asks for a Mayor's response.
Page 2. Assigns an Envelope to a Folder.
Page 9. Change the city address.
Page 16. Partial support, enable/disable a folder by number.

2 Parameter settings   DLC = 8
Page 0
line 0: 0 (page number)
line 1..2:  Period to transmit the Inputs document, 1..65536, 0 no transmissions
line 3..7: 0

3 LED control   DLC = 1
line 0: Bit 0..1 controls the two LEDs (RXBF0, RXBF1)

4 Request Document Inputs   DLC = 0


Transmit documents
1 Mayor's Document   DLC = 8
Page 0
line 0: 0
line 1: 0 (page no)
line 2..6: EAN code (LSB..MSB)
line 7: 0
Page 1
line 0: 0
line 1: 1 (page no)
line 2..6: Serial number (LSB..MSB)
line 7: 0

5 Inputs    DLC = 2   RTR always enabled
line 0: Bit 0..1 Current LED status
Bit 2..4 Buttons 0..2, current value
Bit 5..7 Buttons 0..2, sticky (cleared at Tx).
line 1: Analog value, 0..255

Optional receive documents (not implemented):
KP3.  Assign a City to Groups
KP4.  Removing a City from Groups
KP8.  CAN bus parameter setting
KP9.  Change of the City physical adress
KP16. Placing a Document in a folder
KP20. Setup filters

Optional transmit documents (not implemented):
MP128
line 0: 0
line 1: 128
line 2: No of dropped transmit documents
line 3: No of lost recieve documents (if possible to detect)



The Main program

Startup:
Turn off LEDs. Initiate analogue input, button inputs etc.
Initialize the CAN communication (Baud rate etc, set up one receive
and one transmit buffer, go on line).

Check for received CAN message.
If one, handle it. May result in a message being transmitted.
Poll the buttons.
Check if a periodic transmission should be done.


*/


// --- Global variables
BANK1 canIdT folder_env[FOLDER_COUNT]; // CAN id's. Bit 31 marks Extended CAN.
// We want to be able to disable a folder but keep the envelope, so we must use this
BANK1 uchar folder_enabledMask;
BANK1 canIdT baseNo = envInvalid; // Assigned envInvalid for an invalid base number.
BANK1 uchar nodeNo = 10;
BANK1 actModesT actMode = ckFreeze;
BANK1 commModesT commMode = ckSilent;
BANK1 unsigned int txPeriod = 0;
//int canWriteFailures = 0;

BANK1 unsigned int txLastTime; // Used for periodic transmissions
BANK1 uchar LEDsave = 0;       // Saves which LEDs are active
BANK1 uchar buttonsSticky = 0;

// --- Protottypes
void ckInit(void);
void checkMsg(void);
void rxKP(uchar *buf);
void txMP(uchar pageNo);
void txInputs(void);
void rxParam(uchar *buf);


BANK1 uchar mpPending = 255;


void setFolderEnable(uchar fNo, uchar f) {
    if (f)
        folder_enabledMask |= (1 << fNo);
    else
        folder_enabledMask &= ~(1 << fNo);
}
uchar checkFolderEnable(uchar fNo) {
    return folder_enabledMask & (1 << fNo);
}

/* Reset the module. Will never return.
 */
void doReset(void) {
    setLEDs(0);
#ifdef __WIN32__
    for(;;)
        Sleep(100);
#else
#endif
}
/* Perform any action that should be done when Freeze mode is entered such
 * as turning off all outputs etc.
 * may be called also when the mode _is_ Freeze.
 */
void doFreeze(void) {
    setLEDs(0);
}
/* Perform any action that should be done when Run mode is entered.
 * may be called also when the mode _is_ Run.
 */
void doRun(void) {
    setLEDs(LEDsave);
}


#ifdef __WIN32__
// The "main" function will be called by a thread
void mcMain(void)
#else
// The actual main function
void main(void)
#endif
{
    uchar b;

    setupModule();
    
    //Test S4, S5, or S6, if pressed, run Test Procedure, else run Demo
//    b = getButtons();
//    if (b)
//    {
//        GIE = 0;
//        TPmain();    //if button pressed, run Test Procedure
//        GIE = 1;
//   }
        
    setLEDs(0);
    canSetup();
    ckInit();
#ifndef __WIN32__
    mcp_read_all();
#endif

    for (;;) {
        checkMsg();

        b = getButtons();
        buttonsSticky |= b;
        if (b == 0x04)
            mcp_read_all();

#ifdef __WIN32__
        // Give up the current time slice
        Sleep(1);
#endif
        if (txPeriod) {
            unsigned int t = timerValue();
            if ((t - txLastTime) > txPeriod) {
                txInputs();
                // We add txPeriod to txLastTime to get less jitter.
                txLastTime += txPeriod;
                // If we missed it too much, catch up. Otherwise, we would get a burst.
                if ((t - txLastTime) > txPeriod)
                    txLastTime = t;
            }
        }
    }
}

void fixMPEnv(void) {
    if (baseNo == envInvalid)
        folder_env[doc_MayorsDocument] = envInvalid;
    else
        folder_env[doc_MayorsDocument] = baseNo+nodeNo;
}

void ckInit(void) {
    int i;
    for (i = 0; i < FOLDER_COUNT; i++) {
        folder_env[i] = envInvalid;
        setFolderEnable(i, 0);
    }
    // Set up for the King's Page and the Mayor's Page.
    setFolderEnable(doc_KingsDocument, 1);
    folder_env[doc_KingsDocument] = 0;
    setFolderEnable(doc_MayorsDocument, 1);
    fixMPEnv();

#ifdef __WIN32__
    mcThread->showCKStatus();
    mcThread->showFolders();
    mcThread->showModuleStatus();
#endif
}

/*
 * Check if a message is received; if so, act on it.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人福利视频网站| 在线观看不卡一区| 97se亚洲国产综合自在线不卡| 国产一区二区久久| 色偷偷成人一区二区三区91| 精品视频一区二区不卡| 欧美伊人精品成人久久综合97 | 国产精品自拍三区| 成人av小说网| 欧美日韩激情一区| 国产日产欧美一区二区视频| 亚洲黄色在线视频| 国产老妇另类xxxxx| 91丝袜高跟美女视频| 在线看日韩精品电影| 国产午夜亚洲精品理论片色戒| 亚洲裸体xxx| 久久99久久99小草精品免视看| av在线综合网| 日韩欧美自拍偷拍| 亚洲激情综合网| 韩国毛片一区二区三区| 欧美视频一区在线观看| 国产日产欧美精品一区二区三区| 同产精品九九九| 成人av在线资源网| 日韩欧美一级二级| 亚洲成人综合在线| www.欧美日韩国产在线| 日韩欧美电影一二三| 亚洲综合色婷婷| 99久久免费精品| 精品国产乱码久久久久久1区2区| 亚洲九九爱视频| 成人精品一区二区三区四区| 这里只有精品电影| 成人精品国产福利| 亚洲图片欧美视频| 国产成人综合在线播放| 欧美午夜片在线观看| 综合久久给合久久狠狠狠97色| 成人美女视频在线观看| 亚洲欧洲精品一区二区三区| 99re视频这里只有精品| 亚洲柠檬福利资源导航| 色综合婷婷久久| 一区二区成人在线观看| 欧美私模裸体表演在线观看| 亚洲成人av中文| 日韩一区二区三区精品视频| 日本三级韩国三级欧美三级| 欧美xxxx在线观看| 国产99精品在线观看| 亚洲天堂免费看| 欧美精品在线一区二区三区| 麻豆精品久久久| 亚洲国产精品黑人久久久| 成人一区二区视频| 怡红院av一区二区三区| 91麻豆精品国产自产在线 | 久久久久久久久久久久电影| 国产精品原创巨作av| 国产精品传媒视频| 欧美调教femdomvk| 久久se精品一区二区| 中文字幕精品在线不卡| 欧美午夜精品理论片a级按摩| 毛片av一区二区三区| 国产精品色一区二区三区| 精品视频全国免费看| 精品一区精品二区高清| 中文字幕一区三区| 欧美一区二区三区免费观看视频| 高清不卡在线观看| 日日摸夜夜添夜夜添亚洲女人| 久久精品视频在线看| 色综合中文字幕国产 | 欧美性xxxxxx少妇| 精品一区二区日韩| 亚洲美女在线一区| 久久久一区二区| 欧美性猛交xxxxxx富婆| 国产一区二区三区在线观看免费| 亚洲免费成人av| 国产天堂亚洲国产碰碰| 欧美日韩精品一区二区在线播放| 国产九色精品成人porny| 亚洲一区二三区| 国产精品美女一区二区| 欧美一级在线视频| 欧美天天综合网| 97aⅴ精品视频一二三区| 蜜臀av性久久久久蜜臀aⅴ| 1000部国产精品成人观看| 日韩精品中午字幕| 精品视频1区2区3区| 99精品视频在线观看免费| 国产自产视频一区二区三区| 天堂va蜜桃一区二区三区漫画版| 亚洲欧洲99久久| 欧美韩国日本不卡| 久久久影院官网| 日韩欧美在线123| 欧美色图12p| 欧美影视一区在线| 色女孩综合影院| 99精品久久免费看蜜臀剧情介绍| 国产精品一区二区无线| 日韩综合小视频| 午夜精品影院在线观看| 亚洲欧美乱综合| 一区二区三区在线视频免费观看| 国产精品美女久久久久久2018| 欧美mv日韩mv国产网站| 欧美一级生活片| 欧美一级电影网站| 精品久久久久久久一区二区蜜臀| 欧美电影免费观看完整版| 制服丝袜av成人在线看| 欧美日韩国产综合视频在线观看| 欧美性受xxxx| 欧美另类z0zxhd电影| 欧美色综合影院| 欧美精品乱码久久久久久| 欧美日韩在线精品一区二区三区激情 | 欧美亚洲高清一区二区三区不卡| 99精品久久99久久久久| bt欧美亚洲午夜电影天堂| 不卡的av电影| 在线观看91视频| 欧美福利视频导航| 日韩美女视频在线| 国产亚洲精品bt天堂精选| 国产亚洲婷婷免费| 亚洲天堂福利av| 香蕉成人伊视频在线观看| 日韩国产欧美在线播放| 午夜激情久久久| 久久99久国产精品黄毛片色诱| 国产99一区视频免费| 91丨九色porny丨蝌蚪| 欧美亚洲动漫制服丝袜| 欧美一级高清片在线观看| 久久久综合九色合综国产精品| 最近中文字幕一区二区三区| 一区二区国产盗摄色噜噜| 日韩av中文字幕一区二区| 国产一区二区网址| 日本道精品一区二区三区| 日韩免费福利电影在线观看| 国产三级精品在线| 亚洲成人自拍一区| 国产一区二区三区久久久 | 国产成人精品免费视频网站| 不卡免费追剧大全电视剧网站| 欧美中文字幕不卡| 精品国产3级a| 亚洲激情中文1区| 黄色日韩网站视频| 欧美午夜电影一区| 亚洲国产成人私人影院tom| 亚洲成人tv网| av在线不卡免费看| 欧美va亚洲va香蕉在线| 亚洲视频一二区| 韩国av一区二区| 欧美三级在线播放| 国产精品国产自产拍在线| 日本vs亚洲vs韩国一区三区| 成人a免费在线看| 精品欧美乱码久久久久久1区2区| 亚洲视频 欧洲视频| 久久91精品久久久久久秒播| 色国产精品一区在线观看| 久久影院午夜片一区| 性做久久久久久免费观看欧美| 成人高清视频免费观看| 日韩精品最新网址| 午夜电影久久久| 91成人看片片| 综合久久久久久久| 成人精品高清在线| 欧美激情一区二区三区四区| 美女网站在线免费欧美精品| 欧美性受极品xxxx喷水| 综合久久久久久久| 成人丝袜高跟foot| 国产亚洲精品7777| 国内成人免费视频| ww久久中文字幕| 日韩成人一区二区| 678五月天丁香亚洲综合网| 亚洲久本草在线中文字幕| 99久久伊人久久99| 国产精品久久久久久久裸模| 国产精品一区二区不卡| 欧美精品一区男女天堂| 免费在线观看精品| 日韩精品中文字幕一区二区三区 | 在线播放日韩导航|