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

📄 main.s

📁 我写的atmega16驱动的nrf24l01程序
💻 S
📖 第 1 页 / 共 4 页
字号:
	sts _PtComTx+1,R25
	sts _PtComTx,R24
	.dbline 55
	movw R30,R24
	ld R2,Z+
	sts _PtComTx+1,R31
	sts _PtComTx,R30
	out 0xc,R2
	xjmp L173
L172:
	.dbline 56
	wdr
L173:
	.dbline 56
	clr R2
	lds R3,_ComTxCount
	cp R2,R3
	brlo L172
	.dbline 57
L168:
	.dbline 59
	lds R24,_nrfTxBuf+1
	andi R24,32
	cpi R24,32
	brne L175
	.dbline 60
	.dbline 62
	ldi R24,4
	sts _Led2FlashTimes,R24
	.dbline 63
L175:
	.dbline 65
	lds R24,_nrfTxBuf+1
	andi R24,16
	cpi R24,16
	brne L178
	.dbline 66
	.dbline 67
	ldi R24,2
	sts _Led2FlashTimes,R24
	.dbline 68
L178:
	.dbline 70
	lds R24,_nrfTxBuf+1
	andi R24,1
	cpi R24,1
	brne L181
	.dbline 71
	.dbline 72
	ldi R24,1
	sts _Led2FlashTimes,R24
	.dbline 73
L181:
	.dbline 76
	ldi R24,39
	sts _nrfTxBuf,R24
	.dbline 77
	ldi R24,112
	sts _nrfTxBuf+1,R24
	.dbline 78
	ldi R24,2
	std y+0,R24
	ldi R18,<_nrfTxBuf
	ldi R19,>_nrfTxBuf
	ldi R16,<_nrfTxBuf
	ldi R17,>_nrfTxBuf
	xcall _SPI_SendData
	.dbline 81
	clr R2
	sts _bBusy,R2
	.dbline -2
	.dbline 82
L163:
	adiw R28,1
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e ComDeal _ComDeal fV
;              i -> R20
	.even
_ComDeal::
	xcall push_gset1
	sbiw R28,1
	.dbline -1
	.dbline 86
	.dbline 88
	ldi R24,85
	sts _bBusy,R24
	.dbline 89
	clr R20
	xjmp L189
L186:
	.dbline 90
	.dbline 91
	ldi R24,<_ComRxBuf
	ldi R25,>_ComRxBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_nrfTxDataBuf
	ldi R25,>_nrfTxDataBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 92
L187:
	.dbline 89
	inc R20
L189:
	.dbline 89
	lds R2,_ComRxCount
	cp R20,R2
	brlo L186
	.dbline 93
	clr R2
	sts _ComRxCount,R2
	.dbline 94
	sts _bCom2Spi,R2
	.dbline 96
	lds R24,_nrfTxDataBuf
	cpi R24,32
	brsh L190
	.dbline 97
	.dbline 98
	cpi R20,1
	brne L192
	.dbline 99
	.dbline 100
	cpi R24,10
	breq L197
	cpi R24,11
	breq L197
	cpi R24,16
	brne L194
L197:
	.dbline 101
	ldi R20,6
	xjmp L195
L194:
	.dbline 102
	ldi R20,2
L195:
	.dbline 103
	std y+0,R20
	ldi R18,<_ComTxBuf
	ldi R19,>_ComTxBuf
	ldi R16,<_nrfTxDataBuf
	ldi R17,>_nrfTxDataBuf
	xcall _SPI_SendData
	.dbline 104
	mov R24,R20
	subi R24,1
	sts _ComTxCount,R24
	.dbline 105
	ldi R24,<_ComTxBuf+1
	ldi R25,>_ComTxBuf+1
	sts _PtComTx+1,R25
	sts _PtComTx,R24
	.dbline 106
	lds R2,_nrfTxDataBuf
	out 0xc,R2
	xjmp L200
L199:
	.dbline 107
	wdr
L200:
	.dbline 107
	clr R2
	lds R3,_ComTxCount
	cp R2,R3
	brlo L199
	.dbline 108
	xjmp L191
L192:
	.dbline 110
	.dbline 111
	clr R2
	sts _bBusy,R2
	.dbline 112
	xjmp L185
X0:
	.dbline 114
L190:
	.dbline 115
	lds R24,_nrfTxDataBuf
	cpi R24,64
	brlo X1
	xjmp L202
X1:
	.dbline 116
	.dbline 117
	cpi R24,42
	brne L204
	cpi R20,6
	brne L204
	.dbline 118
	.dbline 119
	lds R18,_nrfTxDataBuf+1
	ldi R16,<_II2C_RxPipe0Addr
	ldi R17,>_II2C_RxPipe0Addr
	xcall _EEPROMwrite
	.dbline 119
	wdr
	.dbline 120
	lds R18,_nrfTxDataBuf+2
	ldi R16,<_II2C_RxPipe0Addr
	ldi R17,>_II2C_RxPipe0Addr
	subi R16,255  ; offset = 1
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 120
	wdr
	.dbline 121
	lds R18,_nrfTxDataBuf+3
	ldi R16,<_II2C_RxPipe0Addr
	ldi R17,>_II2C_RxPipe0Addr
	subi R16,254  ; offset = 2
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 121
	wdr
	.dbline 122
	lds R18,_nrfTxDataBuf+4
	ldi R16,<_II2C_RxPipe0Addr
	ldi R17,>_II2C_RxPipe0Addr
	subi R16,253  ; offset = 3
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 122
	wdr
	.dbline 123
	lds R18,_nrfTxDataBuf+5
	ldi R16,<_II2C_RxPipe0Addr
	ldi R17,>_II2C_RxPipe0Addr
	subi R16,252  ; offset = 4
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 123
	wdr
	.dbline 124
	ldi R20,6
	.dbline 125
	xjmp L205
L204:
	.dbline 126
	lds R24,_nrfTxDataBuf
	cpi R24,43
	brne L211
	cpi R20,6
	brne L211
	.dbline 127
	.dbline 128
	lds R18,_nrfTxDataBuf+1
	ldi R16,<_II2C_RxPipe1Addr
	ldi R17,>_II2C_RxPipe1Addr
	xcall _EEPROMwrite
	.dbline 128
	wdr
	.dbline 129
	lds R18,_nrfTxDataBuf+2
	ldi R16,<_II2C_RxPipe1Addr
	ldi R17,>_II2C_RxPipe1Addr
	subi R16,255  ; offset = 1
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 129
	wdr
	.dbline 130
	lds R18,_nrfTxDataBuf+3
	ldi R16,<_II2C_RxPipe1Addr
	ldi R17,>_II2C_RxPipe1Addr
	subi R16,254  ; offset = 2
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 130
	wdr
	.dbline 131
	lds R18,_nrfTxDataBuf+4
	ldi R16,<_II2C_RxPipe1Addr
	ldi R17,>_II2C_RxPipe1Addr
	subi R16,253  ; offset = 3
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 131
	wdr
	.dbline 132
	lds R18,_nrfTxDataBuf+5
	ldi R16,<_II2C_RxPipe1Addr
	ldi R17,>_II2C_RxPipe1Addr
	subi R16,252  ; offset = 4
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 132
	wdr
	.dbline 133
	ldi R20,6
	.dbline 134
	xjmp L212
L211:
	.dbline 135
	lds R24,_nrfTxBuf
	cpi R24,48
	brne L218
	cpi R20,6
	brne L218
	.dbline 136
	.dbline 137
	lds R18,_nrfTxDataBuf+1
	ldi R16,<_II2C_TxPipeAddr
	ldi R17,>_II2C_TxPipeAddr
	xcall _EEPROMwrite
	.dbline 137
	wdr
	.dbline 138
	lds R18,_nrfTxDataBuf+2
	ldi R16,<_II2C_TxPipeAddr
	ldi R17,>_II2C_TxPipeAddr
	subi R16,255  ; offset = 1
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 138
	wdr
	.dbline 139
	lds R18,_nrfTxDataBuf+3
	ldi R16,<_II2C_TxPipeAddr
	ldi R17,>_II2C_TxPipeAddr
	subi R16,254  ; offset = 2
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 139
	wdr
	.dbline 140
	lds R18,_nrfTxDataBuf+4
	ldi R16,<_II2C_TxPipeAddr
	ldi R17,>_II2C_TxPipeAddr
	subi R16,253  ; offset = 3
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 140
	wdr
	.dbline 141
	lds R18,_nrfTxDataBuf+5
	ldi R16,<_II2C_TxPipeAddr
	ldi R17,>_II2C_TxPipeAddr
	subi R16,252  ; offset = 4
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 141
	wdr
	.dbline 142
	ldi R20,6
	.dbline 143
	xjmp L219
L218:
	.dbline 144
	cpi R20,2
	brne L225
	.dbline 145
	.dbline 146
	lds R18,_nrfTxDataBuf+1
	lds R2,_nrfTxBuf
	clr R3
	ldi R16,<_II2C_UserConfig
	ldi R17,>_II2C_UserConfig
	add R16,R2
	adc R17,R3
	subi R16,32
	sbci R17,0
	xcall _EEPROMwrite
	.dbline 146
	wdr
	.dbline 147
	xjmp L226
L225:
	.dbline 149
	.dbline 150
	clr R2
	sts _bBusy,R2
	.dbline 151
	xjmp L185
L226:
L219:
L212:
L205:
	.dbline 153
	std y+0,R20
	ldi R18,<_ComTxBuf
	ldi R19,>_ComTxBuf
	ldi R16,<_nrfTxDataBuf
	ldi R17,>_nrfTxDataBuf
	xcall _SPI_SendData
	.dbline 154
	mov R24,R20
	subi R24,1
	sts _ComTxCount,R24
	.dbline 155
	ldi R24,<_ComTxBuf+1
	ldi R25,>_ComTxBuf+1
	sts _PtComTx+1,R25
	sts _PtComTx,R24
	.dbline 156
	lds R2,_nrfTxDataBuf
	out 0xc,R2
	xjmp L230
L229:
	.dbline 157
	wdr
L230:
	.dbline 157
	clr R2
	lds R3,_ComTxCount
	cp R2,R3
	brlo L229
	.dbline 158
	xjmp L203
L202:
	.dbline 159
	lds R24,_nrfTxDataBuf
	cpi R24,97
	brne L232
	ldi R20,1
	ldi R24,1
	tst R24
	breq L232
	.dbline 160
	.dbline 161
	ldi R24,33
	std y+0,R24
	ldi R18,<_nrfRxBuf
	ldi R19,>_nrfRxBuf
	ldi R16,<_nrfTxDataBuf
	ldi R17,>_nrfTxDataBuf
	xcall _SPI_SendData
	.dbline 163
	ldi R24,31
	sts _ComTxCount,R24
	.dbline 164
	ldi R24,<_nrfRxBuf
	ldi R25,>_nrfRxBuf
	sts _PtComTx+1,R25
	sts _PtComTx,R24
	.dbline 165
	movw R30,R24
	ld R2,Z+
	sts _PtComTx+1,R31
	sts _PtComTx,R30
	out 0xc,R2
	xjmp L235
L234:
	.dbline 166
	wdr
L235:
	.dbline 166
	clr R2
	lds R3,_ComTxCount
	cp R2,R3
	brlo L234
	.dbline 167
	xjmp L233
L232:
	.dbline 168
	lds R24,_nrfTxDataBuf
	cpi R24,160
	brne L237
	ldi R24,1
	cp R24,R20
	brsh L237
	.dbline 169
	.dbline 171
	mov R16,R20
	xcall _nRF_SendData
	.dbline 172
	xjmp L238
L237:
	.dbline 173
	cpi R20,1
	brne L239
	lds R24,_nrfTxDataBuf
	cpi R24,225
	breq L242
	cpi R24,226
	breq L242
	cpi R24,227
	brne L239
L242:
	.dbline 177
	.dbline 178
	ldi R24,1
	std y+0,R24
	ldi R18,<_ComTxBuf
	ldi R19,>_ComTxBuf
	ldi R16,<_nrfTxDataBuf
	ldi R17,>_nrfTxDataBuf
	xcall _SPI_SendData
	.dbline 179
	clr R2
	sts _ComTxCount,R2
	.dbline 180
	lds R2,_nrfTxDataBuf
	out 0xc,R2
	xjmp L244
L243:
	.dbline 181
	wdr
L244:
	.dbline 181
	clr R2
	lds R3,_ComTxCount
	cp R2,R3
	brlo L243
	.dbline 182
L239:
L238:
L233:
L203:
L191:
	.dbline 184
	clr R2
	sts _bBusy,R2
	.dbline -2
	.dbline 185
L185:
	adiw R28,1
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfile D:\mywork\无绳电话\NRF2401\nRF24L01_atmega16\nrf24l01\main.c
	.dbfunc e main _main fV
;              i -> <dead>
	.even
_main::
	.dbline -1
	.dbline 16
	.dbline 18
	xcall _init_devices
	.dbline 20
	xcall _SPI_MasterInit
	.dbline 23
	clr R2
	sts _bSignal2Hz,R2
	.dbline 24
	sts _bTest,R2
	.dbline 25
	sts _ComRxCount,R2
	.dbline 26
	cbi 0x18,3
	.dbline 27
	xcall _nrf24l01_init
	xjmp L248
L247:
	.dbline 29
	.dbline 31
	lds R24,_bKeyGetted
	cpi R24,85
	brne L250
	.dbline 32
	.dbline 33
	lds R20,_KeyValue
	clr R21
	cpi R20,5
	ldi R30,0
	cpc R21,R30
	breq L256
	cpi R20,6
	ldi R30,0
	cpc R21,R30
	breq L257
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	breq L258
	cpi R20,8
	ldi R30,0
	cpc R21,R30
	breq L259
	cpi R20,13
	ldi R30,0
	cpc R21,R30
	breq L260
	cpi R20,14
	ldi R30,0
	cpc R21,R30
	breq L255
	xjmp L253
X2:
	.dbline 34
L255:
	.dbline 35
	xcall _nrf24l01_init
	.dbline 35
	.dbline 35
	xjmp L253
L256:
	.dbline 36
	xcall _ReadRegisters
	.dbline 36
	xjmp L253
L257:
	.dbline 37
	xcall _SendTest
	.dbline 37
	xjmp L253
L258:
	.dbline 38
	xcall _SetRxMode
	.dbline 38
	xjmp L253
L259:
	.dbline 39
	xcall _SetTxMode
	.dbline 39
	xjmp L253
L260:
	.dbline 40
	xcall _ReadNextRegister
	.dbline 40
	.dbline 42
L253:
	.dbline 46
	clr R2
	sts _bKeyGetted,R2
	.dbline 47
L250:
	.dbline 48
	lds R24,_bTime2ms
	cpi R24,85
	brne L261
	.dbline 49
	.dbline 50
	xcall _FlashLed
	.dbline 52
	lds R24,_bComRxing
	cpi R24,85
	brne L263
	.dbline 53
	.dbline 54
	lds R24,_ComRxingTimeLimited
	lds R25,_ComRxingTimeLimited+1
	adiw R24,1
	sts _ComRxingTimeLimited+1,R25
	sts _ComRxingTimeLimited,R24
	.dbline 55
	cpi R24,50
	ldi R30,0
	cpc R25,R30
	brlo L265
	.dbline 56
	.dbline 57
	clr R2
	sts _bComRxing,R2
	.dbline 58
	ldi R24,85
	sts _bCom2Spi,R24
	.dbline 59
L265:
	.dbline 61
L263:
	.dbline 63
	clr R2
	sts _bTime2ms,R2
	.dbline 64
L261:
	.dbline 67
	lds R24,_bCom2Spi
	cpi R24,85
	brne L267
	lds R2,_bSpiTxing
	tst R2
	brne L267
	.dbline 68
	.dbline 69
	xcall _ComDeal
	.dbline 70
L267:
	.dbline 72
	lds R24,_bEx0Interrupt
	cpi R24,85
	brne L269
	.dbline 73
	.dbline 74
	clr R2
	sts _bEx0Interrupt,R2
	.dbline 75
	xcall _Ex0Deal
	.dbline 76
L269:
	.dbline 77
	wdr
	.dbline 78
L248:
	.dbline 28
	xjmp L247
X3:
	.dbline -2
	.dbline 79
L246:
	.dbline 0 ; func end
	ret
	.dbsym l i 1 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\mywork\无绳电话\NRF2401\nRF24L01_atmega16\nrf24l01\main.c
_Led2FlashTimes::
	.blkb 1
	.dbfile D:\mywork\无绳电话\NRF2401\nRF24L01_atmega16\nrf24l01/WDCT_02.h
	.dbsym e Led2FlashTimes _Led2FlashTimes c
_Led1FlashTimes::
	.blkb 1
	.dbsym e Led1FlashTimes _Led1FlashTimes c
_Timer300msCount::
	.blkb 2
	.dbsym e Timer300msCount _Timer300msCount i
_Timer1sCount::
	.blkb 2
	.dbsym e Timer1sCount _Timer1sCount i
_bTest::
	.blkb 1
	.dbsym e bTest _bTest c
_bSignal2Hz::
	.blkb 1
	.dbsym e bSignal2Hz _bSignal2Hz c
_bTime2ms::
	.blkb 1
	.dbsym e bTime2ms _bTime2ms c
_RegisterNum::
	.blkb 1
	.dbsym e RegisterNum _RegisterNum c
_bEx0Interrupt::
	.blkb 1
	.dbsym e bEx0Interrupt _bEx0Interrupt c
_bComTxing::
	.blkb 1
	.dbsym e bComTxing _bComTxing c
_bComRxing::
	.blkb 1
	.dbsym e bComRxing _bComRxing c
_bSpiTxing::
	.blkb 1
	.dbsym e bSpiTxing _bSpiTxing c
_bCom2Spi::
	.blkb 1
	.dbsym e bCom2Spi _bCom2Spi c
_bBusy::
	.blkb 1
	.dbsym e bBusy _bBusy c
_bKeyGetted::
	.blkb 1
	.dbsym e bKeyGetted _bKeyGetted c
_bKeyPress::
	.blkb 1
	.dbsym e bKeyPress _bKeyPress c
_KeyValue::
	.blkb 1
	.dbsym e KeyValue _KeyValue c
_KeyDelayCou::
	.blkb 1
	.dbsym e KeyDelayCou _KeyDelayCou c
_KeyBeforeCodeTemp::
	.blkb 1
	.dbsym e KeyBeforeCodeTemp _KeyBeforeCodeTemp c
_PtComTx::
	.blkb 2
	.dbsym e PtComTx _PtComTx pc
_ComRxingTimeLimited::
	.blkb 2
	.dbsym e ComRxingTimeLimited _ComRxingTimeLimited i
_ComRxCount::
	.blkb 1
	.dbsym e ComRxCount _ComRxCount c
_ComTxCount::
	.blkb 1
	.dbsym e ComTxCount _ComTxCount c
_ComRxBuf::
	.blkb 100
	.dbsym e ComRxBuf _ComRxBuf A[100:100]c
_ComTxBuf::
	.blkb 100
	.dbsym e ComTxBuf _ComTxBuf A[100:100]c
_udaRxBuf::
	.blkb 100
	.dbsym e udaRxBuf _udaRxBuf A[100:100]c
_udaTxBuf::
	.blkb 100
	.dbsym e udaTxBuf _udaTxBuf A[100:100]c
_nrfRxBuf::
	.blkb 100
	.dbsym e nrfRxBuf _nrfRxBuf A[100:100]c
_nrfTxDataBuf::
	.blkb 100
	.dbsym e nrfTxDataBuf _nrfTxDataBuf A[100:100]c
_nrfTxBuf::
	.blkb 6
	.dbsym e nrfTxBuf _nrfTxBuf A[6:6]c

⌨️ 快捷键说明

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