⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 temp_caldelay.c

📁 一个单片机实现DA转换程序,程序实现了一个温度控制的数摸转换,并添加了去抖动处理!!
💻 C
字号:
/*************************  计算for (i=0; i<n; i++);的时间  ***************************/


//"for (i=0; i<n; i++);"在反汇编文件中翻译如下:
+00000039:   E080        LDI     R24,0x00         Load immediate+0000003A:   E090        LDI     R25,0x00         Load immediate22:         for (i=0; i<n; i++);+0000003B:   1780        CP      R24,R16          Compare+0000003C:   0791        CPC     R25,R17          Compare with carry+0000003D:   F410        BRCC    PC+0x03          Branch if carry cleared22:         for (i=0; i<n; i++);+0000003E:   9601        ADIW    R24,0x01         Add immediate to word+0000003F:   CFFB        RJMP    PC-0x0004        Relative jump


//每个指令的时钟周期
LDI     R24,0x00    //1LDI     R25,0x00    //1CP      R24,R16     //1CPC     R25,R17     //1BRCC    PC+0x03     //1ADIW    R24,0x01    //2RJMP    PC-0x0004   //2


//计算for (i=0; i<n; i++);的时间
time=(2+7*n+4)*时钟周期


//中断中需要的定时间隔2209.375us 5chips 4chips
(GP-8)+UpPTS+675us*3-12chip=75+125+675*3-20*0.78125=2209.375

2209.375  =           (2+7*2523+4)*0.125us + 2*0.125 + 4*0.125 + 2*0.125    //2209.375
0.78125*5 = 3.90625 = (2+7*3+4)*0.125us    + 2*0.125 + 0*0.125 + 2*0.125    //5 chips
0.78125*4 = 3.125   = (2+7*2+4)*0.125us    + 2*0.125 + 1*0.125 + 2*0.125    //4 chips

675us + 96*0.78125 + 3*0.78125 = 752.34375us =  20*0.125 + 2*0.125 + (2+7*855+4)*0.125us + 4*0.125 + 2*0.125 
                               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -