?? jfp_fasong.s
字號:
movw R22,R16
.dbline -1
.dbline 128
; }
; //--------------------------------NRF905待發數據打包----------------------------
; void TxPacket(uchar TxBUF[4])
; {
.dbline 130
; uchar i;
; Low_nrf905_CSN; // 使能Spi,允許對nrf905進行讀寫操作
cbi 0x18,4
.dbline 131
; Delay(1);
ldi R16,1
ldi R17,0
xcall _Delay
.dbline 132
; SpiReadSpiWrite(WTP); // 寫數據前先寫寫數據命令
ldi R16,32
xcall _SpiReadSpiWrite
.dbline 133
; for (i=0;i<4;i++)
clr R20
xjmp L24
L21:
.dbline 134
.dbline 135
mov R30,R20
clr R31
add R30,R22
adc R31,R23
ldd R16,z+0
xcall _SpiReadSpiWrite
.dbline 136
L22:
.dbline 133
inc R20
L24:
.dbline 133
cpi R20,4
brlo L21
.dbline 137
; {
; SpiReadSpiWrite(TxBUF[i]); // 待發送的32字節數據
; }
; Hign_nrf905_CSN;
sbi 0x18,4
.dbline 138
; Delay(1); // 關閉Spi,不允許對nrf905進行讀寫操作
ldi R16,1
ldi R17,0
xcall _Delay
.dbline 139
; Low_nrf905_CSN; // 使能Spi
cbi 0x18,4
.dbline 140
; SpiReadSpiWrite(WTA); // 寫地址前首先先寫地址命令
ldi R16,34
xcall _SpiReadSpiWrite
.dbline 141
; for (i=0;i<4;i++) // 寫 4 bytes 地址
clr R20
xjmp L28
L25:
.dbline 142
.dbline 143
ldi R24,<_TxAddress
ldi R25,>_TxAddress
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _SpiReadSpiWrite
.dbline 144
L26:
.dbline 141
inc R20
L28:
.dbline 141
cpi R20,4
brlo L25
.dbline 145
; {
; SpiReadSpiWrite(TxAddress[i]);
; }
; Hign_nrf905_CSN; // 關閉Spi
sbi 0x18,4
.dbline 146
; Hign_nrf905_TRX_CE; // Set TRX_CE high,start Tx data transmission
sbi 0x12,5
.dbline 147
; Delay(1); // 等待DR變高
ldi R16,1
ldi R17,0
xcall _Delay
.dbline 148
; Low_nrf905_TRX_CE; // 設置TRX_CE=0
cbi 0x12,5
.dbline -2
L20:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r TxBUF 22 pc
.dbend
.dbfunc e SetTxMode _SetTxMode fV
.even
_SetTxMode::
.dbline -1
.dbline 152
; }
; //-------------------------------發送模式激發-----------------------------------
; void SetTxMode(void)
; {
.dbline 153
; Low_nrf905_TRX_CE; //
cbi 0x12,5
.dbline 154
; Hign_nrf905_TX_EN; //發送使能
sbi 0x18,0
.dbline 155
; Delay(2); // delay for mode change(>=650us)根據晶振不同要改變
ldi R16,2
ldi R17,0
xcall _Delay
.dbline -2
L29:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; temp -> y+0
; j -> <dead>
; i -> <dead>
.even
_main::
sbiw R28,63
sbiw R28,1 ; offset = 64
.dbline -1
.dbline 159
; }
; //------------------------------主函數------------------------------------------
; void main(void)
; {
.dbline 161
; uint i,j,temp[32];
; DDRD=0x32; //
ldi R24,50
out 0x11,R24
.dbline 162
; DDRB=0xB3; //
ldi R24,179
out 0x17,R24
.dbline 163
; DDRA=0x8f; //
ldi R24,143
out 0x1a,R24
.dbline 164
; PORTA = 0xff;
ldi R24,255
out 0x1b,R24
.dbline 165
; Spi_initial();
xcall _Spi_initial
.dbline 166
; system_Init();
xcall _system_Init
.dbline 167
; Config905();
xcall _Config905
.dbline 168
; Delay(500);
ldi R16,500
ldi R17,1
xcall _Delay
xjmp L32
L31:
.dbline 170
; while(1)
; {
.dbline 174
; //TX();
;
; //------------------------------------------------------------------------------
; if((PINA & 0x10) == 0x00) //有鍵按下
sbic 0x19,4
rjmp L34
.dbline 175
; {
L36:
.dbline 176
L37:
.dbline 176
; while(!(PINA & 0x10)); //等待按鍵松開 RED
sbis 0x19,4
rjmp L36
.dbline 177
; TxRxBuf[0]=0x31;
ldi R24,49
sts _TxRxBuf,R24
.dbline 178
; TxRxBuf[1]=0x31;
sts _TxRxBuf+1,R24
.dbline 179
; TxRxBuf[2]=0x29;
ldi R24,41
sts _TxRxBuf+2,R24
.dbline 180
; TxRxBuf[3]=0x30;
ldi R24,48
sts _TxRxBuf+3,R24
.dbline 183
;
; //------------------------------------------------------------------------------
; SetTxMode();
xcall _SetTxMode
.dbline 184
; TxPacket(TxRxBuf);
ldi R16,<_TxRxBuf
ldi R17,>_TxRxBuf
xcall _TxPacket
.dbline 185
; }
L34:
.dbline 187
; //------------------------------------------------------------------------------
; if((PINA & 0x20) == 0x00) //有鍵按下
sbic 0x19,5
rjmp L42
.dbline 188
; {
L44:
.dbline 189
L45:
.dbline 189
; while(!(PINA & 0x20)); //等待按鍵松開GREEN
sbis 0x19,5
rjmp L44
.dbline 190
; TxRxBuf[0]=0x30;
ldi R24,48
sts _TxRxBuf,R24
.dbline 191
; TxRxBuf[1]=0x31;
ldi R24,49
sts _TxRxBuf+1,R24
.dbline 192
; TxRxBuf[2]=0x32;
ldi R24,50
sts _TxRxBuf+2,R24
.dbline 193
; TxRxBuf[3]=0x29;
ldi R24,41
sts _TxRxBuf+3,R24
.dbline 195
; //------------------------------------------------------------------------------
; SetTxMode(); // 設置進入發送狀態
xcall _SetTxMode
.dbline 196
; TxPacket(TxRxBuf); // 裝載待發送數據
ldi R16,<_TxRxBuf
ldi R17,>_TxRxBuf
xcall _TxPacket
.dbline 197
; }
L42:
.dbline 199
; //------------------------------------------------------------------------------
; if((PINA & 0x40) == 0x00) //有鍵按下
sbic 0x19,6
rjmp L50
.dbline 200
; {
L52:
.dbline 201
L53:
.dbline 201
; while(!(PINA & 0x40)); //等待按鍵松開GREEN
sbis 0x19,6
rjmp L52
.dbline 202
; TxRxBuf[0]=0x29;
ldi R24,41
sts _TxRxBuf,R24
.dbline 203
; TxRxBuf[1]=0x30;
ldi R24,48
sts _TxRxBuf+1,R24
.dbline 204
; TxRxBuf[2]=0x31;
ldi R24,49
sts _TxRxBuf+2,R24
.dbline 205
; TxRxBuf[3]=0x32;
ldi R24,50
sts _TxRxBuf+3,R24
.dbline 207
; //------------------------------------------------------------------------------
; SetTxMode(); // 設置進入發送狀態
xcall _SetTxMode
.dbline 208
; TxPacket(TxRxBuf); // 裝載待發送數據
ldi R16,<_TxRxBuf
ldi R17,>_TxRxBuf
xcall _TxPacket
.dbline 209
; }
L50:
.dbline 210
L32:
.dbline 169
xjmp L31
X1:
.dbline -2
L30:
adiw R28,63
adiw R28,1 ; offset = 64
.dbline 0 ; func end
ret
.dbsym l temp 0 A[64:32]i
.dbsym l j 1 i
.dbsym l i 1 i
.dbend
.area bss(ram, con, rel)
.dbfile F:\開發板配套資料\JASK3000軟件開發包\遙控開關\NRF905_發送\jfp_fasong.c
_TxRxBuf::
.blkb 4
.dbsym e TxRxBuf _TxRxBuf A[4:4]c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -