【创龙TMS320C6748开发板试用】+创龙ECAP_APWM代码分析
来源:互联网 发布:独立的数据集市 编辑:程序博客网 时间:2024/05/16 05:03
1.打开工程
2.main函数中的代码,和与ecap比较相关的函数,中断我还没看,所以先忽略……
3.GPIO管脚复用配置
4.ctrl+单击 打开函数
居然只有声明
5.去 demo\StarterWare\Application\Platform 看看,有ECAP.c文件。打开
有了。
6.具体看看
0x01C14000 这个在gel文件有说,
点进去也能看见,在soc_C6748.h 如下:
以n==2 中为例
SYSCFG_PINMUX1_PINMUX1_3_0 的值0x0000000Fu,&上它的~,就是除了这四位,每位都和1与,这样就保存了原来其他位的值,并把这四位置0了
我看hw_sysycfg0_C6748.h文件对各种宏定义的声明,SYSCFG_PINMUX1_PINMUX1_3_0这个其实在就是相当于选择了0-3这四位,每一个都有SYSCFG_PINMUX1_PINMUX1_3_0_SHIFT这个是给寄存器赋值时寄存器的偏移位,向这里是0-3位,所以偏移值为0,但对于高位偏移值就各不一样了:
然后就很清楚了:
先取得32位寄存器中其他的值,保留而不改变,把这四位置0。
然后再把这寄存器赋 保留下来的其他位的值 | ecap2使能需要的置位
看一下PINMUX1_ECAP2_ENABLE:
就是管脚配置成ECAP2功能 加一个移位
这是TI Pin Multiplex Utility中的配置
ok,管脚配置讲完了~
下面是:APWMInit() 函数
看函数:
就这四个步骤了吧~
依次说下
1)
上面也写了用法
2)
CAP1,CAP2寄存器也说了:
datasheet P349,对于APWM功能的描述:
一个CMP,一个PRD
3)
这个就是APWM极性选择位,例程给了1
0--输出高电平有效
1--输出低电平有效
4)
依旧这样
看一看我的效果吧:
到此,差不多看完了。不过正如我在上一篇帖子说的那样,我只是跟着程序走,并不知道我应该做什么,希望各位指导下菜鸟。
我还有两个问题,不知大家有没有遇到的:
1.我在debug下用仿真器在线调试,当烧写第二次是,仿真器就提示连接不上了,再重开ccs,就可以,不知原因。
2.例程给的是用ECAP2来产生PWM,我不知道是哪里控制让ECAP2来执行这件事,APWMInit函数说是对ECAP2配置,但我不知道怎么对ECAP0,1配置,开发板也没有留出接口来供我使用,所以不是很明白。
如果各位大牛遇到过这些问题,还希望各位能指导指导!
2.main函数中的代码,和与ecap比较相关的函数,中断我还没看,所以先忽略……
3.GPIO管脚复用配置
4.ctrl+单击 打开函数
居然只有声明
5.去 demo\StarterWare\Application\Platform 看看,有ECAP.c文件。打开
有了。
6.具体看看
0x01C14000 这个在gel文件有说,
点进去也能看见,在soc_C6748.h 如下:
以n==2 中为例
SYSCFG_PINMUX1_PINMUX1_3_0 的值0x0000000Fu,&上它的~,就是除了这四位,每位都和1与,这样就保存了原来其他位的值,并把这四位置0了
我看hw_sysycfg0_C6748.h文件对各种宏定义的声明,SYSCFG_PINMUX1_PINMUX1_3_0这个其实在就是相当于选择了0-3这四位,每一个都有SYSCFG_PINMUX1_PINMUX1_3_0_SHIFT这个是给寄存器赋值时寄存器的偏移位,向这里是0-3位,所以偏移值为0,但对于高位偏移值就各不一样了:
然后就很清楚了:
先取得32位寄存器中其他的值,保留而不改变,把这四位置0。
然后再把这寄存器赋 保留下来的其他位的值 | ecap2使能需要的置位
看一下PINMUX1_ECAP2_ENABLE:
就是管脚配置成ECAP2功能 加一个移位
这是TI Pin Multiplex Utility中的配置
ok,管脚配置讲完了~
下面是:APWMInit() 函数
看函数:
就这四个步骤了吧~
依次说下
1)
上面也写了用法
也就是把ECAP_ECCTL2_CAP_APWM赋值ECCTL2寄存器的第九位,看datasheet:
2)
CAP1,CAP2寄存器也说了:
datasheet P349,对于APWM功能的描述:
一个CMP,一个PRD
3)
这个就是APWM极性选择位,例程给了1
0--输出高电平有效
1--输出低电平有效
4)
依旧这样
看一看我的效果吧:
到此,差不多看完了。不过正如我在上一篇帖子说的那样,我只是跟着程序走,并不知道我应该做什么,希望各位指导下菜鸟。
我还有两个问题,不知大家有没有遇到的:
1.我在debug下用仿真器在线调试,当烧写第二次是,仿真器就提示连接不上了,再重开ccs,就可以,不知原因。
2.例程给的是用ECAP2来产生PWM,我不知道是哪里控制让ECAP2来执行这件事,APWMInit函数说是对ECAP2配置,但我不知道怎么对ECAP0,1配置,开发板也没有留出接口来供我使用,所以不是很明白。
如果各位大牛遇到过这些问题,还希望各位能指导指导!
0 0
- 【创龙TMS320C6748开发板试用】+创龙ECAP_APWM代码分析
- 【创龙TMS320C6748开发板试用】+ 中断学习
- 【创龙TMS320C6748开发板试用】+ 定时器
- 【创龙TMS320C6748开发板试用】+ECAP模块初探
- 【创龙TMS320C6748开发板试用】+两张图,看清时钟
- 【创龙TMS320C6748开发板试用】+开箱照及CCS环境简介
- 【创龙TMS320C6748开发板试用】+DEBUG模式下的led控制
- 【创龙TMS320C6748开发板试用】+几种基本的程序下载和烧写办法总结
- 【创龙TMS320C6748开发板试用】+SYSBIOS新建任务的二种方法
- 创龙TMS320C6748开发板———定时器/计数器学习
- 创龙TMS320C6748开发板———按键中断学习
- 创龙TMS320C6748开发板———GPIO配置深入
- 创龙TMS320C6748开发板———UART原理(1)
- 创龙TMS320C6748开发板———uPP配置
- 创龙TMS320C6748开发板———SPI接口配置
- 创龙TMS320C6748开发板———PSC配置及GPIO介绍
- 创龙TMS320C6748开发板———PLL模块和PINMUX说明
- 创龙TMS320C6748开发板———中断介绍(1)中断及中断相关寄存器
- Android系统中设置TextView的行间距(非行高)
- hdu 2846 Repository trie
- Bootstrap CSS——表单(二)
- mongodb查询中的null和存在不存在
- gcc/g++ 编译器使用简介
- 【创龙TMS320C6748开发板试用】+创龙ECAP_APWM代码分析
- ocp-132
- rspec测试出错
- 构造函数引用时的小秘密
- 中关村创业大街是贵重金属垃圾场,我捡到一只产品经理
- openCV program compile error “libopencv_core.so.2.4: cannot open shared object file: No such file or
- 阅读科研文献心得分享(一)
- 怎样利用.htaccess文件
- GCC学习总结