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

📄 l_target.h

📁 MC68HC908GR60A LIN-BUS源码(编译环境:CodeWarriorV3.1)
💻 H
字号:
/* ************************************************************************ */
/*                                                                          */
/*                  Volcano Communications technologies AB                  */
/*                            All rights reserved                           */
/*                                                                          */
/* ************************************************************************ */

/*         File: l_target.h                                                 */
/*       Author: Anders Kallerdahl/VCT AB                                   */
/*  Description: Target specific definitions for the hc08 microcontroller   */
/*                                                                          */
/*  Date:   Author:     Description:                                        */
/*  -----   -------     ------------                                        */
/*  020925  VCT-AKl     + Copied from Star12                                */
/*                                                                          */
/*  Assumptions: -                                                          */
/*                                                                          */
/****************************************************************************/

#ifndef __L_TARGET_H__
#define __L_TARGET_H__

#include <l_types.h>
#include <ld2_slave.h>
#include <ld2_master.h>

typedef volatile unsigned char l_reg8;

/* Struct that can be layed over a Star8 UART */
typedef struct
{
  l_reg8 SCPSC;	    /* base + 0  0x0009 */
  l_reg8 SCIACTL;	/* base + 1  0x000A */
  l_reg8 SCIADAT;	/* base + 2  0x000B */
  l_reg8 not_used1;	/* base + 3  0x000C */
  l_reg8 not_used2;	/* base + 4  0x000D */
  l_reg8 not_used3;	/* base + 5  0x000E */
  l_reg8 not_used4;	/* base + 6  0x000F */
  l_reg8 not_used5; /* base + 7  0x0010 */
  l_reg8 not_used6;	/* base + 8  0x0011 */
  l_reg8 not_used7;	/* base + 9  0x0012 */
  l_reg8 SCC1;		/* base + 10 0x0013 */
  l_reg8 SCC2;		/* base + 11 0x0014 */
  l_reg8 SCC3;		/* base + 12 0x0015 */
  l_reg8 SCS1;		/* base + 13 0x0016 */
  l_reg8 SCS2;      /* base + 14 0x0017 */
  l_reg8 SCDR;		/* base + 15 0x0018 */
  l_reg8 SCBR;		/* base + 16 0x0019 */
} *l_UART_handle;

/* Define the target specific UART descriptor for the hc08 */
typedef struct 
{
  l_UART_handle sreg_base;       /* Base address to SCI controller */
  l_reg8*       port_ddr_reg;    /* Data direction register for RX and TX pin */
  l_reg8*       port_data_reg;   /* Data in/out register for RX and TX pin */
  l_u8          ddr_rx_mask;     /* One bit set mask, masks RX pin in the DDR */
  l_u8          ddr_tx_mask;     /* One bit set mask, masks TX pin in the DDR */
  l_u16         bit_rate_normal; /* Bit rate for normal operation */
  l_u16         bit_rate_break;  /* Bit rate for sending BREAK character */
} l_uart_ram_descriptor, *l_uart_ram_descriptor_handle;

typedef const l_uart_ram_descriptor  l_uart_descriptor;
typedef l_uart_descriptor           *l_uart_descriptor_handle;


/* LIN API function prototypes for master */
L_LIB_PREFIX l_bool l_hc08esci_ifc_m_connect (l_ifc_master_handle iii);
L_LIB_PREFIX l_bool l_hc08esci_ifc_m_disconnect (l_ifc_master_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_m_init (l_ifc_master_handle iii, void *uuu, l_master_rom_handle rom);
L_LIB_PREFIX l_u16  l_hc08esci_ifc_m_ioctl (l_ifc_master_handle iii,
                                l_ioctl_op op, void *pv);
L_LIB_PREFIX void   l_hc08esci_ifc_m_rx (l_ifc_master_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_m_tx (l_ifc_master_handle iii);
L_LIB_PREFIX void   l_hc08esci_sch_set (l_ifc_master_handle iii, 
                            l_schedule_handle sch, l_u8 ent);
L_LIB_PREFIX l_u8   l_hc08esci_sch_tick (l_ifc_master_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_m_goto_sleep (l_ifc_master_handle iii);
L_LIB_PREFIX l_u16  l_hc08esci_ifc_m_read_status(l_ifc_master_handle iii);

/* LIN API function prototypes for slave */
L_LIB_PREFIX l_bool l_hc08esci_ifc_s_connect (l_ifc_slave_handle iii);
L_LIB_PREFIX l_bool l_hc08esci_ifc_s_disconnect (l_ifc_slave_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_s_init (l_ifc_slave_handle iii, void* uuu, l_slave_rom_handle rom);
L_LIB_PREFIX l_u16  l_hc08esci_ifc_s_ioctl (l_ifc_slave_handle iii, 
                                l_ioctl_op op, void *pv);
L_LIB_PREFIX void   l_hc08esci_ifc_s_rx (l_ifc_slave_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_s_tx (l_ifc_slave_handle iii);
L_LIB_PREFIX l_u16  l_hc08esci_ifc_s_read_status(l_ifc_slave_handle iii);
L_LIB_PREFIX void   l_hc08esci_ifc_s_wakeup(l_ifc_slave_handle iii);

/* LIN API function prototypes for master & slave */
L_LIB_PREFIX l_bool l_hc08esci_sys_init(void);
L_LIB_PREFIX void	l_hc08esci_bytes_wr( l_u8 skip, l_u8 count, const l_u8* const data, l_u8* dest);
L_LIB_PREFIX void	l_hc08esci_bytes_rd(l_u8 skip, l_u8 count, l_u8* const data, l_u8 *src);

L_LIB_PREFIX void	ld2_init_slave (ld2_ifc_slave_handle d_ifc);
L_LIB_PREFIX l_bool	ld2_header_slave (ld2_ifc_slave_handle d_ifc);
L_LIB_PREFIX l_bool	ld2_response_slave (ld2_ifc_slave_handle d_ifc, l_bool success);
L_LIB_PREFIX void	ld2_init_master (ld2_ifc_master_handle d_ifc);
L_LIB_PREFIX l_bool	ld2_header_master (ld2_ifc_master_handle d_ifc);
L_LIB_PREFIX l_bool	ld2_response_master (ld2_ifc_master_handle d_ifc, l_bool success);

#endif /* __L_TARGET_H__ */

⌨️ 快捷键说明

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