CCU 的CCPOS0 CCPOS1 CCPOS2 配置成输入引脚并进行测试
数据类型
IfxCcu6_PwmBc_Pins 数据类型的变量 pwm_pins
CCPOS0 输入引脚的配置
寄存器显示
现在
已经更改过来
第二步
现在CCU6的 CCPOS0 CCPOS1 CCPOS2 已经设置为输入了,
现在设置 同步事件 T12MSEL 的HSYNC 位阈是 100B
表示在T12的周期匹配事件 采样HALL的CCPOS0 CCPOS1 CCPOS2 输入
还是改为4
T12的周期匹配 而且在上升边沿计数 。
第三步骤 :
设置 T12MSEL 的值 均工作在霍尔模式
在捕获模式或者比较模式 CC60ST 存放的是比较输出值 或者捕获输入值
但是如果设置了通达是霍尔模式
则只有在 HCRDY 到来的时候,才可以将CCPOS0 CCPOS CCPO2 的值导入到对应的位阈值中。
而HCRDY 的信号的到来,还需要设值 DBYP=0
而且需要设置一个延时
设置了 10个 T12CLK 时钟周期
初步设置完成以后, 查看一个各个寄存器的配置
T12DTC 寄存器
现在我认为可以 改变一下 ccpos0 (P13.1 ) CCPOS1 (P13.2) CCPOS2 (13.3)
的电平值
然后看一下 CMPSTAT 相应的CMPSTAT 的位阈
然后我给P13.1 接入一个高电平 发现他的值CMPSTAT 中CCPOS0 确实发生了变化
然后我现在改变 P13.2 接入一个高电平 发现CMPSTAT 的CCPOS1 变为了1
然后我给P13.3 接入一个高电平 ,发现CMPSTAT 的CCPS2 变为了1
至此我认为 当 CCPS0 CCPOS1 CCPOS2 用T12的通道1 的周期中断的方式进行 触发采样, 然后由 DTM 延时10个时钟周期以后, HCRDY信号有效 触发了CCPOS0
CCPOS1 CCPOS2 的同步采样 并且把相应的状态更新写进入了 CPMSTAT 中对应的位阈值 CCPOS0 CCPOS1 CCPOS2
为了进一步验证 如果我不设置T12的周期中断 会怎样
发现改变任何一个P13.1 P13.2 P13.3 任何一个引脚的电平值
寄存器CMPSTAT 中对应的位阈都不会改变 。
为了进一步验证,霍尔输入CCPOS0 CCPOS1 CCPOS2 的评估条件改回
T12周期触发 然后不用延时功能
发现可以正常检测 。
文章以及程序的百度网盘链接 百度网盘文件名 20220110CCU单元ccpos0配置为输入方法以及程序测试