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

📄 bldcmmain.lis

📁 三相无刷电机的PWM控制
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -