📄 main.lis
字号:
0238 ; }
0238 L45:
0238 .dbline 178
0238 ; // if(global_detect_trip[0]>2049)
0238 ; // {
0238 ; // if((global_detect_trip[1]-global_detect_trip[0]>1)&&(global_detect_trip[2]-global_detect_trip[1]>1))//&&(global_detect_trip[3]-global_detect_trip[0]>1))
0238 ; // {
0238 ; //检测到动作标志赋值
0238 ; // global_operation_detected_flag=1;
0238 ; // }
0238 ; // }
0238 ; // if(int16_temp1>2049)
0238 ; // {
0238 ; //检测到动作标志赋值
0238 ; // global_operation_detected_flag=1;
0238 ; // }
0238 ; global_ad_counter++;
0238 80912600 lds R24,_global_ad_counter
023C 90912700 lds R25,_global_ad_counter+1
0240 0196 adiw R24,1
0242 90932700 sts _global_ad_counter+1,R25
0246 80932600 sts _global_ad_counter,R24
024A .dbline 179
024A ; }
024A L27:
024A .dbline 181
024A ; //完成一次AD转换,将AD转换结束标志赋值
024A ; global_ad_finish_flag=0xFF;
024A 8FEF ldi R24,255
024C 90E0 ldi R25,0
024E 90930100 sts _global_ad_finish_flag+1,R25
0252 80930000 sts _global_ad_finish_flag,R24
0256 .dbline -2
0256 L19:
0256 0E940000 xcall pop_gset2
025A .dbline 0 ; func end
025A 0895 ret
025C .dbsym l i 1 i
025C .dbsym r temp2 22 i
025C .dbsym r temp1 22 i
025C .dbsym r int16_temp1 20 i
025C .dbsym r SIG_INTERRUPT7 16 I
025C .dbend
025C .dbfunc e main _main fI
025C ; i -> R16,R17
.even
025C _main::
025C .dbline -1
025C .dbline 188
025C ; //开中断
025C ; //sei();
025C ; }
025C ;
025C ; //主程序//////////////////////////////
025C ; int main()
025C ; {
025C .dbline 199
025C ; //变量定义
025C ; unsigned int i;
025C ; //初始化和串口波特率设置
025C ; //INITIATION();
025C ; //PG3供测试用/////////////
025C ; //sbi(DDRG,3);
025C ; //cbi(PORTG,3);
025C ; //开中断
025C ; //sei();
025C ; //自动测试标志初始化
025C ; global_sample_mode_flag=0xFF;
025C 8FEF ldi R24,255
025E 90E0 ldi R25,0
0260 90932300 sts _global_sample_mode_flag+1,R25
0264 80932200 sts _global_sample_mode_flag,R24
0268 .dbline 201
0268 ; //采集控制标志初始化
0268 ; global_start_sample_flag=0xFF;
0268 90932500 sts _global_start_sample_flag+1,R25
026C 80932400 sts _global_start_sample_flag,R24
0270 .dbline 203
0270 ; //串口接收控制变量初始化
0270 ; global_flag_serie=0;
0270 2224 clr R2
0272 3324 clr R3
0274 30922900 sts _global_flag_serie+1,R3
0278 20922800 sts _global_flag_serie,R2
027C .dbline 207
027C ; //开串口接收中断
027C ; //UART_RXCINT_OPEN();
027C ; //延时
027C ; for(i=0;i<0xFF;i++)
027C 0027 clr R16
027E 1127 clr R17
0280 08C0 xjmp L53
0282 X9:
0282 .dbline 208
0282 ; {
0282 L54:
0282 .dbline 211
0282 .dbline 211
0282 .dbline 211
0282 L55:
0282 .dbline 211
0282 26B6 in R2,0x36
0284 24FE sbrs R2,4
0286 FDCF rjmp L54
0288 .dbline 212
0288 86B7 in R24,0x36
028A 8061 ori R24,16
028C 86BF out 0x36,R24
028E .dbline 215
028E L51:
028E .dbline 207
028E 0F5F subi R16,255 ; offset = 1
0290 1F4F sbci R17,255
0292 L53:
0292 .dbline 207
0292 0F3F cpi R16,255
0294 E0E0 ldi R30,0
0296 1E07 cpc R17,R30
0298 A0F3 brlo L55
029A L57:
029A .dbline 218
029A .dbline 263
029A L58:
029A .dbline 217
029A ; //TIMER_BEGIN();
029A ; //等待定时器溢出,AD结束中断处理在等待过程中完成
029A ; while(!(TIFR&(1<<OCF1A))){;}
029A ; TIFR|=1<<OCF1A;
029A ; //终止定时器
029A ; //TIMER_STOP();
029A ; }
029A ; //数据采集流程
029A ; while(1)
029A FFCF xjmp L57
029C X10:
029C .dbline 265
029C L60:
029C .dbline 265
029C ; {
029C ; /*
029C ; //检测动作开始标志清零
029C ; for(i=0;i<4;i++){global_detect_close[i]=0;}
029C ; for(i=0;i<4;i++){global_detect_trip[i]=0;}
029C ; //如果自动测试
029C ; if(global_sample_mode_flag==0x00)
029C ; {
029C ; //关串口接收中断
029C ; UART_RXCINT_CLOSE();
029C ; //开外部中断7(AD转换结束中断)
029C ; EXTERN_INTERRUPT_OPEN(7);
029C ; //检测采样
029C ; OPERATION_DETECTION();
029C ; //如果检测到有信号变化,向COUNTER发送开始采集命令
029C ; // sbi(UCSR0B,TXB8);//将TXB8置1
029C ; UART_DATA_BYTE_SEND(0x10);//发送数据采集命令
029C ; //开始采样
029C ; SAMPLE();
029C ; //关外部中断7
029C ; EXTERN_INTERRUPT_CLOSE(7);
029C ; //开串口接收中断,等待数据包传输命令
029C ; UART_RXCINT_OPEN();
029C ; //向主机发送采集结束命令0x33
029C ; UART_DATA_BYTE_SEND(0x33);
029C ; //自动测试标志复原
029C ; global_sample_mode_flag=0xFF;
029C ; }
029C ; //如果接收到开始采集命令
029C ; if(global_start_sample_flag==0x00)
029C ; {
029C ; //关串口接收中断
029C ; UART_RXCINT_CLOSE();
029C ; //开外部中断7(AD转换结束中断)
029C ; EXTERN_INTERRUPT_OPEN(7);
029C ; //采样
029C ; SAMPLE();
029C ; //关外部中断7
029C ; EXTERN_INTERRUPT_CLOSE(7);
029C ; //开串口接收中断,等待数据包传输命令
029C ; UART_RXCINT_OPEN();
029C ; //开始采集标志复原
029C ; global_start_sample_flag=0xFF;
029C ; }
029C ; */
029C ; }
029C ;
029C ; for(;;){;}
029C .dbline 265
029C .dbline 265
029C .dbline 265
029C .dbline 265
029C FFCF xjmp L60
029E X11:
029E .dbline 266
029E ; return 0;
029E 0027 clr R16
02A0 1127 clr R17
02A2 .dbline -2
02A2 L49:
02A2 .dbline 0 ; func end
02A2 0895 ret
02A4 .dbsym r i 16 i
02A4 .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\AVR\AD\main.c
0000 _global_ad_finish_flag::
0000 .blkb 2
0002 .dbsym e global_ad_finish_flag _global_ad_finish_flag i
0002 _global_voltage_counter::
0002 .blkb 2
0004 .dbsym e global_voltage_counter _global_voltage_counter i
0004 _global_motor_counter::
0004 .blkb 2
0006 .dbsym e global_motor_counter _global_motor_counter i
0006 _global_trip_counter::
0006 .blkb 2
0008 .dbsym e global_trip_counter _global_trip_counter i
0008 _global_close_counter::
0008 .blkb 2
000A .dbsym e global_close_counter _global_close_counter i
000A _global_channel_flag::
000A .blkb 2
000C .dbsym e global_channel_flag _global_channel_flag i
000C _global_detect_trip::
000C .blkb 10
0016 .dbsym e global_detect_trip _global_detect_trip A[10:5]i
0016 _global_detect_close::
0016 .blkb 10
0020 .dbsym e global_detect_close _global_detect_close A[10:5]i
0020 _global_operation_detected_flag::
0020 .blkb 2
0022 .dbsym e global_operation_detected_flag _global_operation_detected_flag i
0022 _global_sample_mode_flag::
0022 .blkb 2
0024 .dbsym e global_sample_mode_flag _global_sample_mode_flag i
0024 _global_start_sample_flag::
0024 .blkb 2
0026 .dbsym e global_start_sample_flag _global_start_sample_flag i
0026 _global_ad_counter::
0026 .blkb 2
0028 .dbsym e global_ad_counter _global_ad_counter i
0028 _global_flag_serie::
0028 .blkb 2
002A .dbsym e global_flag_serie _global_flag_serie i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -