PCC(Pulse count control)编程之一:线性计数
2011-11-05 00:48
232 查看
(1)原理:PCC编程是一种一线控制的编程方式,使用一根传输线就可以完成命令或者数据的传输。以一个LED控制芯片SN3228为实例来说明它的使用。SN3228的原理图如下:
(2)参数:EN/SET脚接受外界的不同数据的脉冲,从而解析成不同的控制参数去控制LED的亮度。其中,亮度对照表如下:
(3)程序实例:因此,只需要一个GPIO模拟出不同数目的上升沿脉冲就可以实现不同亮度的控制,程序如下。
GPIO使能脚常态是高,每变换一次就发出一系列范围内的脉冲数。
(2)参数:EN/SET脚接受外界的不同数据的脉冲,从而解析成不同的控制参数去控制LED的亮度。其中,亮度对照表如下:
(3)程序实例:因此,只需要一个GPIO模拟出不同数目的上升沿脉冲就可以实现不同亮度的控制,程序如下。
static int brightness_set_gpio(int gpio_num, enum led_brightness level) { int i,n,count; mt_set_gpio_mode(gpio_num, GPIO_MODE_GPIO); mt_set_gpio_dir(gpio_num, GPIO_DIR_OUT); //设置GPIO输出工作模式 if(level) //非0亮度,<255 { mt_set_gpio_out(gpio_num, GPIO_OUT_ZERO); if(level<=34) count=15; else if(level<=51&&level>34) count=14; else if(level<=68&&level>51) count=13; else if(level<=85&&level>68) count=12; else if(level<=102&&level>85) count=11; else if(level<=119&&level>102) count=10; else if(level<=136&&level>119) count=9; else if(level<=153&&level>136) count=8; else if(level<=170&&level>153) count=7; else if(level<=187&&level>170) count=6; else if(level<=204&&level>187) count=5; else if(level<=221&&level>204) count=4; else if(level<=238&&level>221) count=3; else if(level<=255&&level>238) count=2; for(i=1;i<count;i++) { mt_set_gpio_out(gpio_num, GPIO_OUT_ZERO); udelay(1); mt_set_gpio_out(gpio_num, GPIO_OUT_ONE); udelay(1); } udelay(600); } else mt_set_gpio_out(gpio_num, GPIO_OUT_ZERO); //全灭 return 0; }
GPIO使能脚常态是高,每变换一次就发出一系列范围内的脉冲数。
相关文章推荐
- PCC(Pulse count control)编程之二:循环计数
- spark-streaming 编程(二) word count单词计数统计
- [BZOJ 1833][ZJOI 2010]count数字计数(数位DP)
- 【bzoj1833】 ZJOI2010—count 数字计数
- VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下)
- LeetCode Count Numbers with Unique Digits(计数问题)
- LeetCode OJ:Count Primes(质数计数)
- 09、高级编程之基于排序机制的wordcount程序
- BZOJ 1833 ZJOI2010 count 数字计数 数位DP
- 反射方法调用时:参数计数不匹配( parameter count mismatch )
- [BZOJ1833] [ZJOI2010]count 数字计数
- 并发编程--Semaphore计数信号量
- 1093. Count PAT's (25)【计数】——PAT (Advanced Level) Practise
- 22-LTE Policy and Charging Control (PCC)
- 美团2017校招(内推):计数:count(i)表示数组中第i 个元素后比其小的元素个数
- hadoop入门(六)JavaAPI+Mapreduce实例wordCount单词计数详解
- oracle count计数的优化
- HDU 5901 Count primes 2016年沈阳网络赛 (Lehmer素数计数)
- BZOJ1833: [ZJOI2010]count 数字计数
- LightOJ 1231 Coin Change (I) (线性dp 背包计数)