/******************************************************************************
File name: 3outof6.c
******************************************************************************/
#include "efm32.h"
//#include <hal_types.h>
#include <3outof6.h>
//----------------------------------------------------------------------------
// Variables
//----------------------------------------------------------------------------
// Table for encoding for a 4-bit data into 6-bit
// "3 out of 6" coded data.
static uint8_t encodeTab[16] = {0x16, // 0x0 "3 out of 6" encoded
0x0D, // 0x1 "3 out of 6" encoded
0x0E, // 0x2 "3 out of 6" encoded
0x0B, // 0x3 "3 out of 6" encoded
0x1C, // 0x4 "3 out of 6" encoded
0x19, // 0x5 "3 out of 6" encoded
0x1A, // 0x6 "3 out of 6" encoded
0x13, // 0x7 "3 out of 6" encoded
0x2C, // 0x8 "3 out of 6" encoded
0x25, // 0x9 "3 out of 6" encoded
0x26, // 0xA "3 out of 6" encoded
0x23, // 0xB "3 out of 6" encoded
0x34, // 0xC "3 out of 6" encoded
0x31, // 0xD "3 out of 6" encoded
0x32, // 0xE "3 out of 6" encoded
0x29}; // 0xF "3 out of 6" encoded
// Table for decoding a 6-bit "3 out of 6" encoded data into 4-bit
// data. The value 0xFF indicates invalid "3 out of 6" coding
static uint8_t decodeTab[64] = {0xFF, // "3 out of 6" encoded 0x00 decoded
0xFF, // "3 out of 6" encoded 0x01 decoded
0xFF, // "3 out of 6" encoded 0x02 decoded
0xFF, // "3 out of 6" encoded 0x03 decoded
0xFF, // "3 out of 6" encoded 0x04 decoded
0xFF, // "3 out of 6" encoded 0x05 decoded
0xFF, // "3 out of 6" encoded 0x06 decoded
0xFF, // "3 out of 6" encoded 0x07 decoded
0xFF, // "3 out of 6" encoded 0x08 decoded
0xFF, // "3 out of 6" encoded 0x09 decoded
0xFF, // "3 out of 6" encoded 0x0A decoded
0x03, // "3 out of 6" encoded 0x0B decoded
0xFF, // "3 out of 6" encoded 0x0C decoded
0x01, // "3 out of 6" encoded 0x0D decoded
0x02, // "3 out of 6" encoded 0x0E decoded
0xFF, // "3 out of 6" encoded 0x0F decoded
0xFF, // "3 out of 6" encoded 0x10 decoded
0xFF, // "3 out of 6" encoded 0x11 decoded
0xFF, // "3 out of 6" encoded 0x12 decoded
0x07, // "3 out of 6" encoded 0x13 decoded
0xFF, // "3 out of 6" encoded 0x14 decoded
0xFF, // "3 out of 6" encoded 0x15 decoded
0x00, // "3 out of 6" encoded 0x16 decoded
0xFF, // "3 out of 6" encoded 0x17 decoded
0xFF, // "3 out of 6" encoded 0x18 decoded
0x05, // "3 out of 6" encoded 0x19 decoded
0x06, // "3 out of 6" encoded 0x1A decoded
0xFF, // "3 out of 6" encoded 0x1B decoded
0x04, // "3 out of 6" encoded 0x1C decoded
0xFF, // "3 out of 6" encoded 0x1D decoded
0xFF, // "3 out of 6" encoded 0x1E decoded
0xFF, // "3 out of 6" encoded 0x1F decoded
0xFF, // "3 out of 6" encoded 0x20 decoded
0xFF, // "3 out of 6" encoded 0x21 decoded
0xFF, // "3 out of 6" encoded 0x22 decoded
0x0B, // "3 out of 6" encoded 0x23 decoded
0xFF, // "3 out of 6" encoded 0x24 decoded
0x09, // "3 out of 6" encoded 0x25 decoded
0x0A, // "3 out of 6" encoded 0x26 decoded
0xFF, // "3 out of 6" encoded 0x27 decoded
0xFF, // "3 out of 6" encoded 0x28 decoded
0x0F, // "3 out of 6" encoded 0x29 decoded
0xFF, // "3 out of 6" encoded 0x2A decoded
0xFF, // "3 out of 6" encoded 0x2B decoded
0x08, // "3 out of 6" encoded 0x2C decoded
0xFF, // "3 out of 6" encoded 0x2D decoded
0xFF, // "3 out of 6" encoded 0x2E decoded
0xFF, // "3 out of 6" encoded 0x2F decoded
0xFF, // "3 out of 6" encoded 0x30 decoded
0x0D, // "3 out of 6" encoded 0x31 decoded
0x0E, // "3 out of 6" encoded 0x32 decoded
0xFF, // "3 out of 6" encoded 0x33 decoded
0x0C, // "3 out of 6" encoded 0x34 decoded
0xFF, // "3 out of 6" encoded 0x35 decoded
0xFF, // "3 out of 6" encoded 0x36 decoded
0xFF, // "3 out of 6" encoded 0x37 decoded
0xFF, // "3 out of 6" encoded 0x38 decoded
0xFF, // "3 out of 6" encoded 0x39 decoded
0xFF, // "3 out of 6" encoded 0x3A decoded
0xFF, // "3 out of 6" encoded 0x3B decoded
0xFF, // "3 out of 6" encoded 0x3C decoded
0xFF, // "3 out of 6" encoded 0x3D decoded
0xFF, // "3 out of 6" encoded 0x3E decoded
0xFF}; // "3 out of 6" encoded 0x3F decoded
//----------------------------------------------------------------------------
// Functions
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// void encode3outof6 (uint8 *uncodedData, uint8 *encodedData, uint8 lastByte)
//
// DESCRIPTION:
// Performs the "3 out 6" encoding on a 16-bit data value into a
// 24-bit data value. When encoding on a 8 bit variable, a postamle
// sequence is added.
//
// ARGUMENTS:
// uint8 *uncodedData - Pointer to data
// uint8 *encodedData - Pointer to store the encoded data
// uint8 lastByte - Only one byte left in data buffer
//----------------------------------------------------------------------------
void encode3outof6(uint8_t *uncodedData, uint8_t *encodedData, uint16_t size)
{
uint16_t i, n;
uint8_t idata, odata[ 4 ];
n = size & 0xF
3outof6.zip_3outof6_number
版权申诉
70 浏览量
2022-09-14
21:22:55
上传
评论
收藏 2KB ZIP 举报
局外狗
- 粉丝: 64
- 资源: 1万+
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈