准备写一个循环采样显示电压的程序,先写了AD转换,打算尝试通过软件触发转换,单步调试时发现进入adc_init()(controlsuit里面自带的程序)后会进入ILLEGAL_ISR。进一步调试发现是在延时程序里面触发ILLEGAL_ISR了,麻烦帮我看看为什么??
Joey Mao:
你好,
DSP访问flash时需要等待时间的,而访问RAM时几乎是零等待,所以在使用DELAY_US(A)时要想延时时间准确必须使其在RAM里运行,否则延时会超过你所设定的延时时间,可以参考下面这个帖子:
http://blog.sina.com.cn/s/blog_762cf5f80101asmq.html
准备写一个循环采样显示电压的程序,先写了AD转换,打算尝试通过软件触发转换,单步调试时发现进入adc_init()(controlsuit里面自带的程序)后会进入ILLEGAL_ISR。进一步调试发现是在延时程序里面触发ILLEGAL_ISR了,麻烦帮我看看为什么??
Eric Ma:
lin
我觉得你当定位到DELAY_US的时候,再单步进去,看哪里出现问题。
我建议查看
1)是否有将DELAY_US的相关定义和函数添加在工程中。
2)如果程序是运行在FLASH的,要对FLASH初始化,在调用Initlfash之前,要调用memcopy函数。
参照例程C:\ti\controlSUITE\device_support\f2802x\v220\f2802x_examples_structs\flash_f2802xX
Eric