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

📄 motorctr.lst

📁 一个直流电机的闭环控制源代码程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0142)         if ((UARTRxBuffHead == UARTRxBuffTail) 
(0143)          && (UARTRxBuffCounter == 0))
(0144)         {
(0145)             SEI();
(0146)             return FALSE;
(0147)         }
(0148)         (*Data) = UARTRxBuff[UARTRxBuffHead++];
(0149)     
(0150)         UARTRxBuffCounter--;
(0151)     
(0152)         if (UARTRxBuffHead == SERIAL_RX_BUFF_SIZE)
(0153)         {
(0154)             UARTRxBuffHead = 0;
(0155)         }
(0156)     )		
(0157)     return TRUE;
     14D E001      LDI	R16,1
     14E 9508      RET
(0158) }
(0159) 
(0160) /***********************************************************
(0161) *   函数说明:接收缓冲区首数据察看函数                     *
(0162) *   输入:    存储取出数据地址的指针                       *
(0163) *   输出:    取值是否成功                                 *
(0164) *   调用函数:无                                           *
(0165) ***********************************************************/
(0166) BOOL UARTPeekDataFromRxBuff(uint8 *pData)
(0167) {
(0168)     SAFE_CODE_PERFORMANCE
_UARTPeekDataFromRxBuff:
  pData                --> R16
     14F 94F8      BCLR	7
     150 9020 007D LDS	R2,n+3
     152 9030 007E LDS	R3,0x007E
     154 9040 007B LDS	R4,n+1
     156 9050 007C LDS	R5,n+2
     158 1442      CP	R4,R2
     159 0453      CPC	R5,R3
     15A F459      BNE	0x0166
     15B 9020 007F LDS	R2,0x007F
     15D 9030 0080 LDS	R3,0x0080
     15F 2022      TST	R2
     160 F429      BNE	0x0166
     161 2033      TST	R3
     162 F419      BNE	0x0166
     163 9478      BSET	7
     164 2700      CLR	R16
     165 C00D      RJMP	0x0173
     166 E385      LDI	R24,0x35
     167 E091      LDI	R25,1
     168 91E0 007B LDS	R30,n+1
     16A 91F0 007C LDS	R31,n+2
     16C 0FE8      ADD	R30,R24
     16D 1FF9      ADC	R31,R25
     16E 8020      LDD	R2,Z+0
     16F 01F8      MOVW	R30,R16
     170 8220      STD	Z+0,R2
     171 9478      BSET	7
(0169)     (
(0170)         if ((UARTRxBuffHead == UARTRxBuffTail) 
(0171)          && (UARTRxBuffCounter == 0))
(0172)         {
(0173)             SEI();
(0174)             return FALSE;
(0175)         }
(0176)         (*pData) = UARTRxBuff[UARTRxBuffHead];
(0177)     )		
(0178)     return TRUE;
     172 E001      LDI	R16,1
     173 9508      RET
(0179) }
(0180) 
(0181) /***********************************************************
(0182) *  函数说明:向通讯输入缓冲区添加数据函数                  *
(0183) *  输入:    收到的数据                                    *
(0184) *  输出:    无                                            *
(0185) *  调用函数:无                                            *
(0186) ***********************************************************/
(0187) BOOL UARTaddDataToRxBuff(uint8  Data)
(0188) {
(0189)     SAFE_CODE_PERFORMANCE
_UARTaddDataToRxBuff:
  Data                 --> R16
     174 94F8      BCLR	7
     175 9020 007D LDS	R2,n+3
     177 9030 007E LDS	R3,0x007E
     179 9040 007B LDS	R4,n+1
     17B 9050 007C LDS	R5,n+2
     17D 1442      CP	R4,R2
     17E 0453      CPC	R5,R3
     17F F459      BNE	0x018B
     180 9180 007F LDS	R24,0x007F
     182 9190 0080 LDS	R25,0x0080
     184 3880      CPI	R24,0x80
     185 E0E0      LDI	R30,0
     186 079E      CPC	R25,R30
     187 F419      BNE	0x018B
     188 9478      BSET	7
     189 2700      CLR	R16
     18A C029      RJMP	0x01B4
     18B 9020 007D LDS	R2,n+3
     18D 9030 007E LDS	R3,0x007E
     18F 01C1      MOVW	R24,R2
     190 9601      ADIW	R24,1
     191 9390 007E STS	0x007E,R25
     193 9380 007D STS	n+3,R24
     195 E385      LDI	R24,0x35
     196 E091      LDI	R25,1
     197 01F1      MOVW	R30,R2
     198 0FE8      ADD	R30,R24
     199 1FF9      ADC	R31,R25
     19A 8300      STD	Z+0,R16
     19B 9180 007F LDS	R24,0x007F
     19D 9190 0080 LDS	R25,0x0080
     19F 9601      ADIW	R24,1
     1A0 9390 0080 STS	0x0080,R25
     1A2 9380 007F STS	0x007F,R24
     1A4 9180 007D LDS	R24,n+3
     1A6 9190 007E LDS	R25,0x007E
     1A8 3880      CPI	R24,0x80
     1A9 E0E0      LDI	R30,0
     1AA 079E      CPC	R25,R30
     1AB F431      BNE	0x01B2
     1AC 2422      CLR	R2
     1AD 2433      CLR	R3
     1AE 9230 007E STS	0x007E,R3
     1B0 9220 007D STS	n+3,R2
     1B2 9478      BSET	7
(0190)     (
(0191)         if ((UARTRxBuffHead == UARTRxBuffTail) 
(0192)          && (UARTRxBuffCounter == SERIAL_RX_BUFF_SIZE))
(0193)         {
(0194)             SEI();
(0195)             return FALSE;
(0196)         }
(0197)         UARTRxBuff[UARTRxBuffTail++] = Data;
(0198)     
(0199)         UARTRxBuffCounter++;
(0200)     
(0201)         if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
(0202)         {
(0203)             UARTRxBuffTail = 0;
(0204)         }
(0205) 	)	
(0206)     return TRUE;
     1B3 E001      LDI	R16,1
     1B4 9508      RET
(0207) }
(0208) #endif
(0209) 
(0210) #ifdef _USE_SERIAL_TX_BUFF
(0211) /***********************************************************
(0212) *  函数说明:发送中断取值函数                              *
(0213) *  输入:    存储取出数据地址的指针                        *
(0214) *  输出:    取值是否成功                                  *
(0215) *  调用函数:无                                            *
(0216) ***********************************************************/
(0217) BOOL UARTgetDataFromTxBuff(uint8 *Data)
(0218) {
(0219) 
(0220)     SAFE_CODE_PERFORMANCE
_UARTgetDataFromTxBuff:
  Data                 --> R16
     1B5 94F8      BCLR	7
     1B6 9020 0083 LDS	R2,0x0083
     1B8 9030 0084 LDS	R3,0x0084
     1BA 9040 0081 LDS	R4,0x0081
     1BC 9050 0082 LDS	R5,0x0082
     1BE 1442      CP	R4,R2
     1BF 0453      CPC	R5,R3
     1C0 F459      BNE	0x01CC
     1C1 9020 0085 LDS	R2,0x0085
     1C3 9030 0086 LDS	R3,0x0086
     1C5 2022      TST	R2
     1C6 F429      BNE	0x01CC
     1C7 2033      TST	R3
     1C8 F419      BNE	0x01CC
     1C9 9478      BSET	7
     1CA 2700      CLR	R16
     1CB C02B      RJMP	0x01F7
     1CC 9020 0081 LDS	R2,0x0081
     1CE 9030 0082 LDS	R3,0x0082
     1D0 01C1      MOVW	R24,R2
     1D1 9601      ADIW	R24,1
     1D2 9390 0082 STS	0x0082,R25
     1D4 9380 0081 STS	0x0081,R24
     1D6 EB85      LDI	R24,0xB5
     1D7 E090      LDI	R25,0
     1D8 01F1      MOVW	R30,R2
     1D9 0FE8      ADD	R30,R24
     1DA 1FF9      ADC	R31,R25
     1DB 8020      LDD	R2,Z+0
     1DC 01F8      MOVW	R30,R16
     1DD 8220      STD	Z+0,R2
     1DE 9180 0085 LDS	R24,0x0085
     1E0 9190 0086 LDS	R25,0x0086
     1E2 9701      SBIW	R24,1
     1E3 9390 0086 STS	0x0086,R25
     1E5 9380 0085 STS	0x0085,R24
     1E7 9180 0081 LDS	R24,0x0081
     1E9 9190 0082 LDS	R25,0x0082
     1EB 3880      CPI	R24,0x80
     1EC E0E0      LDI	R30,0
     1ED 079E      CPC	R25,R30
     1EE F431      BNE	0x01F5
     1EF 2422      CLR	R2
     1F0 2433      CLR	R3
     1F1 9230 0082 STS	0x0082,R3
     1F3 9220 0081 STS	0x0081,R2
     1F5 9478      BSET	7
(0221)     (
(0222)         if ((UARTTxBuffHead == UARTTxBuffTail) 
(0223)          && (UARTTxBuffCounter == 0))
(0224)         {
(0225)             SEI();
(0226)             return FALSE;
(0227)         }
(0228)         (*Data) = UARTTxBuff[UARTTxBuffHead++];
(0229)     
(0230)         UARTTxBuffCounter--;
(0231)     
(0232)         if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
(0233)         {
(0234)             UARTTxBuffHead = 0;
(0235)         }
(0236)     )		
(0237)     return TRUE;
     1F6 E001      LDI	R16,1
     1F7 9508      RET
(0238) }
(0239) 
(0240) /***********************************************************
(0241) *   函数说明:首数据察看函数                               *
(0242) *   输入:    存储数据地址的指针                           *
(0243) *   输出:    取值是否成功                                 *
(0244) *   调用函数:五                                           *
(0245) ***********************************************************/
(0246) BOOL UARTPeekDataFromTxBuff(uint8 *pData)
(0247) {
(0248)     SAFE_CODE_PERFORMANCE
_UARTPeekDataFromTxBuff:
  pData                --> R16
     1F8 94F8      BCLR	7
     1F9 9020 0083 LDS	R2,0x0083
     1FB 9030 0084 LDS	R3,0x0084
     1FD 9040 0081 LDS	R4,0x0081
     1FF 9050 0082 LDS	R5,0x0082
     201 1442      CP	R4,R2
     202 0453      CPC	R5,R3
     203 F459      BNE	0x020F
     204 9020 0085 LDS	R2,0x0085
     206 9030 0086 LDS	R3,0x0086
     208 2022      TST	R2
     209 F429      BNE	0x020F
     20A 2033      TST	R3
     20B F419      BNE	0x020F
     20C 9478      BSET	7
     20D 2700      CLR	R16
     20E C00D      RJMP	0x021C
     20F EB85      LDI	R24,0xB5
     210 E090      LDI	R25,0
     211 91E0 0081 LDS	R30,0x0081
     213 91F0 0082 LDS	R31,0x0082
     215 0FE8      ADD	R30,R24
     216 1FF9      ADC	R31,R25
     217 8020      LDD	R2,Z+0
     218 01F8      MOVW	R30,R16
     219 8220      STD	Z+0,R2
     21A 9478      BSET	7
(0249)     (
(0250)         if ((UARTTxBuffHead == UARTTxBuffTail) 
(0251)          && (UARTTxBuffCounter == 0))
(0252)         {
(0253)             SEI();
(0254)             return FALSE;
(0255)         }
(0256)         (*pData) = UARTTxBuff[UARTTxBuffHead];
(0257)     )		
(0258)     return TRUE;
     21B E001      LDI	R16,1
     21C 9508      RET
(0259) }
(0260) 
(0261) /***********************************************************
(0262) *  函数说明:向通讯输出缓冲区添加数据函数                  *
(0263) *  输入:    需要发送的数据                                *
(0264) *  输出:    无                                            *
(0265) *  调用函数:无                                            *
(0266) ***********************************************************/
(0267) BOOL UARTaddDataToTxBuff(uint8 Data)
(0268) {
(0269)     
(0270)     SAFE_CODE_PERFORMANCE
_UARTaddDataToTxBuff:
  Data                 --> R16
     21D 94F8      BCLR	7
     21E 9020 0083 LDS	R2,0x0083
     220 9030 0084 LDS	R3,0x0084
     222 9040 0081 LDS	R4,0x0081
     224 9050 0082 LDS	R5,0x0082
     226 1442      CP	R4,R2
     227 0453      CPC	R5,R3
     228 F459      BNE	0x0234
     229 9180 0085 LDS	R24,0x0085
     22B 9190 0086 LDS	R25,0x0086
     22D 3880      CPI	R24,0x80
     22E E0E0      LDI	R30,0
     22F 079E      CPC	R25,R30
     230 F419      BNE	0x0234
     231 9478      BSET	7
     232 2700      CLR	R16
     233 C029      RJMP	0x025D
     234 9020 0083 LDS	R2,0x0083
     236 9030 0084 LDS	R3,0x0084
     238 01C1      MOVW	R24,R2
     239 9601      ADIW	R24,1
     23A 9390 0084 STS	0x0084,R25
     23C 9380 0083 STS	0x0083,R24
     23E EB85      LDI	R24,0xB5
     23F E090      LDI	R25,0
     240 01F1      MOVW	R30,R2
     241 0FE8      ADD	R30,R24
     242 1FF9      ADC	R31,R25
     243 8300      STD	Z+0,R16
     244 9180 0085 LDS	R24,0x0085
     246 9190 0086 LDS	R25,0x0086
     248 9601      ADIW	R24,1
     249 9390 0086 STS	0x0086,R25
     24B 9380 0085 STS	0x0085,R24
     24D 9180 0083 LDS	R24,0x0083
     24F 9190 0084 LDS	R25,0x0084
     251 3880      CPI	R24,0x80
     252 E0E0      LDI	R30,0
     253 079E      CPC	R25,R30
     254 F431      BNE	0x025B
     255 2422      CLR	R2
     256 2433      CLR	R3
     257 9230 0084 STS	0x0084,R3
     259 9220 0083 STS	0x0083,R2
     25B 9478      BSET	7
(0271)     (
(0272)         if ((UARTTxBuffHead == UARTTxBuffTail) 

⌨️ 快捷键说明

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