80 lines
2.7 KiB
C
80 lines
2.7 KiB
C
/*******************************************************************************
|
||
*
|
||
* Copyright(C) 2012 WANG XIBING All rights reserved.
|
||
*
|
||
* 文件:libbase.h
|
||
* 作者:wxb
|
||
* 版本:V1.00
|
||
* 日期:2012-1-1
|
||
* 描述:基本的数据类型和函数库
|
||
* 属性:RL78
|
||
* 修改:V1.00, 2012-1-1, wxb, 创建本文件
|
||
*
|
||
* 声明:本程序所有权归作者所有。
|
||
* 本程序仅用于实现特定产品的功能,任何修改或其它目的的应用均不作保证,
|
||
* 任何人未经作者同意不得将本程序的全部或部分用于商业目的。
|
||
*******************************************************************************/
|
||
#ifndef __LIBBASE_H__
|
||
#define __LIBBASE_H__
|
||
|
||
#include "type.h"
|
||
#include "ddl.h"
|
||
|
||
#include "wdt.h"
|
||
#define CHECK_OFFSET 0x5A
|
||
|
||
#define b2_to_bcd(b2) ((u16)bytes_to_bcd((b2), 2))
|
||
#define bcd_to_b2(bcd, b2) bcd_to_byte((bcd), (b2), 2)
|
||
#define b3_to_bcd(b3) bytes_to_bcd((b3), 3)
|
||
#define bcd_to_b3(bcd, b3) bcd_to_byte((bcd), (b3), 3)
|
||
#define b4_to_bcd(b4) bytes_to_bcd((b4), 4)
|
||
#define bcd_to_b4(bcd, b4) bcd_to_byte((bcd), (b4), 4)
|
||
#define abs(x) (((x)<0) ? (-(x)):(x))
|
||
|
||
|
||
|
||
#define ei() __enable_irq()
|
||
#define di() __disable_irq()
|
||
#define nop() __NOP()
|
||
#define halt() __WFI();
|
||
// Interrupt
|
||
#define enable_int() ei()
|
||
#define disable_int() di()
|
||
#define stop() halt()
|
||
// WDT
|
||
#define wdt_reset() Wdt_Feed();
|
||
|
||
u8 add_check(void *buffer, u8 len);
|
||
#define add_offset_check(buffer, len) ((u8)(add_check(buffer, len) + CHECK_OFFSET))
|
||
u8 xor_check(void *buffer, u8 len);
|
||
#define xor_offset_check(buffer, len) ((u8)(xor_check(buffer, len) + CHECK_OFFSET))
|
||
#define b2_to_hex(b2) ((u16)bytes_to_hex((b2), 2))
|
||
#define hex_to_b2(hex, b2) hex_to_byte((hex), (b2), 2)
|
||
#define b3_to_hex(b3) bytes_to_hex((b3), 3)
|
||
#define hex_to_b3(hex, b3) hex_to_byte((hex), (b3), 3)
|
||
#define b4_to_hex(b4) bytes_to_hex((b4), 4)
|
||
#define hex_to_b4(hex, b4) hex_to_byte((hex), (b4), 4)
|
||
#define hex_to_b2_5_high(hex, high) \
|
||
hex_to_b2(hex>>4, (high));
|
||
#define hex_to_b2_5_low(hex, low) \
|
||
low = hex & 0x0F;
|
||
#define b2_5_to_hex(high, low) \
|
||
((b2_to_hex(high)<<4)|low)
|
||
|
||
void memcpyinv(void *des, void* src, char len);
|
||
u8 u8_to_bcd(u8 n);
|
||
u8 bcd_to_u8(u8 b);
|
||
u8 u32_to_bcd(u32 n, PU8 bcd, u8 len);
|
||
u32 bcd_to_u32(PU8 bcd, u8 len);
|
||
u32 bytes_to_hex(const u8 *bytes, u8 len);
|
||
void hex_to_byte(u32 hex, u8 *bytes, u8 len);
|
||
u32 bytes_to_bcd(const u8 *bytes, u8 len);
|
||
void bcd_to_byte(u32 bcd, u8 *bytes, u8 len);
|
||
//void u32_to_time(u32 t, DATE_TIME *time);
|
||
//u32 time_to_u32(DATE_TIME *time);
|
||
void delay_us(u16 us);
|
||
void delay_ms(u16 ms);
|
||
|
||
|
||
#endif /*__LIBBASE_H__*/
|