微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZLight 1.0.2哪个函数使用高低电平控制开关

ZLight 1.0.2哪个函数使用高低电平控制开关

时间:10-02 整理:3721RD 点击:

我们现在要做普通开关,每个芯片要控制多个普通灯,P0_3、P0_4、P0_5、P0_6各控制一个普通灯,手机可以对每个普通灯单独控制。

我们现在发现的问题是每个端口都是脉宽调制控制(233Hz),现在想改成高低电平控制,而不是用脉宽调制,请问程序中调用哪个函数?

直接把 Timer1MaxCount = halTimer1SetPeriod (4292); // 233Hz   这一行中的4292改为0是否可以?

在定时器配置的地方,原先我们是Timer1的4个通道输出PWM波形,那么只要把那个通道的PWM功能关了,当普通的IO来用就可以了

是不是把以下这几行封掉即可?

  halTimerSetPrescale (HW_TIMER_1, halTimerRecord[HW_TIMER_1].prescale);
  halTimerSetChannelMode (HW_TIMER_1, halTimerRecord[HW_TIMER_1].channelMode);
  halTimer1SetChannelCCTL(HAL_T1_CH0, 0, 1, HAL_TIMER1_CH0_CMP_MODE_SET_ON_COMP, 1, HAL_TIMER1_CH_CAP_MODE_NO);
  halTimer1SetChannelCCTL(HAL_T1_CH1, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
  halTimer1SetChannelCCTL(HAL_T1_CH2, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
  halTimer1SetChannelCCTL(HAL_T1_CH3, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
  halTimer1SetChannelCCTL(HAL_T1_CH4, 0, 1, HAL_TIMER1_CHn_CMP_MODE_CLR_ON_COMP_SET_ON_0, 1, HAL_TIMER1_CH_CAP_MODE_NO);
 
  halTimer1SetChannelDuty (HAL_T1_CH1, 0);
  halTimer1SetChannelDuty (HAL_T1_CH2, 0);
  halTimer1SetChannelDuty (HAL_T1_CH3, 0);
  halTimer1SetChannelDuty (HAL_T1_CH4, 0);

是的!

将上述PWM涉及代码封掉之后,无法点亮LED灯,是不是要把hw_light_ctrl.c中的点灯函数ENABLE_LAMP改掉?应该怎么改?

是不是直接对寄存器进行编程?

多谢!

如果你是直接高低电平操作LED的话,参考hal_led.c操作led的方法就可以了

我设置了HAL_LED=TRUE, BLINK_LEDS=FLASE,能够执行到函数HALLedOnOff (led, sts-mode),但还是无法点亮LED灯。

问题是不是出在了以下:

#define HAL_LED_1     0x01
#define HAL_LED_2     0x02
#define HAL_LED_3     0x04
#define HAL_LED_4     0x08

这4个LED灯分别对应P0_0, P0_1, P0_2, P0_3, 而我们的OSram灯用的是P0_3, P0_4, P0_5, P0_6。但即使如此,至少P0_3对应的LED灯即红色灯珠应该被点亮。

调用HAL_TURN_ON_LED4(),HalLedSet( HAL_LED_4, HAL_LED_MODE_ON )均无济于事。

我用CC Debugger跟踪调试,问题好像出在HAL_TURN_ON_LED4(),只要执行到这行,程序就会中断或自动跳到下一行,找遍了整个工程也没有这个函数的定义。

所以我至今还无头绪,望请TI专家不吝赐教,谢谢!

经过仔细查找、跟踪,问题已经解决,多谢TI专家VV的指导。

解决的方法是重写HAL_TURN_ON_LED4()函数,原来这个函数是置空,没有真正对IO口进行控制。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top