1.光敏传感器的使用
因为LED和光敏传感器靠的比较近,LED自身的灯光亮度会影响光敏值。要屏蔽自身光影响,可以使用PWM中断功能,在低电平期间再检测光敏值。
从P点进入中断,处理光敏值,在高电平之前结束处理。
2.桥式电路
(1)说明
桥式电路是一种整流电路(rectifyingcircuit),由四只二极管口连接成“桥”式结构,作用是将交流变压电路输出的交流电转换成单向脉动性直流电。
全波整流:频率翻倍;比如市电120V,60HZ,全波整流后是120HZ;
半波整流:频率不变;比如市电120V,60HZ,全波整流后是60HZ;
(2)应用----过零检测
如果市电频率是60HZ,那周期就是1/60HZ=16.6ms。同步信息就按过零周期来计算:比如900个周期就是900*16.6ms约等于15s同步一次。具体可根据实际项目编写
3.快速掉电切换色温
0.1S快速开关,可以1ms采集1个AD值,采集8个后取1次AD平均值(这个过程共8ms)。然后采集8次平均值,所以完成时间是8*8=64ms。8次平均值都低于设定的AD值,就可以切换1次色温,并将模档位写进EEPROM。
4.关于单片机跑飞原因
(1)可能是数组地址溢出
(2)单片机在while()循环跑飞程序
(3)程序在关闭定时中断或者其他中断时没处理好
排查的方法是用IO口取反标记:比如串口发送函数,如果程序跑飞时,IO口一直为高电平就说明单片机这个while()循环死机,IO口为低电平就说明成功跳出while()循环;同样的方式可以用来排查一些子函数
void SendChar( unsigned char dat )
{
f_tx_byte_over=0;
UART0_TXD = dat;
PT31DO=1;
while(f_tx_byte_over==0);
PT31DO=0;
}
5.idata \xdata\code的理解
(1)说明
data:RAM低128字节,响应速度最快,采用直接寻址方式
idata:RAM高128字节,采用间接寻址方式,速度相对较慢
bdata:片内RAM,位寻址方式
xdata:外部扩展RAM,采用DPTR访问
pdata:外部扩展RAM低256字节,分页寻址(一页256byte)
code:程序存储区
(2)示例:
这颗芯片CODE有 16K字节,IRAM有256字节分为data(128字节)和idata(128字节),XRAM有768字节等
写程序要注意编译后的文件大小,超出内存程序不能运行;以下程序编译文件在内存范围之内
(3)用法
- 如果没有特殊写法,程序的全局变量一般保存在data里面
- uchar idata B_DELAY=0;就是保存在idata里面
- uchar xdata B_INIT_SHOW_DELAY=0;就是保存在xdata里面
6.倾倒开关的使用注意事项
检测IO口高低电平时要在main()函数里面的while(),检测比较灵敏;过滤杂波时间可以在其他定时函数里面。
7.关于keil识别不到jlink设备或者电脑连接不上jlink的注意点
(1)检查是否安装jlink驱动。在设备管理器查看jlink设备
(2)检查jlink的四根线 VDD CLK DIO GND是否跟板子的烧录口一一对应?
(3)检查板子是否供电:芯片是否有5V电压?
(4)接4根线时,keil设置为SW;因为带隔离设备,所以jlink的频率选低点。