浪费了两天时间都没调通AVR的
AD转换(始终只能转换第一次,以后便不更新了),原来为了省事直接写成
usart_send1b(ADCH);
usart_send1b(ADCL);
希望将数据通过串口传上PC,结果犯了严重错误:
AVR Mega8 ,中文版 P195
.....读取ADCL 之后,ADC 数据寄存器一直要等到ADCH 也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于8 比特,那么仅需读取ADCH 就足够了。
否则(默认的右对齐方式)必须先读出ADCL 再读ADCH。..........
同样地,其他16位寄存器操作---------
写16 位寄存器时,应先写入该寄存器的 高 位字节。
读16 位寄存器时应先读取该寄存器的 低 位字节。