网站公告列表     本站开通全国范围代收货款业务,详情请点击  [dycxin  2008年5月14日]        
加入收藏
设为首页
联系站长
您现在的位置: EDA加油站 >> PSOC >> PSOC开发工具 >> 正文
  [推荐]PSOCEVAL1评估板配套程序4-动态配置一个PWM           ★★★ 【字体:
PSOCEVAL1评估板配套程序4-动态配置一个PWM
PSOCEVAL1评估板配套程序4-动态配置一个PWM
作者:dycxin    POSC专栏来源:本站原创    点击数:    更新时间:2008-5-16    

PSOCEVAL1评估板 

项目名:ASM_Example_Dynamic_PWM_PRS

作用:通过开关PWM8和PRS8(伪随机序列)之间的数字模块可动态重配置。这个例子也说明PRS产生脉宽的优势。

运行:时钟分频器VC1,VC2和VC3分别用于分频24MHz的16,16和128分频。结果为732HZr的时钟输入给8位计数器(基于配置的用户模块)。

如果按评估板上的SW按钮。PWM配置装载,同时双周斯装载到计数器。如果按钮按下及保持PRS_config装载同时128周期装载入计数器。

PWM配置包括一个标准的8位PWM(脉宽比为1:1)。脉宽和最终的输出计数显示在LED上

线路连接:
P14 -> SW = User Button
P20 -> LED1 = PWM Pulse Width or PRS Pulse Density
P22 -> LED2 = PWM Terminal Count
P23 -> LED3 = PRS Bit Stream

代码:

// include m8c specific declarations
include “m8c.inc”
// include User Module API specific declarations
include “psocapi.inc”
export _main:
_main:
// configure port pins
and reg[PRT1DR], ~0x10
mov reg[PRT2DR], 0x00
// start clock generator
lcall Counter8_1_Start
// load PRS configuration
lcall LoadConfig_PRS_Config
jmp PWM
PRS:
// stop and unload PWM configuration
lcall PWM8_1_Stop
lcall UnloadConfig_PWM_Config
// then load PRS config
lcall LoadConfig_PRS_Config
// update clock divider, don’t wait for period
reload
lcall Counter8_1_Stop

mov A, 0x7F
lcall Counter8_1_WritePeriod
lcall Counter8_1_Start
// configure and start PRS
mov A, 0x01
lcall PRS8_1_WriteSeed
mov A, 0xB8
lcall PRS8_1_WritePolynomial
lcall PRS8_1_Start
// load compare value, must be loaded after PRS is
started
mov reg[PRS8_1_SEED_REG], 0x7F
PRSloop:
// wait for button release
tst reg[PRT1DR], 0x10
jnz PRSloop
// simple debounce
tst reg[PRT1DR], 0x10
jnz PRSloop
jmp PWM
PWM:
// stop and unload PRS configuration
lcall PRS8_1_Stop
lcall UnloadConfig_PRS_Config
// then load PWM config
lcall LoadConfig_PWM_Config
// update clock divider, don’t wait for period
reload
lcall Counter8_1_Stop

mov A, 0x01
lcall Counter8_1_WritePeriod
lcall Counter8_1_Start
// configure and start PWM
mov A, 0xFF
lcall PWM8_1_WritePeriod
mov A, 0x7F
lcall PWM8_1_WritePulseWidth
// enable PWM
lcall PWM8_1_Start
PWMloop:
// wait for button release
tst reg[PRT1DR], 0x10
jz PWMloop
// simple debounce
tst reg[PRT1DR], 0x10
jz PWMloop
jmp PRS

POSC专栏录入:dycxin    责任编辑:dycxin 
  • 上一个POSC专栏:

  • 下一个POSC专栏:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    PSOCEVAL1评估板配套程序5-利…
    PSOCEVAL1评估板配套程序3-输…
    PSOCEVAL1评估板配套程序2-L…
    PSOCEVAL1评估板配套程序1-A…
    CY3210-PSOCEVAL1评估板手册
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    EDA加油站|我要EDA网|山东电子网--东营市荣燕商贸有限公司版权所有! 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号  鲁ICP备07000091号 鲁ICP备05003434号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处