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

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

?? l_gen.c

?? MC68HC908QY4 LIN-BUS源碼(編譯環境:CodeWarriorV3.1)
?? C
字號:
/* LIN configuration File */
/* Automatically generated - DO NOT EDIT THIS FILE! */
/* (c) VCT 2002-2003 */

#include "l_gen.h"

/**** These calls shall be provided by the application ****/
extern L_LIB_PREFIX void l_sys_irq_restore(l_irqmask previous);
extern L_LIB_PREFIX l_irqmask l_sys_irq_disable(void);

/* RAM buffer for the flags */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_flag_buffer[1] = {
	0u
};

/* Flag list for frame 'demo_net.resolving' */
L_ROM_PREFIX l_flag L_ROM_POSTFIX l_flag_resolving[2] = {
	{ &l_flag_buffer[0], 0x01u },
	{(l_u8*) 0, 0u}
};

/* Subscribed frame 'demo_net.MasterReq_demo_net' */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_frame_MasterReq_buf[8] = {
	0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u
};
L_ROM_PREFIX l_slave_frame L_ROM_POSTFIX l_frame_MasterReq = {
	l_frame_MasterReq_buf,
	(l_flag *) 0,
	L_DRX,
	L_CLASSIC,
	8u
};

/* Subscribed frame 'demo_net.global_info' */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_frame_global_info_buf[1] = {
	0x00u
};
L_ROM_PREFIX l_slave_frame L_ROM_POSTFIX l_frame_global_info = {
	l_frame_global_info_buf,
	(l_flag *) 0,
	L_RX,
	L_ENHANCED,
	1u
};

/* Subscribed frame 'demo_net.resolving' */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_frame_resolving_buf[1] = {
	0x00u
};
L_ROM_PREFIX l_slave_frame L_ROM_POSTFIX l_frame_resolving = {
	l_frame_resolving_buf,
	l_flag_resolving,
	L_RX,
	L_ENHANCED,
	1u
};

/* Published frame 'demo_net.SlaveResp_demo_net' */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_frame_SlaveResp_buf[8] = {
	0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u
};
L_ROM_PREFIX l_slave_frame L_ROM_POSTFIX l_frame_SlaveResp = {
	l_frame_SlaveResp_buf,
	(l_flag *) 0,
	L_DTX,
	L_CLASSIC,
	8
};

/* Published frame 'demo_net.QY4_18' */
L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_frame_QY4_18_buf[2] = {
	0x00u, 0x00u
};
L_ROM_PREFIX l_slave_frame L_ROM_POSTFIX l_frame_QY4_18 = {
	l_frame_QY4_18_buf,
	(l_flag *) 0,
	L_TX,
	L_ENHANCED,
	2
};

/* Message id map for interface i1*/
L_ROM_PREFIX l_u16 L_ROM_POSTFIX l_MID_list_siii[3] = {
	0x50u, 0x60u, 0x1010u
};

L_RAM_PREFIX l_u8 L_RAM_POSTFIX l_PID_list_siii[3];


/* Interface 'i1' connected to network 'demo_net' */
L_RAM_PREFIX l_ifc_slave L_RAM_POSTFIX siii;
/* Library has single interface */

L_ROM_PREFIX l_uart_descriptor L_ROM_POSTFIX siii_uart_desc = {
	0x0119u,
};

/* Routines for HC08 software UART function */

/*Constants for SW UART*/
#define rx_pin_address      ((l_u8*near const)0x00)
#define tx_pin_address      ((l_u8*near const)0x01)
#define rx_pin_ddr_address  ((l_u8*near const)0x04)
#define tx_pin_ddr_address  ((l_u8*near const)0x05)
#define timch_address       ((l_u8*near const)0x28)
#define tim_address         ((l_u8*near const)0x20)
#define rx_pin_position     ((l_u8)(1<<1))
#define tx_pin_position     ((l_u8)(1<<2))
#define tim_prescaler       ((l_u8)0)
#define bit_time_adjustment ((l_u16)53)
#define min_bit_time        ((l_u16)0x010du)
#define max_bit_time        ((l_u16)0x0124u)

/* Variables for SW UART */
volatile l_u16 near uart_tmp16;
l_u16 near one_bit_time;
l_u16 near bit_time_measure;
l_u8  near bit_cnt;
l_u8  near itstatus;
l_u8  near rx_fg_buffer;
l_u8  near rx_bg_buffer;
l_u8  near tx_buffer;
l_u8  near tx_reference_buffer;
l_u8  near status_register;

/* itstatus values */
#define ADVANCE   (0x01)
#define RECEIVE   (0x02)
#define DATA      (0x04)
#define STARTSTOP (0x08)

#define SWUART_IDLE         (0       | 0       | 0    | 0        )
#define SWUART_STOPBIT_TX   (0       | 0       | 0    | STARTSTOP)
#define SWUART_BIT_TIME     (0       | RECEIVE | 0    | 0        )
#define SWUART_STOPBIT_RX   (0       | RECEIVE | 0    | STARTSTOP)
#define SWUART_DATA_RX      (ADVANCE | RECEIVE | DATA | 0        )
#define SWUART_LASTBIT_RX   (ADVANCE | RECEIVE | 0    | 0        )
#define SWUART_STARTBIT_TX  (ADVANCE | 0       | 0    | STARTSTOP)
#define SWUART_DATA_TX      (ADVANCE | 0       | DATA | 0        )
#define SWUART_LASTBIT_TX   (ADVANCE | 0       | 0    | 0        )


/* rx/tx opeartions */
#define GET_RX       (*rx_pin_address & rx_pin_position)
#define SET_TX_LOW   (*tx_pin_address &= ~tx_pin_position)
#define SET_TX_HIGH  (*tx_pin_address |= tx_pin_position)

/* timer/interrupt bits */
#define TSTOP           (1<<5)
#define TRST            (1<<4)

#define CHxF            (1<<7)
#define CHxIE           (1<<6)
#define MSxB            (1<<5)
#define MSxA            (1<<4)
#define ELSxB           (1<<3)
#define ELSxA           (1<<2)
#define TOVx            (1<<1)
#define CHxMAX          (1<<0)

/* timer/interrupt operations */
#define START_TIMER      (*tim_address = tim_prescaler)
#define STOP_TIMER       (*tim_address = TSTOP)
#define CLEAR_TIMER_FLAG (*timch_address &= ~CHxF)
#define SET_IC_FALLING   (*timch_address = CHxIE|ELSxB)
#define SET_IC_RISING    (*timch_address = CHxIE|ELSxA)
#define SET_IC_COMPARE   (*timch_address = CHxIE|MSxA)
#define SET_IC_DISABLE   (*timch_address &= ~CHxIE)

#define GET_IC_COUNTER(a)        a = (*(l_u16*near)(timch_address+1))
#define SET_IC_COUNTER(a)        (*(l_u16*near)(timch_address+1)) = a
#define GET_TIM_COUNTER(a)       a = (*(l_u16*near)(tim_address+1))


void uart_init(void)
/*Initializes the uart I/O interface (makes Rx pin to input and TX pin to 
output) */
{
    status_register = TX_EMPTY;
    itstatus = SWUART_IDLE;
    bit_time_measure = 0;
    STOP_TIMER;
    *(l_u16*)(tim_address+3) = 0xFFFF;
    START_TIMER;
}

void uart_set_tx_high(void)
{
    SET_TX_HIGH;
}

void uart_set_tx_low(void)
{
    SET_TX_LOW;
}

l_u8 uart_get_rx(void)
{
    return GET_RX;
}

void uart_connect(void)
{
    *rx_pin_ddr_address &= ~rx_pin_position;
    SET_TX_HIGH;
    *tx_pin_ddr_address |= tx_pin_position;
    SET_IC_FALLING;
}

void uart_set_baudrate(l_u16 br_value)
{
    one_bit_time = br_value;
}

l_u16 uart_get_baudrate(void)
{
    return (one_bit_time);
}

void uart_send_byte(l_u8 txdata)
/* Moves txdata to the internal txbuffer and initiates transmission. */
{    
    tx_buffer = txdata;
    tx_reference_buffer = txdata;
    GET_TIM_COUNTER(uart_tmp16);
    SET_IC_COMPARE;
    SET_IC_COUNTER(uart_tmp16 + one_bit_time);
    status_register = 0;
    if((itstatus != SWUART_IDLE) || !GET_RX)
    {
        status_register |= FRAMING_ERROR;
    }
    itstatus = SWUART_STARTBIT_TX;
    bit_cnt = 8;
    rx_bg_buffer = 0;
}

void uart_send_break(void)
/* Moves break to the internal txbuffer and initiates transmission. */
{    
    GET_TIM_COUNTER(uart_tmp16);
    SET_IC_COMPARE;
    SET_IC_COUNTER(uart_tmp16 + one_bit_time);
    status_register = 0;
    if((itstatus != SWUART_IDLE) || !GET_RX)
    {
        status_register |= FRAMING_ERROR;
    }
    tx_buffer = 0;
    tx_reference_buffer = 0;
    itstatus = SWUART_STARTBIT_TX;
    bit_cnt = 12;
    rx_bg_buffer = 0;
}


l_u8 uart_receive_byte(void)
{    
    return(rx_fg_buffer);
}

void uart_it_handler(void)
/* It is the interrupt handler of the sw uart state machine. It is called cca. 
at every bit time. */
{
    if(itstatus & ADVANCE)
    {
        GET_TIM_COUNTER(uart_tmp16);
        SET_IC_COUNTER(uart_tmp16 + one_bit_time);
        if(GET_RX)
        {
            rx_bg_buffer |= 0x80;
        }
        if (itstatus & RECEIVE)
        {
            if (itstatus & DATA)
            {
                /* SWUART_DATA_RX */
                rx_bg_buffer >>= 1;
                if((--bit_cnt) == 0)
                {
                    itstatus = SWUART_LASTBIT_RX;
                }
            }
            else
            {
                /* SWUART_LASTBIT_RX */
                if((status_register & BT_MEASURE) && !(rx_bg_buffer & 0x80))
                {
                    GET_TIM_COUNTER(bit_time_measure);
                    SET_IC_RISING;
                    CLEAR_TIMER_FLAG;
                    itstatus = SWUART_BIT_TIME;
                    return;
                }
                else
                {
                    itstatus = SWUART_STOPBIT_RX;
                }
            }
        }
        else
        {
            if (itstatus & DATA)
            {
                /* SWUART_DATA_TX */
                if(tx_buffer & 0x01)
                {
                    SET_TX_HIGH;
                }
                else
                {
                    SET_TX_LOW;
                }
                rx_bg_buffer >>= 1;
                tx_buffer >>= 1;
                
                if((--bit_cnt)==0)
                {
                    itstatus = SWUART_LASTBIT_TX;
                }
            }
            else if (itstatus & STARTSTOP)
            {
                /* SWUART_STARTBIT_TX */
                SET_TX_LOW;
                itstatus = SWUART_DATA_TX;
            }
            else
            {
                /* SWUART_LASTBIT_TX */
                SET_TX_HIGH;
                itstatus = SWUART_STOPBIT_TX;
            }
        }
        CLEAR_TIMER_FLAG;
    }
    else
    {
        if (itstatus & RECEIVE)
        {
            if (itstatus & STARTSTOP)
            {
                /* SWUART_STOPBIT_RX */
                if(!GET_RX)
                {
                    status_register |= FRAMING_ERROR;
                }
            }
            else
            {
                /* SWUART_BIT_TIME */
                GET_IC_COUNTER(uart_tmp16);
                bit_time_measure = uart_tmp16 - bit_time_measure;
                status_register |= BT_RECALC;
            }
        }
        else
        {
            if (itstatus & STARTSTOP)
            {
                /* SWUART_STOPBIT_TX */
                if((!GET_RX)|| (tx_reference_buffer != rx_bg_buffer))
                {
                    status_register |= FRAMING_ERROR;
                }
                status_register |= TX_EMPTY;
            }
            else
            {
                /* SWUART_IDLE */
                rx_bg_buffer = 0;
                GET_TIM_COUNTER(uart_tmp16);
                uart_tmp16 += one_bit_time + one_bit_time/2 - bit_time_adjustment;
                SET_IC_COMPARE;
                SET_IC_COUNTER(uart_tmp16);
                itstatus = SWUART_DATA_RX;
                bit_cnt = 7;
                CLEAR_TIMER_FLAG;
                return;
            }
        }
        status_register |= RX_FULL;
        rx_fg_buffer = rx_bg_buffer;
        itstatus = SWUART_IDLE;
        SET_IC_FALLING;
        CLEAR_TIMER_FLAG;

        asm cli;

        if (status_register & BT_RECALC)
        {
            bit_time_measure = (one_bit_time*8 - one_bit_time/2 + bit_time_measure) / 8;
            if (bit_time_measure > min_bit_time && bit_time_measure < max_bit_time)
            {
                one_bit_time = bit_time_measure;
            }
            status_register &= ~BT_RECALC;
        }

        l_ifc_rx_i1();
    }
}


l_u8 uart_get_status(void)
/* Returns information about the UART status. */
{
    return(status_register);
}


void uart_clear_status(void)
/* Sets TX_EMPTY and clears RX_FULL, BREAK and FE flags */
{
    status_register = TX_EMPTY;
}

void uart_halt(void)
/* Releases TX and RX pins, stops actual transmission or reception immediately. */
{
    *rx_pin_ddr_address &= ~rx_pin_position;
    SET_TX_HIGH;
    *tx_pin_ddr_address |= tx_pin_position;
    
    itstatus = SWUART_IDLE;
    
    status_register = TX_EMPTY;

    SET_IC_DISABLE;
}

L_ROM_PREFIX l_uart_descriptor_handle L_ROM_POSTFIX uuu = &siii_uart_desc;

 L_ROM_PREFIX l_slave_rom L_ROM_POSTFIX siii_rom = {
	&l_frame_QY4_18_buf[1],
	&l_frame_QY4_18,
	0x41u,
	0x02u,
};

/* Reconfiguration related properties */
L_RAM_PREFIX ld2_ram_slave L_RAM_POSTFIX ld2_ram_sd_ifc;
L_ROM_PREFIX ld2_ifc_slave L_ROM_POSTFIX sd_ifc = {
	0x000bu,
	0x0021u,
	{&l_flag_buffer[0], 0x02u},
	0x01u,
	0x03u,
};

/* Callout routines for giving processing time to layered support products*/
void l_callout_init_slave ()
{
	ld2_init_slave ();
}

void l_callout_header_slave ()
{
	(void) ld2_header_slave ();
}

void l_callout_response_slave (l_bool success)
{
	(void) ld2_response_slave (success);
}

/* Search function for UART type 'hc08_swuart' */
l_slave_frame_handle l_header_to_frame_hc08_swuart(l_u8 hdr)
{
	if (hdr == 0x3cu)  /*MasterReq_demo_net*/
	{
		return &l_frame_MasterReq;
	}
	else if (hdr == 0x7du)  /*SlaveResp_demo_net*/
	{
		if ((l_flag_buffer[0] & 0x02u))
		{
			l_flag_buffer[00000] &= ~0x02u;
			return &l_frame_SlaveResp;
		}
		else
		{
			return (l_slave_frame_handle) 0;
		}
	}
	else if (hdr == l_PID_list_siii[0x00u])  /*global_info*/
	{
		return &l_frame_global_info;
	}
	else if (hdr == l_PID_list_siii[0x01u])  /*resolving*/
	{
		return &l_frame_resolving;
	}
	else if (hdr == l_PID_list_siii[0x02u])  /*QY4_18*/
	{
		return &l_frame_QY4_18;
	}
	return (l_slave_frame_handle) 0;
}

/* end of l_gen.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频香蕉人妖| 成人免费毛片aaaaa**| 成人在线视频一区| 欧美在线观看一区| 国产精品短视频| 国产一区二区视频在线| 欧美日本一道本| 亚洲欧美另类久久久精品| 激情久久五月天| 欧美猛男gaygay网站| 国产精品久久毛片av大全日韩| 日日摸夜夜添夜夜添精品视频| 波多野结衣中文字幕一区二区三区| 日韩欧美色电影| 视频一区二区三区中文字幕| 色香色香欲天天天影视综合网| 国产女人aaa级久久久级| 免费在线看成人av| 欧美日韩免费观看一区二区三区| 亚洲人成人一区二区在线观看 | 午夜在线成人av| 丁香激情综合国产| 久久九九久久九九| 精品亚洲免费视频| 日韩一区二区不卡| 青青草成人在线观看| 欧美日韩激情一区二区三区| 亚洲综合激情网| 欧美日韩情趣电影| 日日夜夜免费精品视频| 欧美三片在线视频观看| 亚洲成在人线免费| 欧美日韩视频一区二区| 性感美女久久精品| 91精品国产欧美日韩| 日本aⅴ精品一区二区三区| 91精品午夜视频| 日韩国产欧美在线视频| 欧美电影免费观看高清完整版在线 | 精久久久久久久久久久| 日韩欧美电影在线| 国产在线视频一区二区三区| 精品少妇一区二区三区日产乱码| 久久99久久精品| 久久久久久久网| www.亚洲精品| 夜夜精品浪潮av一区二区三区| 在线观看国产91| 亚洲成av人片在线观看| 在线成人午夜影院| 韩国三级电影一区二区| 国产精品污网站| 日本乱人伦aⅴ精品| 亚洲va国产va欧美va观看| 91精品福利在线一区二区三区| 久久99久国产精品黄毛片色诱| 精品理论电影在线观看| 9久草视频在线视频精品| 亚洲国产美国国产综合一区二区| 欧美精品一二三| 国产高清亚洲一区| 亚洲一区影音先锋| 日韩精品在线看片z| 97精品国产露脸对白| 日日骚欧美日韩| 国产欧美1区2区3区| 欧美午夜一区二区| 国产精品99久| 午夜亚洲国产au精品一区二区| 26uuu亚洲婷婷狠狠天堂| 99久久er热在这里只有精品15| 日韩国产精品久久| 国产午夜精品一区二区三区四区| 99热精品国产| 国模少妇一区二区三区| 一区二区三区中文在线观看| 精品国产自在久精品国产| 日本大香伊一区二区三区| 精品在线免费视频| 香蕉av福利精品导航| 国产精品色在线| 欧美精品一区二区在线观看| 欧美午夜精品久久久久久超碰| 国产成人av一区二区三区在线 | 午夜视频一区二区三区| 国产精品伦理一区二区| 精品久久久网站| 欧美日韩成人激情| 91老师片黄在线观看| 国产久卡久卡久卡久卡视频精品| 日韩国产欧美三级| 亚洲一级二级在线| 亚洲视频在线一区观看| 久久久www成人免费毛片麻豆 | 日产欧产美韩系列久久99| 亚洲男帅同性gay1069| 久久久久免费观看| 欧美videofree性高清杂交| 欧美日韩性生活| 色一情一乱一乱一91av| 99re66热这里只有精品3直播 | 九色综合国产一区二区三区| 亚洲不卡在线观看| 亚洲美女偷拍久久| 亚洲欧美日韩国产另类专区| 国产午夜精品美女毛片视频| 久久综合久久鬼色| 欧美电影免费提供在线观看| 91精品国产乱| 欧美精品久久天天躁| 欧美三区在线观看| 欧美日韩免费视频| 777亚洲妇女| 日韩亚洲欧美在线| 日韩精品一区二区三区在线播放 | 国产在线精品一区二区三区不卡| 日韩成人dvd| 久久精品久久综合| 精品一区二区三区日韩| 国产一区二区三区免费| 成人性生交大合| av电影天堂一区二区在线观看| 99久久精品国产毛片| 色悠久久久久综合欧美99| 色呦呦一区二区三区| 欧美午夜精品久久久| 6080yy午夜一二三区久久| 日韩欧美一区二区久久婷婷| 久久综合成人精品亚洲另类欧美| 久久精品一区二区三区不卡 | 91在线小视频| 色婷婷狠狠综合| 3atv一区二区三区| 欧美精品一区二区精品网| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产精品精华液ab| 亚洲码国产岛国毛片在线| 日韩综合一区二区| 国产福利一区二区三区视频在线| jlzzjlzz国产精品久久| 欧美少妇xxx| 久久蜜桃av一区精品变态类天堂| 国产精品灌醉下药二区| 亚洲国产精品久久一线不卡| 久久99这里只有精品| 丰满亚洲少妇av| 在线亚洲一区二区| 精品国产伦一区二区三区观看体验 | 午夜激情一区二区| 国产一区二区三区蝌蚪| 色欧美日韩亚洲| 精品国精品国产| 亚洲精品视频一区| 麻豆国产一区二区| 94-欧美-setu| 精品国产sm最大网站免费看| **网站欧美大片在线观看| 日韩国产欧美在线视频| 成人一区二区三区中文字幕| 在线不卡a资源高清| 国产精品区一区二区三区| 五月婷婷综合网| 成人av电影在线播放| 精品免费国产一区二区三区四区| 日韩一区中文字幕| 国产精品一色哟哟哟| 欧美日本国产视频| 亚洲欧美另类久久久精品| 国产一区二区三区香蕉| 欧美精品丝袜中出| 玉米视频成人免费看| 国产91高潮流白浆在线麻豆 | 国产精品夜夜嗨| 69成人精品免费视频| 一个色在线综合| 99久久亚洲一区二区三区青草| 欧美精品一区二区在线观看| 日韩影院免费视频| 欧美日韩卡一卡二| √…a在线天堂一区| 成人免费毛片嘿嘿连载视频| 青青草97国产精品免费观看无弹窗版| 日本不卡免费在线视频| 欧美午夜一区二区三区免费大片| 国产精品久久久久精k8| 国产一区二区三区免费| 欧美v日韩v国产v| 奇米777欧美一区二区| 欧美日韩免费观看一区二区三区| 亚洲乱码中文字幕综合| 成人免费看视频| 国产精品久久久久一区二区三区共| 国内久久婷婷综合| 精品国精品自拍自在线| 麻豆精品精品国产自在97香蕉| 欧美一区在线视频| 蜜桃视频在线一区| 日韩欧美国产午夜精品| 精品一区二区免费看| 精品国产伦一区二区三区观看方式|