P7UWaterXinjiang4G/hardinterface/inc/libbase.h

80 lines
2.7 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/*******************************************************************************
*
* 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__*/