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

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

?? lintmr.c

?? LIN Driver for S08, LIN 1.3. Source code with codewarrior
?? C
字號:
#define LINTMR_C
/******************************************************************************
*                                                       
*       Copyright (C) 2005 Freescale Semiconductor, Inc.
*       All Rights Reserved								              
*														                            
* Filename:     lintmr.c                
*														                            
* Revision:      										                    
*														                            
* Functions:    LIN Timeout management module 
*												                            
* Description:  
*
* Notes:        Protocol timeouts -- only for Master node
*
******************************************************************************/

#include <linbase.h>

#pragma MESSAGE DISABLE C4200 /* WARNING C4200: other segment than in previous declaration */

/****************************************************************************
 * All common-purpose RAM variables shall be declared here.
 ***************************************************************************/
/****************************************************************************
 * Some of the variables (more often used) can be declared using LIN_ZPAGE
 * modifier.
 * It require to perform zero page RAM placement optimisation.
 ***************************************************************************/
#if defined(S08) && defined(CW08)
#pragma DATA_SEG SHORT ZeroSeg
#endif /* defined(S08) && defined(CW08) */

LIN_WORD LIN_IdleTimeout;          /* counter for idle timeout */

#if !defined(LINAPI_1_0)

#if defined(MASTER)

static LIN_BYTE LIN_ProtocolTimeout;      /* counter for protocol timeout */
LIN_BYTE  LIN_TmpTPMStatus;               /* byte to clear TPM status  */
LIN_WORD LIN_LengthCh0Tick;               /* length of   one timer Channel 1 overflow tick;
                                             the LIN_LengthCh0Tick is not declared as static due to 
                                             it used as symbol in assembler macro, but Cosmic compiler
                                             eliminate symbol references to static variables */

#if defined(S08) && defined(CW08)
#pragma DATA_SEG DEFAULT
#endif /* defined(S08) && defined(CW08) */ 
/****************************************************************************
 * End of common-purpose RAM variables declaration
 ***************************************************************************/


 /***************************************************************************
 * Function :   LIN_COUNTER16ADD
 *
 * Description: Add 16-bit value to 16-bit MCU register and put the result
 *              into this register.
 *                 
 * Returns:     none
 *
 * Notes:       The specific access order shall to be used during
 *              S08 16-bit counter-related register: high byte first.
 *              Compilers used reverce access order, so specific routine
 *              shall be used to proper counter maintenance.
 *
 **************************************************************************/
#if defined(S08) && defined(CW08)

#define LIN_COUNTER16ADD(reg1, addvalue) \
    /*  reg1 += addvalue; */ \
    asm lda reg1##L; \
    asm add addvalue:1; \
    asm tax; \
    asm lda reg1##H; \
    asm adc addvalue; \
    asm sta reg1##H; \
    asm stx reg1##L; 

#endif /* defined(S08) && defined(CW08) */



/***************************************************************************
 * Function :   LIN_COUNTER16ADD2   
 *
 * Description: Add 16-bit value to 16-bit MCU register and put the result
 *              into another 16-bit MCU register.
 *                 
 * Returns:     none
 *
 * Notes:       The specific access order shall to be used during
 *              S08 16-bit counter-related register: high byte first.
 *              Compilers used reverce access order, so specific routine
 *              shall be used to proper counter maintenance.
 *
 **************************************************************************/
#if defined(S08) && defined(CW08)

#define LIN_COUNTER16ADD2(reg1, reg2, addvalue) \
    /*  reg1 = reg2 + addvalue; */ \
    asm ldhx reg2; \
    asm txa; \
    asm add addvalue:1; \
    asm tax; \
    asm pshh; \
    asm pula; \
    asm adc addvalue; \
    asm sta reg1##H; \
    asm stx reg1##L;

#endif /* defined(S08) && defined(CW08) */

/***************************************************************************
 * Function :   LIN_SetTimeout
 *
 * Description: Set protocol timeout.
 *                  - disable channel 0 interrupt
 *                  - set timeout
 *                  - enable channel 0 interrupt
 *                  - set LIN_ProtocolTimeout value
 *
 * Returns:     none
 *
 * Notes:       none
 *
 **************************************************************************/
void LIN_SetTimeout(LIN_BYTE timeoutIndex)
{

#if defined(S08AW60)
    /* at first, disable channel interrupt */
    LIN_TPMChanSC &= ~LIN_TM_ChanSC_CHnIE;

    /* at second, set timeout */
    LIN_LengthCh0Tick = LIN_MTO_Ticks[timeoutIndex];
    LIN_TPMChanV = LIN_TPMCNT + LIN_LengthCh0Tick; 
    //LIN_COUNTER16ADD2(LIN_TPMChanV, LIN_TPMCNT, LIN_LengthCh0Tick);

    /* clear interrupt flag and enable Channel interrupt */
    LIN_TmpTPMStatus = LIN_TPMChanSC;
    LIN_TPMChanSC = (LIN_TPMChanSC & ~(LIN_TM_ChanSC_CHnF)) | LIN_TM_ChanSC_CHnIE;
    
#endif /* defined(S08AW60) */

   
    /* set LIN_ProtocolTimeout value for this timeout */
    LIN_ProtocolTimeout = LIN_MTO_Counter[timeoutIndex];
}

/***************************************************************************
 * Function :   LIN_CancelTimeout
 *
 * Description: Cancel protocol timeout
 *
 * Returns:     none
 *
 * Notes:       none
 *
 **************************************************************************/
void LIN_CancelTimeout( void )
{
    /* disable channel 0 interrupt */
#if defined(S08AW60)
    LIN_TPMChanSC &= ~LIN_TM_ChanSC_CHnIE;
#endif /* defined(S08AW60) */
}

/***************************************************************************
 * Function :   LIN_ISR_Timer0
 *
 * Description: Timer interrupt routine. 
 *              Used for:   LIN_MaxFrameTime, 
 *                          LIN_WakeupDelimiterTime
 *                          timeouts maintenance.
 *              Also used for:  break generation.
 *                 
 * Returns:     none
 *
 * Notes:       S08AW60 - mapped to TPM x Channel y vector (defined in configuration)
 *
 **************************************************************************/
LIN_INTERRUPT LIN_ISR_Timer( void ) 
{
    LIN_DBG_SET_PORT_0;
    LIN_DBG_SET_PORT_4;

    --LIN_ProtocolTimeout;

    if ( LIN_ProtocolTimeout == 0)
    {   
        /* timeout expired */

        /* clear interrupt flag and disable channel 0 interrupt */
#if defined(S08AW60)   
    LIN_TmpTPMStatus =  LIN_TPMChanSC;
    LIN_TPMChanSC    = (LIN_TPMChanSC & ~(LIN_TM_ChanSC_CHnF | LIN_TM_ChanSC_CHnIE)) ;
#endif /* defined(S08AW60) */
        
        LIN_Timeout();
    }
    else
    {
        /* timeout continued */

        /* arm timer Channel 0 for next compare */
#if defined(S08AW60)
        /* this is LIN_TPMChanV = LIN_TPMChanV + LIN_LengthCh0Tick */
        LIN_TPMChanV = LIN_TPMChanV + LIN_LengthCh0Tick;
        //LIN_COUNTER16ADD(LIN_TPMChanV, LIN_LengthCh0Tick); 
        /* clear interrupt flag and enable Channel interrupt */
        LIN_TmpTPMStatus =  LIN_TPMChanSC;
        LIN_TPMChanSC    = (LIN_TPMChanSC & ~(LIN_TM_ChanSC_CHnF )) | LIN_TM_ChanSC_CHnIE;
#endif /* defined(S08AW60) */


    }

    LIN_DBG_CLR_PORT_0;
    LIN_DBG_CLR_PORT_4;
}

#define LIN_MAXMODULO   0xFFFFu
/**************************************************************************
 * Function :   LIN_TimerInit
 *
 * Description: Timer Module Initialization
 *
 * Returns:     none
 *
 * Notes:       none
 *
 **************************************************************************/
void LIN_TimerInit( void ) 
{
LIN_BYTE  LIN_TmpTPMStatus;

    LIN_TmpTPMStatus = LIN_TPMSC;
    LIN_TPMSC = 0;                                     /* clear prescaler and disable the timer */           
    LIN_TPMSC |= (LIN_TM_SC_PR & LIN_CfgConst.LIN_TimerPrescaler);  /* set prescaler */             
    LIN_TPMMOD = LIN_MAXMODULO;                                  /* set maximum modulo value */  
    
    /* clear interrupt flag and disable interrupt channel 0;                                    
       channel 0 performs output compare with not using pin */                                        
    LIN_TmpTPMStatus = LIN_TPMChanSC;
    LIN_TPMChanSC = (LIN_TPMChanSC & (~(LIN_TM_ChanSC_CHnF | LIN_TM_ChanSC_CHnIE| LIN_TM_ChanSC_MSnB | LIN_TM_ChanSC_ELSnB | LIN_TM_ChanSC_ELSnA))) | LIN_TM_ChanSC_MSnA;                                    
 
    /* enable timer and select the TPM clock source*/                                                                          
    LIN_TPMSC |= (LIN_TM_SC_CLK & LIN_CfgConst.LIN_TimerCLK);
}

#endif /* defined(MASTER) */


/***************************************************************************
 * Function :   LIN_IdleClock
 *
 * Description: User time clock for Idle timeout.
 *              Update "no-bus-activity" condition counter
 *              and check, if the condition meets.
 *                 
 * Returns:     none
 *
 * Notes:       1. API Service call       
 *
 **************************************************************************/
void LIN_IdleClock( void ) 
{
    LIN_BYTE        intMask;

    LIN_DBG_SET_PORT_7;

    intMask = LIN_DisableInt();         /* Disable interrupts -- do we really need it? */

    if ( LIN_IdleTimeout != 0  )
        {
            --LIN_IdleTimeout;
        }

    LIN_EnableInt(intMask);             /* enable interrupts */    

    LIN_DBG_CLR_PORT_7;
}

#endif /* !defined(LINAPI_1_0) */

/***************************************************************************
 * Function :   LIN_SetIdleTimeout
 *
 * Description: Set/reset LIN_IdleTimeout variable from constant
 *                 
 * Returns:     none
 *
 * Notes:       
 *
 **************************************************************************/
void LIN_SetIdleTimeout( void )
{
    LIN_IdleTimeout = LIN_CfgConst.LIN_IdleTimeoutClocks;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久88色综合天天免费| 2020国产精品自拍| 国产成人精品亚洲777人妖 | 99精品视频中文字幕| 国产精品99久久久久久久女警| 激情深爱一区二区| 国产精品一线二线三线| 成人一区二区三区| 成人av午夜影院| 日本韩国视频一区二区| 欧洲精品视频在线观看| 欧美丰满嫩嫩电影| 欧美精品一区二区三区视频| 亚洲精品一区二区三区影院| 国产精品毛片高清在线完整版| 国产精品久久久久久久久免费丝袜| 国产精品毛片无遮挡高清| 亚洲欧美一区二区三区极速播放 | 色综合激情久久| 欧美视频一区在线| 精品国产免费人成电影在线观看四季| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲综合色在线| 五月综合激情日本mⅴ| 极品美女销魂一区二区三区免费| 青青草原综合久久大伊人精品| 国产一区在线观看视频| 懂色av一区二区在线播放| 在线国产亚洲欧美| 欧美xxx久久| 国产精品美女久久福利网站| 婷婷成人综合网| 成人晚上爱看视频| 欧美色大人视频| 国产欧美视频在线观看| 亚洲国产精品久久不卡毛片| 国产精品一二二区| 欧美精品黑人性xxxx| 国产精品久久久久久久久久免费看| 亚洲国产综合在线| 丁香五精品蜜臀久久久久99网站 | 成人免费不卡视频| 777亚洲妇女| 最好看的中文字幕久久| 蜜臂av日日欢夜夜爽一区| 91丨porny丨户外露出| 精品久久99ma| 香蕉影视欧美成人| 成人动漫中文字幕| 久久在线观看免费| 免费成人你懂的| 在线观看一区日韩| 亚洲色图视频免费播放| 国产91露脸合集magnet| 日韩一区二区三区四区五区六区| 亚洲最色的网站| caoporen国产精品视频| 久久先锋影音av| 久久精品二区亚洲w码| 91麻豆精品91久久久久同性| 亚洲激情一二三区| 99久久久国产精品| 中文一区二区在线观看| 九色porny丨国产精品| 日韩一级完整毛片| 日韩有码一区二区三区| 欧美色综合久久| 亚洲观看高清完整版在线观看| 色婷婷久久综合| 亚洲欧美一区二区久久| 91一区一区三区| 国产精品久久99| 91亚洲精品乱码久久久久久蜜桃| 国产精品色哟哟| 97久久精品人人爽人人爽蜜臀| 亚洲高清视频在线| 色久优优欧美色久优优| 亚洲视频中文字幕| 色国产综合视频| 亚洲福利国产精品| 正在播放一区二区| 麻豆成人av在线| 久久精品夜夜夜夜久久| 成人黄色小视频在线观看| 日本一区二区三区dvd视频在线| 国产麻豆欧美日韩一区| 中文子幕无线码一区tr| 一本一本大道香蕉久在线精品 | 亚洲精品日日夜夜| 欧美少妇xxx| 免费高清成人在线| 久久久亚洲国产美女国产盗摄| 国产激情精品久久久第一区二区| 久久久久久电影| 91麻豆.com| 日韩高清不卡在线| 久久久久久一级片| 色婷婷久久99综合精品jk白丝| 亚洲成人资源网| 久久久久久久久久久99999| 成人午夜视频在线| 亚洲一二三区在线观看| 欧美精品一区视频| 91免费版在线| 免费人成网站在线观看欧美高清| 欧美成人综合网站| 99re视频精品| 九色|91porny| 亚洲国产一二三| 久久这里都是精品| 欧美三级电影一区| 国产成人高清视频| 午夜精品福利视频网站| 国产女人18毛片水真多成人如厕| 欧美在线不卡视频| 国产成人h网站| 日韩电影在线观看一区| 亚洲天天做日日做天天谢日日欢| 欧美一级片在线| 色狠狠一区二区三区香蕉| 国产一区欧美日韩| 日本麻豆一区二区三区视频| 国产精品嫩草99a| 精品久久久久久久久久久久久久久 | 欧美在线观看视频一区二区三区| 青青草国产成人av片免费| 中文字幕一区二区三区四区| 欧美一级在线观看| 在线观看日韩国产| 成人国产精品免费网站| 久久99深爱久久99精品| 亚洲韩国精品一区| 亚洲免费高清视频在线| 欧美精品一区二区不卡| 欧美日韩国产小视频在线观看| www.欧美.com| 国产在线精品国自产拍免费| 日韩制服丝袜先锋影音| 亚洲一区二区三区视频在线| 成人免费一区二区三区视频| 国产亚洲精品久| 久久精品一区二区三区不卡| 精品久久久三级丝袜| 欧美片在线播放| 9191久久久久久久久久久| 在线观看国产日韩| 色噜噜狠狠一区二区三区果冻| 成人黄色在线看| 99视频精品全部免费在线| 成人毛片在线观看| 国产电影精品久久禁18| 盗摄精品av一区二区三区| 国产精品一色哟哟哟| 国产精品一区二区三区99| 国产一区在线精品| 粉嫩13p一区二区三区| 成人免费毛片片v| 波多野结衣在线一区| 暴力调教一区二区三区| 色综合久久精品| 欧美欧美午夜aⅴ在线观看| 欧美日韩一本到| 欧美大胆一级视频| 国产日韩欧美制服另类| 中文字幕欧美激情一区| 亚洲丝袜另类动漫二区| 有码一区二区三区| 欧美aaaaaa午夜精品| 国产真实乱子伦精品视频| 精一区二区三区| 99精品国产91久久久久久| 欧美系列亚洲系列| 精品少妇一区二区三区在线视频| 国产欧美视频在线观看| 一片黄亚洲嫩模| 久久国产尿小便嘘嘘尿| 成人免费视频视频在线观看免费| 色婷婷综合久久久久中文| 7777精品伊人久久久大香线蕉经典版下载 | 欧美无人高清视频在线观看| 欧美色视频一区| 精品88久久久久88久久久| 亚洲视频一二区| 久久99久久久欧美国产| 99久久99久久精品免费观看| 欧美精品乱码久久久久久按摩 | 国产精品一区二区久激情瑜伽| 不卡av在线免费观看| 欧美肥大bbwbbw高潮| 中文字幕精品综合| 日本不卡一区二区三区 | 欧美丝袜丝nylons| 精品不卡在线视频| 一区二区欧美国产| 国产美女一区二区三区| 欧美午夜视频网站| 国产精品欧美一区二区三区| 另类综合日韩欧美亚洲| 色婷婷av一区| 国产精品国产三级国产aⅴ中文|