📄 bldcmmain.lis
字号:
0098 .dbline -1
0098 .dbline 90
0098 ; }
0098 ;
0098 ; void phase_one_five(void)
0098 ; {
0098 .dbline 91
0098 ; PORTB = PORTB&0xF5; //关下桥臂4,6
0098 85B1 in R24,0x5
009A 857F andi R24,245
009C 85B9 out 0x5,R24
009E .dbline 92
009E ; Shut_PWMC(); //关上桥臂 3
009E F5DF rcall _Shut_PWMC
00A0 .dbline 93
00A0 ; Start_PWMA_Close_PWMB(); //关上桥臂2,开上桥臂1
00A0 D7DF rcall _Start_PWMA_Close_PWMB
00A2 .dbline 94
00A2 ; PORTB = PORTB|0x04; //开下桥臂5
00A2 2A9A sbi 0x5,2
00A4 .dbline -2
00A4 L10:
00A4 .dbline 0 ; func end
00A4 0895 ret
00A6 .dbend
00A6 .dbfunc e phase_one_six _phase_one_six fV
.even
00A6 _phase_one_six::
00A6 .dbline -1
00A6 .dbline 98
00A6 ; }
00A6 ;
00A6 ; void phase_one_six(void)
00A6 ; {
00A6 .dbline 99
00A6 ; PORTB = PORTB&0xF9; //关下桥臂4,5
00A6 85B1 in R24,0x5
00A8 897F andi R24,249
00AA 85B9 out 0x5,R24
00AC .dbline 100
00AC ; Shut_PWMC(); //关上桥臂 3
00AC EEDF rcall _Shut_PWMC
00AE .dbline 101
00AE ; Start_PWMA_Close_PWMB(); //关上桥臂2,开上桥臂1
00AE D0DF rcall _Start_PWMA_Close_PWMB
00B0 .dbline 102
00B0 ; PORTB = PORTB|0x08; //开下桥臂6
00B0 2B9A sbi 0x5,3
00B2 .dbline -2
00B2 L11:
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbend
00B4 .dbfunc e phase_two_six _phase_two_six fV
.even
00B4 _phase_two_six::
00B4 .dbline -1
00B4 .dbline 106
00B4 ; }
00B4 ;
00B4 ; void phase_two_six(void)
00B4 ; {
00B4 .dbline 107
00B4 ; PORTB = PORTB&0xF9; //关下桥臂4,5
00B4 85B1 in R24,0x5
00B6 897F andi R24,249
00B8 85B9 out 0x5,R24
00BA .dbline 108
00BA ; Shut_PWMC(); //关上桥臂 3
00BA E7DF rcall _Shut_PWMC
00BC .dbline 109
00BC ; Start_PWMB_Close_PWMA(); //关上桥臂1,开上桥臂2
00BC D0DF rcall _Start_PWMB_Close_PWMA
00BE .dbline 110
00BE ; PORTB = PORTB|0x08; //开下桥臂6
00BE 2B9A sbi 0x5,3
00C0 .dbline -2
00C0 L12:
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbend
00C2 .dbfunc e phase_two_four _phase_two_four fV
.even
00C2 _phase_two_four::
00C2 .dbline -1
00C2 .dbline 114
00C2 ; }
00C2 ;
00C2 ; void phase_two_four(void)
00C2 ; {
00C2 .dbline 115
00C2 ; PORTB = PORTB&0xF3; //关下桥臂4,6
00C2 85B1 in R24,0x5
00C4 837F andi R24,243
00C6 85B9 out 0x5,R24
00C8 .dbline 116
00C8 ; Shut_PWMC(); //关上桥臂 3
00C8 E0DF rcall _Shut_PWMC
00CA .dbline 117
00CA ; Start_PWMB_Close_PWMA(); //关上桥臂1,开上桥臂2
00CA C9DF rcall _Start_PWMB_Close_PWMA
00CC .dbline 118
00CC ; PORTB = PORTB|0x02; //开下桥臂4
00CC 299A sbi 0x5,1
00CE .dbline -2
00CE L13:
00CE .dbline 0 ; func end
00CE 0895 ret
00D0 .dbend
00D0 .dbfunc e phase_three_four _phase_three_four fV
.even
00D0 _phase_three_four::
00D0 .dbline -1
00D0 .dbline 122
00D0 ; }
00D0 ;
00D0 ; void phase_three_four(void)
00D0 ; {
00D0 .dbline 123
00D0 ; PORTB = PORTB&0xF3; //关下桥臂6,5
00D0 85B1 in R24,0x5
00D2 837F andi R24,243
00D4 85B9 out 0x5,R24
00D6 .dbline 124
00D6 ; Shut_PWMAB(); //关上桥臂 1,2
00D6 CADF rcall _Shut_PWMAB
00D8 .dbline 125
00D8 ; Start_PWMC(); //开上桥臂PWMC
00D8 CEDF rcall _Start_PWMC
00DA .dbline 126
00DA ; PORTB = PORTB|0x02; //开下桥臂4
00DA 299A sbi 0x5,1
00DC .dbline -2
00DC L14:
00DC .dbline 0 ; func end
00DC 0895 ret
00DE .dbend
00DE .dbfunc e phase_three_five _phase_three_five fV
.even
00DE _phase_three_five::
00DE .dbline -1
00DE .dbline 130
00DE ; }
00DE ;
00DE ; void phase_three_five(void)
00DE ; {
00DE .dbline 131
00DE ; PORTB = PORTB&0xF5; //关下桥臂6,4
00DE 85B1 in R24,0x5
00E0 857F andi R24,245
00E2 85B9 out 0x5,R24
00E4 .dbline 132
00E4 ; Shut_PWMAB(); //关上桥臂 1,2
00E4 C3DF rcall _Shut_PWMAB
00E6 .dbline 133
00E6 ; Start_PWMC(); //开上桥臂PWMC
00E6 C7DF rcall _Start_PWMC
00E8 .dbline 134
00E8 ; PORTB = PORTB|0x04; //开下桥臂5
00E8 2A9A sbi 0x5,2
00EA .dbline -2
00EA L15:
00EA .dbline 0 ; func end
00EA 0895 ret
00EC .dbend
00EC .dbfunc e uart0_init _uart0_init fV
.even
00EC _uart0_init::
00EC .dbline -1
00EC .dbline 140
00EC ; }
00EC ;
00EC ;
00EC ;
00EC ; void uart0_init(void)
00EC ; {
00EC .dbline 141
00EC ; UCSR0B = 0x00; //disable while setting baud rate
00EC 2224 clr R2
00EE 2092C100 sts 193,R2
00F2 .dbline 142
00F2 ; UCSR0A = 0x00;
00F2 2092C000 sts 192,R2
00F6 .dbline 143
00F6 ; UCSR0C = 0x06; //8位数据传送
00F6 86E0 ldi R24,6
00F8 8093C200 sts 194,R24
00FC .dbline 144
00FC ; UBRR0L = 0x33; //set baud rate lo
00FC 83E3 ldi R24,51
00FE 8093C400 sts 196,R24
0102 .dbline 145
0102 ; UBRR0H = 0x00; //set baud rate hi
0102 2092C500 sts 197,R2
0106 .dbline 146
0106 ; UCSR0B = 0x18; //
0106 88E1 ldi R24,24
0108 8093C100 sts 193,R24
010C .dbline -2
010C L16:
010C .dbline 0 ; func end
010C 0895 ret
010E .dbend
010E .dbfunc e init_devices _init_devices fV
.even
010E _init_devices::
010E .dbline -1
010E .dbline 150
010E ; }
010E ;
010E ; void init_devices(void)
010E ; {
010E .dbline 152
010E ; //stop errant interrupts until set up
010E ; CLI(); //disable all interrupts
010E F894 cli
0110 .dbline 153
0110 ; port_init();
0110 77DF rcall _port_init
0112 .dbline 154
0112 ; timer0_init();
0112 81DF rcall _timer0_init
0114 .dbline 155
0114 ; timer2_init();
0114 88DF rcall _timer2_init
0116 .dbline 156
0116 ; uart0_init();
0116 EADF rcall _uart0_init
0118 .dbline 158
0118 ;
0118 ; MCUCR = 0x00;
0118 2224 clr R2
011A 25BE out 0x35,R2
011C .dbline 159
011C ; EICRA = 0x00; //extended ext ints
011C 20926900 sts 105,R2
0120 .dbline 160
0120 ; EIMSK = 0x00;
0120 2DBA out 0x1d,R2
0122 .dbline 162
0122 ;
0122 ; TIMSK0 = 0x00; //timer 0 interrupt sources
0122 20926E00 sts 110,R2
0126 .dbline 163
0126 ; TIMSK1 = 0x00; //timer 1 interrupt sources
0126 20926F00 sts 111,R2
012A .dbline 164
012A ; TIMSK2 = 0x00; //timer 2 interrupt sources
012A 20927000 sts 112,R2
012E .dbline 166
012E ;
012E ; PCMSK0 = 0x00; //pin change mask 0
012E 20926B00 sts 107,R2
0132 .dbline 167
0132 ; PCMSK1 = 0x00; //pin change mask 1
0132 20926C00 sts 108,R2
0136 .dbline 168
0136 ; PCMSK2 = 0x00; //pin change mask 2
0136 20926D00 sts 109,R2
013A .dbline 169
013A ; PCICR = 0x00; //pin change enable
013A 20926800 sts 104,R2
013E .dbline 170
013E ; PRR = 0x00; //power controller
013E 20926400 sts 100,R2
0142 .dbline 171
0142 ; SEI(); //re-enable interrupts
0142 7894 sei
0144 .dbline -2
0144 L17:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -