本帖最后由 lcmbeyond04 于 2013-11-16 20:10 编辑
程序就应该从简单到复杂,而不是一下子写出很复杂的来。
在led加上按键控制之后,一直在想到底还应该怎样往这个程序上面再添加,然后看到板上按键旁边有个滑动电阻(用来做adc实验的),之前也一直觉得LED亮度有点耀眼,于是就想着用滑动电阻来调节led亮度。
首先要知道的是,滑动电阻各个刻度对应的都是什么数值,然后就直接找来例子,初始化adc使用库函数版的例子(修改过),获取adc值的函数使用寄存器版的例子,结果程序一直死在那个等待adc转换结束那里。。重新检查一遍初始化,和获取adc函数,也没什么问题,然后以为板上的硬件可能虚焊了,重新补了点锡,万用表也测过。没问题了,然后程序还是死在那里。。后面get_adc1()的函数换回库函数版,,发现可以了。。再检查一遍发现,原来库函数里,启动转换的时候要同时启动外部触发事件,而寄存器里,外部触发在初始化里面已经设置好。。导致出现问题。 后来直接在初始化那里加入了启动外部触发事件( 程序中有注释 )。
adc没问题后,就要设计一个程序把adc各个刻度对应的2进制数读取出来,通过串口返回上位机查看,10个刻度的数值分别对应:
0x0000,0x012d,0x03dd,0x0612,0x07bc,0x09c9,0x0b8f,0x0d55,0x0f88,0x0fff(12位)
然后这10个刻度,分别对应led的10个亮度,取两数之间的值来划分出10个亮度。
然后就是处理一些程序上的设计,大概就这样完成了。
0