⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tbm_isr.c

📁 基于mc908gz60的LIN通信例程
💻 C
字号:
/*******************************************************************************
*                (c) Freescale Inc. 2004  all rights reserved.                 *
*                                                                              *
*                                                                              *
*     Door lock solenoid application based on MC68HC908GR16 slave program.     *
*     =====================================================================    *
*                                                                              *
*    $File Name     : tbm_isr.c$                                               *
*    $Author        : re004c$                                                  *
*    $Date          : Jul-14-2004$                                             *
*    $Version       : 1.1.3.0$                                                 *
*    Function:                                                                 *
*                                                                              *
* ============================================================================ *
* THIS SOFTWARE IS PROVIDED BY FREESCALE SEMICONDUCTOR "AS IS" AND ANY         *
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  *
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE       *
* DISCLAIMED.  IN NO EVENT SHALL FREESCALE SEMICONDUCTOR OR ITS CONTRIBUTORS   *
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR       *
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF         *
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS     *
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN      *
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)      *
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE   *
* POSSIBILITY OF SUCH DAMAGE.                                                  *
*******************************************************************************/

#include <lin.h>
#include "target.h"

extern l_u8 messages[4];
extern l_u8 active_nodes[4];
extern unsigned char messages_counter;


/*******************************************************************************
*                                                                              *
*    Function name: tbm_handler                                                *
*    Function:      Handle TBM ISR, Add one tick to time                       *
*                                                                              *
*******************************************************************************/

#pragma TRAP_PROC
interrupt 17 void tbm_handler(void)
{
    unsigned char status_display, k = 0;
    asm
    {
        sei;                                              /* disable interupt */
    }
    TBCR_TACK = 1;                                 /* clear tbm interupt flag */
    if (messages[messages_counter-1])            /* message buffer not empty? */
    {
                                                            /* mask high nibl */
        status_display = messages[messages_counter-1] & 0x0F;
        status_display += (0x01 << (messages_counter + 3)); /* add node index */
        PTF = ~status_display;
    } 
    while (k < 4)
    {
                                                  /* next non-zero node find? */
        if (active_nodes[(messages_counter + k)%4] != 0)
        {
                                                /* yes, memorize the position */
            messages_counter = ((messages_counter + k) % 4) + 1;
            k = 4;                                            /* end the loop */
        }
        else
        {
            k++;
        }
    }
    TBCR_TBON = 1;                                              /* enable TBM */
    
    asm
    {
        cli;                                               /* enable interupt */
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -