我们现在要做普通开关,每个芯片要控制多个普通灯,P0_3、P0_4、P0_5、P0_6各控制一个普通灯,手机可以对每个普通灯单独控制。
我们现在发现的问题是每个端口都是脉宽调制控制(233Hz),现在想改成高低电平控制,而不是用脉宽调制,请问程序中调用哪个函数?
直接把 Timer1MaxCount = halTimer1SetPeriod (4292); // 233Hz 这一行中的4292改为0是否可以?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们现在要做普通开关,每个芯片要控制多个普通灯,P0_3、P0_4、P0_5、P0_6各控制一个普通灯,手机可以对每个普通灯单独控制。
我们现在发现的问题是每个端口都是脉宽调制控制(233Hz),现在想改成高低电平控制,而不是用脉宽调制,请问程序中调用哪个函数?
直接把 Timer1MaxCount = halTimer1SetPeriod (4292); // 233Hz 这一行中的4292改为0是否可以?
是不是把以下这几行封掉即可?
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);
我设置了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专家不吝赐教,谢谢!