我在第一篇文章中已经跟大家介绍过379解码多摩川编码器的一些入手小知识,链接如下TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)

请大家一定要看入手小知识,再来看例程分析。

今天跟大家分析一下TI的官方例程。

首先,我默认你已经安装了CCS,目前我装的是CCS9.2,CCS10已经出了,基本上从9.2开始是嵌入了CLB TOOL的,可用于开发CLB,我还没深入研究过,以下是CCS下载链接:

http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html

以下两篇是官方CLB中文参考文档的链接:

TI官方的CLB设计说明文档链接http://www.ti.com.cn/cn/lit/an/zhca963/zhca963.pdf

TI官方CLB用户指南中文版链接http://www.ti.com.cn/cn/lit/ug/zhcu712/zhcu712.pdf

其次,是官方例程的获取,大家可以通过安装TI官方针对C2000处理器推出的ControlSuit获取,我装的版本是3.4,注册一个TI账号就可以下载了。

下载安装C2000 SDK或者MotorControl SDK也可以获取到这个例程,以下是下载链接:

TI 官方C2000 WARE下载链接http://www.ti.com.cn/tool/cn/C2000WARE?keyMatch=C2000%20WARE&tisearch=Search-CN-everything

TI官方MotorControl SDK下载链接http://www.ti.com.cn/tool/cn/C2000WARE-MOTORCONTROL-SDK

接下来,进入正题,LIB版本的例程,部分函数是封库的,在工程中需要添加相应的LIB文件,才可以编译通过,由于是封库的,后续开发可能会有所限制,比如解码运行时间过长,解码+发送大概要20us吧,是的,20us,难以承受。

用CCS打开LIB例程:

工程图例

工程存放路径如下:

C:tic2000C2000Ware_MotorControl_SDK_3_00_00_00solutionsboostxl_posmgrf2837xdccstformat

双击打开pm_tformat_main.c

例程main主函数

mian主函数前面是379的时钟、外设、IO、中断的配置,这些不讲,大家自己去熟悉。

接着是SPI的中断函数配置及使能,这里用到的是SPIB及SPIBRXINT,在第一篇文章中有提到。

SPIB相关配置

接着,我们看一张流程图,这是我自己画的,为了方便大家理解上手这个例程。

LIB版本例程解码流程图

通过这个流程图,基本上可以将例程的理解为:

  1. 设置CF,发送CF,死循环等待接收完成标志位
  2. 延时3us后(CLB控制CLK),SPI外设接收;
  3. SPIFIFO接收满,触发RXINT中断,中断函数存BUF,置标志位;
  4. 解码、校验、赋值(位置信息要做蝶式交换,协议是这样规定的,蝶式交换即字节的bit对称交换
  5. 延迟(给编码器留空闲时间),反复循环

接着,是SPI中断处理程序截图:

SPIBRXINT中断处理程序

最后是,while主循环的发收解码部分,如图:

发收解码截图

好了,LIB版的例程分析就讲这么多,其实看完我画的流程图,应该也就懂了,往深一点的,要大家自己去研究

这个系列我会在头条号同步更新,有空我会继续更新下一篇,讲LIB例程的应用开发,谢谢。

huffman编码的程序流程图_F28379D之CLB解码多摩川编码器2——LIB版例程讲解(原创)...相关推荐

  1. fpga多摩川编码器开源代码_F28379D之CLB解码多摩川编码器1——入手小知识(原创)...

    今天,跟大家分享一下28379D的CLB解码多摩川绝对值编码器的一些入手小知识. 首先,28379是属于TI的2837x系列,D是双核版本,S是单核版本,S和D都是带CLB模块的,都可以实现位置解码, ...

  2. 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)

    今天,跟大家分享一下28379D的CLB解码多摩川绝对值编码器的一些入手小知识. 首先,28379是属于TI的2837x系列,D是双核版本,S是单核版本,S和D都是带CLB模块的,都可以实现位置解码, ...

  3. huffman编码的程序流程图_Huffman编码实现压缩解压缩

    这是我们的课程中布置的作业.找一些资料将作业完毕,顺便将其写到博客,以后看起来也方便. 原理介绍 什么是Huffman压缩 Huffman( 哈夫曼 ) 算法在上世纪五十年代初提出来了,它是一种无损压 ...

  4. huffman编码的程序流程图_Huffman编码软件实现.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp软件工程 Huffman编码软件实现.doc8页 本文档一共被下 ...

  5. Huffman编码解码

    Huffman编码解码 霍夫曼(Huffman)编码问题也就是最优编码问题,通过比较权值逐步构建一颗Huffman树,再由Huffman树进行编码.解码. 其步骤是先构建一个包含所有节点的线性表,每次 ...

  6. DS二叉树——Huffman编码与解码(不含代码框架)

    题目描述 1.问题描述 给定n个字符及其对应的权值,构造Huffman树,并进行huffman编码和译(解)码. 构造Huffman树时,要求左子树根的权值小于.等于右子树根的权值. 进行Huffma ...

  7. python Huffman编码及解码

    Huffman编码及解码 # coding:utf-8#Tree-Node Type class Node:def __init__(self,freq):self.left = Noneself.r ...

  8. Huffman编码与解码

    Huffman编码与解码 // @author: Folivora Li // @copyright Folivora Li/* 4.Huffman编码与解码 (必做)(Huffman编码.二叉树) ...

  9. 实验三Huffman编码与解码

    一.实验原理 Huffman编码实现的数据结构 Huffman编码为可变长编码,若各码字长度按照所对应符号出现概率的大小逆序排列,则其平均长度最小. 编码步骤: 1.将信源符号按照出现概率由大到小的顺 ...

最新文章

  1. php证券k线图,php画K线图的一个工具
  2. show in Breadcrumb
  3. Silverlight中开发和设计人员的合作文档信息
  4. [Java基础]Junit测试
  5. [html] 请说说你在写布局时对于浏览器兼容性的感受或总结
  6. 使用Power Designer(PD)创建数据库模型、数据库表
  7. mysql5.7建库建表_MySQL5.7 建库建表的命令
  8. C++STL——vector初探
  9. 使用Python从头开始实现基线机器学习算法
  10. 微信小程序实现秒杀、拼团、团购等效果
  11. 机器学习去除马赛克案例(代码)
  12. flv转换mp4最简单方法
  13. 鸿蒙系统和鸿鹄818,华为智慧屏将应用鸿蒙系统,搭载海思鸿鹄818芯片
  14. 可视化全埋点系列文章之功能介绍篇
  15. JavaScript工具函数
  16. 安装Ubuntu VMware Workstation 不可恢复错误
  17. 数字加千分位分隔符,加货币符号,数字转百分数
  18. VMware卸载不干净导致无法重安
  19. 安全设备默认地址账密总结
  20. Tomcat数据库连接池配置沤心沥血而作……

热门文章

  1. DevOps“兵器”60样,你都会使哪几样?
  2. mysql远程备份工具_innobackupex实现MySQL远程备份
  3. python随机森林特征重要性_Python中随机森林回归的特征重要性
  4. Centos出现-bash: unzip: command not found的解决办法
  5. SpringBoot集成Elasticsearch实现博客高亮搜索
  6. v-if v-show区别(面试题)
  7. Leetcode 704.二分查找
  8. 数组的合并和升序排列_区间调度问题之区间合并
  9. C++中提高程序运行效率的方法集合
  10. 一堆数据中将某一个值相同的数据进行分组