我的PSoC学习(二)(PSoC Creator 2.0+win7+CY8C38):一些PSoC学习手记

来源:互联网 发布:python 符号错误 编辑:程序博客网 时间:2024/06/05 19:03

1.通过第一个闪烁LED我们可以知道,LED可以用PWM直接制造闪烁,或者用main函数循环来制造闪烁,相比之下,前者更优。而闪烁的频率由PWM的时钟来决定,比如时钟是1kHz十分频即100Hz,然后PWM是计数满100循环一次的,也就是周期为1s,而可以设置占空比CMP value 1,此处的作用不明显,因为周期为1s,闪烁太慢,如果将频率提高,也就是循环一次的次数超过一定的量,则占空比就能改变亮度了。因此可以使用函数PWM_WriteCompare1()来实现。当周期改为4ms时,也就是时钟1kHz,因此当周期达到毫秒级别的时候PWM就开始起作用来调整亮度了。

2.做一个呼吸灯看看。注意PWM_WriteCompare1(cnt);必须和前面的器件的名字PWM一致!PWM_1_WriteCompare1(cnt);则对应PWM_1。呼吸灯在延迟15ms,周期为3.33ms,计数为100份的时候效果不错。

3.第二个例子让我们知道LCD强大的功能,用于查看运行时变量非常方便。同样电位器的使用以及ADC转化也包含在第二个例子里面。不过发现虽然是16位的函数ADC_DelSig_1_GetResult16(),然而每次返回的都是一个八位的结果,这开始以为是因为ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);//转换结果其实是8位的,那么如果要转化得到16位结果要如何操作呢?其实只要在图形界面里设置属性就行了,而ADC_DelSig_1_IsEndConversion返回的只是低八位而已,其他的数据它不返回。

4.第三个例子包含了DAC,UART,以及DMA,真是非常丰富。UART没什么内容,先看看DAC,由于DMA的使用根本看不清楚DAC,所以还是先独立DAC看看,通过DAC模拟电压量来控制LED亮度和PWM来控制LED亮度到底有什么区别呢?于是在第一个例子里面加入DAC模块,两个灯放一起比一比看看。事实证明DAC更漂亮,因为给出了范围0x3D 和0x9F,一个是刚好看不见(而不是不亮),一个是饱和,而且其实是因为正弦变化更好看。。。Orz,不过发现最大亮度0x9F并没有100%占空比的PWM亮,难道是因为电压的原因?FAQ里面说是跟随器的low power,但是我已经用了high power了(并不是strong power),结果就是这样。于是我尝试拨到5V(冒着烧板子危险。。。),结果发现PWM的灯更加亮了,而DAC的灯并没有变亮(或者只变亮了一点点?),于是我怀疑0x9F有问题。明明能转0xFF,为啥就弄0x9F啊,很有问题!果然不出我所料!0xFF的DAC亮度和100%的PWM亮度一模一样,不过后来的变化也不是非常明显了,不过由此可见上界绝对不止0x9F。接下来就是DMA了,DMA用起来很麻烦,就是为了直接从内存传到DAC不经过CPU,关键是这个函数CyDmaTdSetAddress将内存传到了DAC。值得一提的是最后那个Clock的使用,非常巧妙,首先正弦波一直在输出,但是由于DMA受Clock的控制,clock受电位器的控制,所以旋转电位器就能使得数据传送的速度改变了,也就使得正弦波的周期改变了,非常的厉害。

5.第四个例子太牛了没啥好说的,第五个例子使用了电容传感器,非常新鲜,偶然发现了元件的跨工程复制粘贴功能,果然图形界面很方便。然后灵敏度的问题FAQ里面说了把5变成3,的确是灵敏了一些,但是还有更好的配置吗?难道要一个一个去试?不过我就想不明白为啥demo里面不给出最灵敏的配置呢。。。

查了一些资料http://www.bubuko.com/infodetail-762337.html

capsense大致原理就是传感器获得外部电容值的大小然后减去内部基准得到一个差值,这个差值与设定的阈值比较,如果大于阈值就认为有手指按动,否则判断为没有按动,就这么简单。

内部基准起了个名字叫基线baseline。基线值的计算是在噪声阈值下计算的,举个例子,假如我设置的噪声阈值是10,而现在环境中有噪声,这些噪声造成了即使在没有点击按键的情况下传感器的读数也不是0,而是大于0小于10的值,假设是5,那么此时基线就会变成5,但是如果噪声阈值仍然是10,但是噪声较大,是20,那么此时基线值是不会改变的,依然是0,而此时就会判断为有按动按键。

迟滞其实就是当外部电容增大的时候减去基线的差值自然也是增大的,增大到设定的阈值的时候并不会立即认为有触摸,而是需要大于阈值加迟滞值。而当外部电容减小到阈值下的时候也不会立即认为没有触摸,而是需要小于阈值减去迟滞值,才会认为没有触摸。滞回比较器的原理啊。

1 0
原创粉丝点击