每个寄存器的值的确定,都是到技术文档里找相关值以确定每个寄存器需要的值多少。
pwm的引脚可以用万用表来测量其与那一个对应。
codewarrior编程,首先要安装,安装的时候只需要一步一步按照那个步骤来就行啦,建立了project
它自己就会有一些东西然后自己在里边编程。
很奇怪的是我编了个小程序但是(为什么我的一个led灯一亮着?因为硬件电路那么连的所以会一直亮着)。我观察了pwm波,用示波器但是好像有点不对,很奇怪。
把开关焊好了用别人的程序很好使,我想自己编一个程序。控制彩灯循环点亮。
pwmctl(pwm control rigister) pwmctl=0xd0,0xd0是十六进制中的11010000,那么表示76 54 01 级联
技术文档有相应的说明。(可是级联有很么作用呢?为什么1)级联可以把8mhz扩展为16mhz。
pwmprclk(pwm prescale rigister)pwmperclk=0x33,既是0101 0101寄存器的作用是对两个时钟分频,它一共有八位
但是第八位和第三位都是废的。然后后边的前三位是分clockb的,后三位是分时钟a的。然后在技术文档里边
有相应的值可以查讯以确定到底是分频多少。比如说如是0x33,就是把时钟b和时钟a均是8分频。
(飞思卡尔单片机为什么还分时钟a和时钟b?分频之后有什么作用?单片机本身的频率是多少?
单片机会有一个预分频,得到了不同的频率,分频之后会得到不同的占空比的)
pwmscla (scale a rigister)用来对a分频的,首先预分频pwmprclk,把单片机时钟分成AB两个,然后
再通过pwmscla对A分频分成Sa,而pwmsclb是对b分频的。clocksa=clocka(pwmscla*2)
pwmclk时钟选择,用来选择a或者sa。那个2367通道必须选择sb或者b。0145选择sa或着a。0xf3,指的是
11110101比如说第一位1则是说选的是sb。
pwmpol 0的先低后高,1的话先高后低。pwmpol=0xf3 11110101 一三通道先高后低!
pwmcae=0x00.0是左对齐模式,1是是中间模式。左或中间对齐占空比的算法不一样)
pwmdty?(pwmper45=250?没有弄懂????)pwmdty是控制占空比的。
pwme 1是使能,0是禁用。
文章评论(0条评论)
登录后参与讨论