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

📄 board.lis

📁 chipcom公司CC1100无线模块底层驱动程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00EA 8991              ld R24,y+
 00EC 2990              ld R2,y+
 00EE                   .dbline 0 ; func end
 00EE 1895              reti
 00F0                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 78C0              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 00F0                   .dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\board.c
 00F0                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
                        .even
 00F0           _uart0_rx_isr::
 00F0 2A92              st -y,R2
 00F2 8A93              st -y,R24
 00F4 9A93              st -y,R25
 00F6 EA93              st -y,R30
 00F8 FA93              st -y,R31
 00FA 2FB6              in R2,0x3f
 00FC 2A92              st -y,R2
 00FE                   .dbline -1
 00FE                   .dbline 266
 00FE                   .dbline 267
 00FE 2224              clr R2
 0100 20920500          sts _RXOTCnt,R2
 0104                   .dbline 268
 0104 81E0              ldi R24,1
 0106 80930600          sts _RXOTFlg,R24
 010A                   .dbline 270
 010A 80E0              ldi R24,<_UartReceive_Buf
 010C 90E0              ldi R25,>_UartReceive_Buf
 010E E0910C00          lds R30,_RFSendCnt
 0112 FF27              clr R31
 0114 E80F              add R30,R24
 0116 F91F              adc R31,R25
 0118 2090C600          lds R2,198
 011C 2082              std z+0,R2
 011E                   .dbline 271
 011E 80910C00          lds R24,_RFSendCnt
 0122 8F5F              subi R24,255    ; addi 1
 0124 80930C00          sts _RFSendCnt,R24
 0128                   .dbline 272
 0128 8C33              cpi R24,60
 012A 81F4              brne L18
 012C                   .dbline 273
 012C                   .dbline 274
 012C 2224              clr R2
 012E 20920600          sts _RXOTFlg,R2
 0132                   .dbline 276
 0132 81E0              ldi R24,1
 0134 80930900          sts _RFSendFlg,R24
 0138                   .dbline 277
 0138 8091C100          lds R24,193
 013C 8F7E              andi R24,239
 013E 8093C100          sts 193,R24
 0142                   .dbline 278
 0142 8091C100          lds R24,193
 0146 8F77              andi R24,127
 0148 8093C100          sts 193,R24
 014C                   .dbline 279
 014C           L18:
 014C                   .dbline -2
 014C           L17:
 014C 2990              ld R2,y+
 014E 2FBE              out 0x3f,R2
 0150 F991              ld R31,y+
 0152 E991              ld R30,y+
 0154 9991              ld R25,y+
 0156 8991              ld R24,y+
 0158 2990              ld R2,y+
 015A                   .dbline 0 ; func end
 015A 1895              reti
 015C                   .dbend
 015C                   .dbfunc e timer0_init _timer0_init fV
                        .even
 015C           _timer0_init::
 015C                   .dbline -1
 015C                   .dbline 290
 015C           ; }
 015C           ; /*
 015C           ; ************************************************************
 015C           ; *Description:串口发送中断函数
 015C           ; *Arguments  :none
 015C           ; *Returns    :none
 015C           ; *Notes      :
 015C           ; ************************************************************
 015C           ; */
 015C           ; #pragma interrupt_handler uart0_tx_isr:iv_USART0_UDRE
 015C           ; void uart0_tx_isr (void)
 015C           ; {
 015C           ;       UDR0 = RFReceive_Buf[RFReceiveCnt];
 015C           ;       RFReceiveCnt++;
 015C           ;       if (RFReceiveCnt == RFReceiveLen)
 015C           ;       {
 015C           ;           DIS_TX_INT();  //串口数据发送完毕,关闭发送空中断
 015C           ;       }
 015C           ; }
 015C           ; /*
 015C           ; ************************************************************
 015C           ; *Description:串口接收中断函数
 015C           ; *Arguments  :none
 015C           ; *Returns    :none
 015C           ; *Notes      :利用超时处理来决定一包数据是否接收完成
 015C           ; ************************************************************
 015C           ; */
 015C           ; #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
 015C           ; void uart0_rx_isr (void)
 015C           ; {
 015C           ;       RXOTCnt = 0;
 015C           ;       RXOTFlg = TRUE;
 015C           ; 
 015C           ;       UartReceive_Buf[RFSendCnt] = UDR0;
 015C           ;       RFSendCnt++;
 015C           ;       if (RFSendCnt == MAX_DATA_NUM)         //1字节的包长 + 60字节数据(共61字节)最大60字节
 015C           ;       {
 015C           ;               RXOTFlg = FALSE;
 015C           ; 
 015C           ;               RFSendFlg = TRUE;        //接收完最大一包数据,准备射频发送
 015C           ;               DIS_RX();   //禁止串口接收
 015C           ;               DIS_RX_INT();            //禁止串口接收中断
 015C           ;       }
 015C           ; }
 015C           ; /*
 015C           ; ************************************************************
 015C           ; *Description:初始化软件定时器
 015C           ; *Arguments  :none
 015C           ; *Returns    :none
 015C           ; *Notes      :
 015C           ; ************************************************************
 015C           ; */
 015C           ; void timer0_init(void)
 015C           ; {
 015C                   .dbline 291
 015C           ;       TCCR0B |= (BIT(CS02) | BIT(CS00)); //1024分频,开始计数
 015C 85B5              in R24,0x25
 015E 8560              ori R24,5
 0160 85BD              out 0x25,R24
 0162                   .dbline 292
 0162           ;       TIMSK0 |= BIT(TOIE0);              //使能Timer0溢出中断
 0162 80916E00          lds R24,110
 0166 8160              ori R24,1
 0168 80936E00          sts 110,R24
 016C                   .dbline 293
 016C           ;       TCNT0 = Sys_Set[Baud_Set_Num].tcnt0_val;
 016C 20900100          lds R2,_Baud_Set_Num
 0170 88E0              ldi R24,8
 0172 829D              mul R24,R2
 0174 F001              movw R30,R0
 0176 80E0              ldi R24,<_Sys_Set
 0178 90E0              ldi R25,>_Sys_Set
 017A E80F              add R30,R24
 017C F91F              adc R31,R25
 017E E491              lpm R30,Z
 0180 E6BD              out 0x26,R30
 0182                   .dbline -2
 0182           L20:
 0182                   .dbline 0 ; func end
 0182 0895              ret
 0184                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 C2C0              rjmp _IntTimer0
                        .area text(rom, con, rel)
 0184                   .dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\board.c
 0184                   .dbfunc e IntTimer0 _IntTimer0 fV
                        .even
 0184           _IntTimer0::
 0184 0A92              st -y,R0
 0186 1A92              st -y,R1
 0188 2A92              st -y,R2
 018A 3A92              st -y,R3
 018C 8A93              st -y,R24
 018E 9A93              st -y,R25
 0190 EA93              st -y,R30
 0192 FA93              st -y,R31
 0194 0FB6              in R0,0x3f
 0196 0A92              st -y,R0
 0198                   .dbline -1
 0198                   .dbline 306
 0198           ; }
 0198           ; 
 0198           ; /*
 0198           ; ************************************************************
 0198           ; *Description:串口接收的超时处理中断时间函数
 0198           ; *Arguments  :none
 0198           ; *Returns    :none
 0198           ; *Notes      :超时10ms
 0198           ; ************************************************************
 0198           ; */
 0198           ; #pragma interrupt_handler IntTimer0:iv_TIMER0_OVF
 0198           ; void IntTimer0 (void)
 0198           ; {
 0198                   .dbline 307
 0198           ;     TCNT0   = Sys_Set[Baud_Set_Num].tcnt0_val;
 0198 20900100          lds R2,_Baud_Set_Num
 019C 88E0              ldi R24,8
 019E 829D              mul R24,R2
 01A0 F001              movw R30,R0
 01A2 80E0              ldi R24,<_Sys_Set
 01A4 90E0              ldi R25,>_Sys_Set
 01A6 E80F              add R30,R24
 01A8 F91F              adc R31,R25
 01AA E491              lpm R30,Z
 01AC E6BD              out 0x26,R30
 01AE                   .dbline 309
 01AE           ; 
 01AE           ;       if(Beep_Flag==TRUE)
 01AE 80910400          lds R24,_Beep_Flag
 01B2 8130              cpi R24,1
 01B4 C1F4              brne L22
 01B6                   .dbline 310
 01B6           ;       {
 01B6                   .dbline 311
 01B6           ;               if(Beep_Time++>50)
 01B6 20900200          lds R2,_Beep_Time
 01BA 30900300          lds R3,_Beep_Time+1
 01BE C101              movw R24,R2
 01C0 0196              adiw R24,1
 01C2 90930300          sts _Beep_Time+1,R25
 01C6 80930200          sts _Beep_Time,R24
 01CA 82E3              ldi R24,50
 01CC 90E0              ldi R25,0
 01CE 8215              cp R24,R2
 01D0 9305              cpc R25,R3
 01D2 48F4              brsh L24
 01D4                   .dbline 312
 01D4           ;               {
 01D4                   .dbline 313
 01D4           ;                       BEEP_OFF();
 01D4 5D98              cbi 0xb,5
 01D6                   .dbline 314
 01D6           ;                       Beep_Time=0;
 01D6 2224              clr R2
 01D8 3324              clr R3
 01DA 30920300          sts _Beep_Time+1,R3
 01DE 20920200          sts _Beep_Time,R2
 01E2                   .dbline 315
 01E2           ;                       Beep_Flag=FALSE;
 01E2 20920400          sts _Beep_Flag,R2
 01E6                   .dbline 316
 01E6           ;               }
 01E6           L24:
 01E6                   .dbline 317
 01E6           ;       }
 01E6           L22:
 01E6                   .dbline 319
 01E6           ; 
 01E6           ;       if (RXOTFlg == TRUE)
 01E6 80910600          lds R24,_RXOTFlg
 01EA 8130              cpi R24,1
 01EC B9F4              brne L26
 01EE                   .dbline 320
 01EE           ;       {
 01EE                   .dbline 321
 01EE           ;               RXOTCnt++;
 01EE 80910500          lds R24,_RXOTCnt
 01F2 8F5F              subi R24,255    ; addi 1
 01F4 80930500          sts _RXOTCnt,R24
 01F8                   .dbline 322
 01F8           ;               if (RXOTCnt == 2)
 01F8 8230              cpi R24,2
 01FA 81F4              brne L28
 01FC                   .dbline 323
 01FC           ;               {
 01FC                   .dbline 324
 01FC           ;                   RXOTFlg = FALSE;
 01FC 2224              clr R2
 01FE 20920600          sts _RXOTFlg,R2
 0202                   .dbline 325
 0202           ;                       RFSendFlg = TRUE;       //接收超时
 0202 81E0              ldi R24,1
 0204 80930900          sts _RFSendFlg,R24
 0208                   .dbline 326
 0208           ;                       DIS_RX();               //禁止串口接收
 0208 8091C100          lds R24,193
 020C 8F7E              andi R24,239
 020E 8093C100          sts 193,R24
 0212                   .dbline 327
 0212           ;                       DIS_RX_INT();           //禁止串口接收中断
 0212 8091C100          lds R24,193
 0216 8F77              andi R24,127
 0218 8093C100          sts 193,R24
 021C                   .dbline 328
 021C           ;               }
 021C           L28:
 021C                   .dbline 329
 021C           L26:
 021C                   .dbline -2
 021C           L21:
 021C 0990              ld R0,y+
 021E 0FBE              out 0x3f,R0
 0220 F991              ld R31,y+
 0222 E991              ld R30,y+
 0224 9991              ld R25,y+
 0226 8991              ld R24,y+
 0228 3990              ld R3,y+

⌨️ 快捷键说明

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