📄 spi.lst
字号:
A 195 ; 12 }
A 196 .line 12
00000F D6 0000 A 197 CALL __b_framereset
000012 AF A 198 RET
A 199 .endfunc "TransmitSPI",12,"_TransmitSPI"
A 200 SEGMENT ROM_DATA
A 201
A 202
A 203 ;**************************** _TransferSPI ***************************
A 204 ;Name Addr/Register Size Type
A 205 ;_TransmitSPI IMPORT ----- function
A 206 ;data R15+4 0 parameter
A 207
A 208
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:23 page: 5
PC Object I Line Source spi.src
A 209 ; Aggregate Stack Size: 0 (words)
A 210
A 211
A 212 SEGMENT spi_TEXT
A 213 ; 13
A 214 ; 14 unsigned char TransferSPI(unsigned char data)
A 215 ; 15 //simultaneously transfers data from master to slave and from slave to master (from host to
A 216 ; 16 {
000013 A 217 _TransferSPI:
A 218 .define "_TransferSPI"
A 219 .value _TransferSPI
A 220 .class 2
A 221 .type 76
A 222 .type 0
A 223 .endef
A 224 .begfunc "TransferSPI",16,"_TransferSPI"
A 225 .define "data"
A 226 .class 17
A 227 .reg -1
A 228 .type 12
A 229 .type 0
A 230 .endef
000013 D6 0000 A 231 CALL __b_frameset00
A 232 ; 17 SPIDATA = data;
A 233 .line 17
000016 880E04 A 234 LDX R0,4(RR14)
000019 940F60 A 235 LDX 3936,R0
A 236 ; 18 TransmitSPI();
A 237 .line 18
00001C D6 0000 A 238 CALL _TransmitSPI
A 239 ; 19 data = SPIDATA;
A 240 .line 19
00001F 840F60 A 241 LDX R0,3936
000022 89E004 A 242 LDX 4(RR14),R0
A 243 ; 20 return data;
A 244 .line 20
000025 880E04 A 245 LDX R0,4(RR14)
A 246 ; 21 }
A 247 .line 21
000028 D6 0000 A 248 CALL __b_framereset
00002B AF A 249 RET
A 250 .endfunc "TransferSPI",21,"_TransferSPI"
A 251 SEGMENT ROM_DATA
A 252
A 253
A 254 ;**************************** _InitSPI ***************************
A 255 ;Name Addr/Register Size Type
A 256
A 257
A 258 ; Aggregate Stack Size: 0 (words)
A 259
A 260
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:23 page: 6
PC Object I Line Source spi.src
A 261 SEGMENT spi_TEXT
A 262 ; 22
A 263 ; 23
A 264 ; 24
A 265 ; 25 void InitSPI(void)
A 266 ; 26 //initializes the SPI
A 267 ; 27 {
00002C A 268 _InitSPI:
A 269 .define "_InitSPI"
A 270 .value _InitSPI
A 271 .class 2
A 272 .type 65
A 273 .type 0
A 274 .endef
A 275 .begfunc "InitSPI",27,"_InitSPI"
00002C D6 0000 A 276 CALL __b_frameset00
A 277 ; 28 //SPI pins alternate function
A 278 ; 29 PCADDR = ALT_FUN;
A 279 .line 29
00002F E9020FD8 A 280 LDX 4056,#2
A 281 ; 30 PCCTL |= PIN_ALT;
A 282 .line 30
000033 493C0FD9 A 283 ORX 4057,#60
A 284 ; 31 PCADDR = 0x00;
A 285 .line 31
000037 E9000FD8 A 286 LDX 4056,#-0
A 287 ; 32
A 288 ; 33 //SPI settings
A 289 ; 34 SPICTL = (PHASE|CLKPOL|MASTER|SPI_ENABLE);
A 290 .line 34
00003B E9030F61 A 291 LDX 3937,#3
A 292 ; 35 SPIMODE = (NUMBIT8|SSIO|SS_HIGH);
A 293 .line 35
00003F E9030F63 A 294 LDX 3939,#3
A 295 ; 36
A 296 ; 37 //Baud Rate Generator
A 297 ; 38 SPIBRH = BAUD_H;
A 298 .line 38
000043 E9000F66 A 299 LDX 3942,#-0
A 300 ; 39 SPIBRL = BAUD_L;
A 301 .line 39
000047 E9050F67 A 302 LDX 3943,#5
A 303 ; 40 }
A 304 .line 40
00004B D6 0000 A 305 CALL __b_framereset
00004E AF A 306 RET
A 307 .endfunc "InitSPI",40,"_InitSPI"
A 308 SEGMENT ROM_DATA
A 309
A 310
A 311 ;**************************** _AssertSS ***************************
A 312 ;Name Addr/Register Size Type
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:23 page: 7
PC Object I Line Source spi.src
A 313
A 314
A 315 ; Aggregate Stack Size: 0 (words)
A 316
A 317
A 318 SEGMENT spi_TEXT
A 319 ; 41
A 320 ; 42
A 321 ; 43 void AssertSS()
A 322 ; 44 //selects the MMC (slave)
A 323 ; 45 //used at the start of an SPI transaction
A 324 ; 46 {
00004F A 325 _AssertSS:
A 326 .define "_AssertSS"
A 327 .value _AssertSS
A 328 .class 2
A 329 .type 65
A 330 .type 0
A 331 .endef
A 332 .begfunc "AssertSS",46,"_AssertSS"
00004F D6 0000 A 333 CALL __b_frameset00
A 334 ; 47 SPIMODE &= ~SS_HIGH; //SS' assert
A 335 .line 47
000052 59FE0F63 A 336 ANDX 3939,#254
A 337 ; 48 }
A 338 .line 48
000056 D6 0000 A 339 CALL __b_framereset
000059 AF A 340 RET
A 341 .endfunc "AssertSS",48,"_AssertSS"
A 342 SEGMENT ROM_DATA
A 343
A 344
A 345 ;**************************** _DeassertSS ***************************
A 346 ;Name Addr/Register Size Type
A 347
A 348
A 349 ; Aggregate Stack Size: 0 (words)
A 350
A 351
A 352 SEGMENT spi_TEXT
A 353 ; 49
A 354 ; 50
A 355 ; 51 void DeassertSS()
A 356 ; 52 //deselects the MMC(slave)
A 357 ; 53 //used at the end of an SPI transaction
A 358 ; 54 {
00005A A 359 _DeassertSS:
A 360 .define "_DeassertSS"
A 361 .value _DeassertSS
A 362 .class 2
A 363 .type 65
A 364 .type 0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:23 page: 8
PC Object I Line Source spi.src
A 365 .endef
A 366 .begfunc "DeassertSS",54,"_DeassertSS"
00005A D6 0000 A 367 CALL __b_frameset00
A 368 ; 55 SPIMODE |= SS_HIGH; //SS' deassert
A 369 .line 55
00005D 49010F63 A 370 ORX 3939,#1
A 371 .line 56
000061 D6 0000 A 372 CALL __b_framereset
000064 AF A 373 RET
A 374 .endfunc "DeassertSS",56,"_DeassertSS"
A 375 XREF __b_framereset:ROM
A 376 XREF __b_frameset00:ROM
A 377 XDEF _DeassertSS
A 378 XDEF _AssertSS
A 379 XDEF _InitSPI
A 380 XDEF _TransferSPI
A 381 XDEF _TransmitSPI
A 382 END
Errors: 0
Warnings: 0
Lines Assembled: 383
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -