AB1601LED之pwm
来源:互联网 发布:雅米网络兼职骗过的 编辑:程序博客网 时间:2024/06/05 09:17
直接上代码:
void DRV_Led_Set(led_ins led_idx, drv_led_setting *setting)
{
uint8_t unit_ms, unit_xn;
uint32_t unit_val;
volatile LED_SETTING_t ledMiscSet;
volatile LED_T0T1T2T3_t ledTimeStep;
volatile LED_PWM_SETTING_t ledPwm;
unit_ms = setting->unit_ms > 64 ? 64 : setting->unit_ms;
unit_val = unit_ms * 32;
if(unit_val >= 0x800)
unit_val = 0x7ff;
unit_xn = 0;
while(unit_val > 255)
{
unit_val >>= 1;
unit_xn ++;
}
ledMiscSet.reg = 0;
ledTimeStep.reg = 0;
ledPwm.reg = 0;
ledMiscSet.field.LED_unit = unit_val;
ledMiscSet.field.LED_XN = unit_xn;
ledMiscSet.field.LED_PWM_DU_SET = 0xF; //100%
ledMiscSet.field.LED_T1T2rep = setting->t1t2_repeat_cnt;
ledMiscSet.field.LED_REPEAT = setting->nostop;
ledMiscSet.field.LED_FWsel = setting->follow_idx;
ledMiscSet.field.LED_FW_T1T2 = 0; //when t1 finish
ledMiscSet.field.LED_FW_RETRIG = 0; //until done
ledMiscSet.field.LED_INV = setting->inverse; //inv
//ledMiscSet.field.LED_CLK_SW = 0; //32k
ledMiscSet.field.LED_CLK_SW = 1; //others 选择时钟沿
ledTimeStep.field.LED_T0 = setting->t0_cnt;
ledTimeStep.field.LED_T1 = setting->t1_cnt;
ledTimeStep.field.LED_T2 = setting->t2_cnt;
ledTimeStep.field.LED_T3 = setting->t3_cnt;
if(setting->pwm_en)
{
uint32_t onstep;
uint32_t offstep;
onstep = ((1 << unit_xn) * setting->t1_cnt * unit_val)/(16*64);
offstep = ((1 << unit_xn) * setting->t2_cnt * unit_val)/(16*64);
ledPwm.field.LED_PWM_ON = onstep > 256 ? 256 : onstep;
ledPwm.field.LED_PWM_OFF = offstep > 256 ? 256 : offstep;
}
if(led_idx == led0)
{
LED.MiscSet1.reg = ledMiscSet.reg;
LED.TimeStep1.reg = ledTimeStep.reg;
LED.PWMSetting1.reg = ledPwm.reg;
}
else
{
LED.MiscSet2.reg = ledMiscSet.reg;
LED.TimeStep2.reg = ledTimeStep.reg;
LED.PWMSetting2.reg = ledPwm.reg;
}
}
DRV_OdPinMux_SigSet((1 << 2), PIN_OD_LED0);//设置功能脚
AB_LED_set_blink(ab_led0, 4, 0, 0);//设置频率
注意频率范围!
- AB1601LED之pwm
- PIC单片机之PWM PWM原理
- mini2440裸机之PWM
- s3c2440之PWM
- OK6410之PWM使用
- S3C6410之PWM介绍
- STM32之PWM
- dsPIC33F之Standard PWM
- dsPIC33F之PWM interrupt
- dsPIC33F之Complementary PWM
- TQ2440定时器之PWM
- PIC单片机之PWM
- mini2440之--pwm程序
- PIC单片机之PWM
- 【BLE】CC2541之PWM
- stm32之PWM输出
- stm8程序设计之PWM
- S3C2440之PWM
- 201503-2
- pip下载速度慢
- 刚建spingboot项目访问时候出现的错误
- 201609-1
- 蛇形填数
- AB1601LED之pwm
- 过滤器解决JSP中英文编码
- java中的关键字一(this,super,static)
- JS截取字符串常用方法详细整理
- python-1
- 27 个机器学习、数学、Python 速查表
- ECharts饼图单位
- Oracle 后台进程
- mesos 编译(centos 6.6)