小弟初学AVR,尝试边学边把林夕依然ATmega16学习笔记移植到AtmelStudio上去(好吧,我电脑上没装ICCAVR),移到实验33时,出现了一个有些诡异的问题。
代码是这样的:
int main()
{
……
while(1)
{
if(AdcConCom==1)
{
//清ADC转换完成标志
AdcConCom = 0;
…………
}
}
输入1后,串口中断检查到1,就打开ADC中断,ADC中断把AdcConCom置1,然后main函数中的if(AdcConCom==1)里的语句就开始执行。
但问题是,前面中断都没有问题,偏偏到了if(AdcConCom==1)后就是死活不执行。试了很久,最后在if前面加个if(AdcConCom==1) USART_Transmit('\n');,好了,现在一切正常。
去掉,又是一个样。问题是这一句除了发送一个没有用处的字符外,没有任何作用呀!
分别用6.2与7.0试过,都是一个样。
请各位大侠帮忙看看是哪出了问题,多谢!
源码与DSN文件下载链结如下
pan.baidu.com/s/1jGGpJ8M
pan前面要加个http
密码:1ac6 |