1. 单片机输出方波,观测到方波有抖动,C程序很简单,求分析
看到了你的程序和插图。
你是打算让T0在36个机器周期(大概是36us)中断一次,输出反相的波形。
但是,中断,并不是严格按照机器周期的个数来发生的。
当主程序执行的时候,是一条一条的汇编语言指令,有些的指令是两个机器周期的。
如果在执行“两个机器周期的指令”期间,中间发生了定时器溢出,中断并不会立即发生。
要等到“两个机器周期的指令”执行完了,才会去执行中断程序。
根据主程序当时的不同指令,中断申请到中断程序的进入,往往有3~8个机器周期。
这个数据,是有资料可以证明的。
当执行对中断系统操作的指令时,耽误的时间最长。
楼主看到的现象,其实是很正常的。
2. tds是什么文件
1、 .tds文件是应用程序调试期间所生成的文件,可以安全的删除。
2、“::”是范围分解符。意思好像是调用当前类外的Sleep函数
tds 文件,是保存调试信息的。当一个Project打开时,tds 文件就不能删除了。在IDE中
能够调试的程序,关闭Project后,删除tds文件,再次打开Project,运行程序(保证没有
再次link),就会发现程序不能再被调试了(因为那个保存调试信息的tds文件删除了)。
::是命名空间
比如Graphics::Bitmap是调用Graphics的Bitmap
当某个函数有多个实现时,如果你想调用API中的那个函数你就需要加个前面为空的::再写函数名,这时就会调用API