Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

   1                            .file   "spi.c"
   2                    __SREG__ = 0x3f
   3                    __SP_H__ = 0x3e
   4                    __SP_L__ = 0x3d
   5                    __tmp_reg__ = 0
   6                    __zero_reg__ = 1
   7                            .global __do_copy_data
   8                            .global __do_clear_bss
   9                            .text
  10                    .global SPI_MasterInit
  12                    SPI_MasterInit:
  13                    /* prologue: frame size=0 */
  14                    /* prologue end (size=0) */
  15 0000 84B1                  in r24,36-0x20
  16 0002 806A                  ori r24,lo8(-96)
  17 0004 84B9                  out 36-0x20,r24
  18 0006 3D9A                  sbi 39-0x20,5
  19 0008 82E5                  ldi r24,lo8(82)
  20 000a 8CBD                  out 76-0x20,r24
  21 000c 1DBC                  out 77-0x20,__zero_reg__
  22 000e 459A                  sbi 40-0x20,5
  23 0010 81E0                  ldi r24,lo8(1)
  24 0012 8093 0000             sts SPITransferCompleted,r24
  25 0016 8AEA                  ldi r24,lo8(-86)
  26 0018 8093 0000             sts ToNaviCtrl,r24
  27 001c 83E8                  ldi r24,lo8(-125)
  28 001e 8093 0000             sts ToNaviCtrl+1,r24
  29 0022 8AE0                  ldi r24,lo8(10)
  30 0024 8093 0000             sts ToNaviCtrl+2,r24
  31 0028 1092 0000             sts (ToNaviCtrl+3)+1,__zero_reg__
  32 002c 1092 0000             sts ToNaviCtrl+3,__zero_reg__
  33 0030 1092 0000             sts (ToNaviCtrl+5)+1,__zero_reg__
  34 0034 1092 0000             sts ToNaviCtrl+5,__zero_reg__
  35 0038 1092 0000             sts SPI_RxDataValid,__zero_reg__
  36 003c 1092 0000             sts SPI_VersionInfo,__zero_reg__
  37 0040 88E4                  ldi r24,lo8(72)
  38 0042 8093 0000             sts SPI_VersionInfo+1,r24
  39 0046 8FE0                  ldi r24,lo8(15)
  40 0048 8093 0000             sts SPI_VersionInfo+2,r24
  41 004c 85E0                  ldi r24,lo8(5)
  42 004e 8093 0000             sts SPI_VersionInfo+3,r24
  43                    /* epilogue: frame size=0 */
  44 0052 0895                  ret
  45                    /* epilogue end (size=1) */
  46                    /* function SPI_MasterInit size 42 (41) */
  48                    .global UpdateSPI_Buffer
  50                    UpdateSPI_Buffer:
  51                    /* prologue: frame size=0 */
  52 0054 EF92                  push r14
  53 0056 FF92                  push r15
  54 0058 0F93                  push r16
  55 005a 1F93                  push r17
  56                    /* prologue end (size=4) */
  57                    /* #APP */
  58 005c F894                  cli
  59                    /* #NOAPP */
  60 005e E090 0000             lds r14,EE_Parameter+20
  61 0062 FF24                  clr r15
  62 0064 EE0C                  lsl r14
  63 0066 FF1C                  rol r15
  64 0068 EE0C                  lsl r14
  65 006a FF1C                  rol r15
  66 006c 0027                  clr r16
  67 006e F7FC                  sbrc r15,7
  68 0070 0095                  com r16
  69 0072 102F                  mov r17,r16
  70 0074 6091 0000             lds r22,IntegralNick
  71 0078 7091 0000             lds r23,(IntegralNick)+1
  72 007c 8091 0000             lds r24,(IntegralNick)+2
  73 0080 9091 0000             lds r25,(IntegralNick)+3
  74 0084 A801                  movw r20,r16
  75 0086 9701                  movw r18,r14
  76 0088 0E94 0000             call __divmodsi4
  77 008c 3093 0000             sts (ToNaviCtrl+3)+1,r19
  78 0090 2093 0000             sts ToNaviCtrl+3,r18
  79 0094 6091 0000             lds r22,IntegralRoll
  80 0098 7091 0000             lds r23,(IntegralRoll)+1
  81 009c 8091 0000             lds r24,(IntegralRoll)+2
  82 00a0 9091 0000             lds r25,(IntegralRoll)+3
  83 00a4 A801                  movw r20,r16
  84 00a6 9701                  movw r18,r14
  85 00a8 0E94 0000             call __divmodsi4
  86 00ac 3093 0000             sts (ToNaviCtrl+5)+1,r19
  87 00b0 2093 0000             sts ToNaviCtrl+5,r18
  88 00b4 6091 0000             lds r22,ErsatzKompass
  89 00b8 7091 0000             lds r23,(ErsatzKompass)+1
  90 00bc 8091 0000             lds r24,(ErsatzKompass)+2
  91 00c0 9091 0000             lds r25,(ErsatzKompass)+3
  92 00c4 2AE0                  ldi r18,lo8(10)
  93 00c6 30E0                  ldi r19,hi8(10)
  94 00c8 40E0                  ldi r20,hlo8(10)
  95 00ca 50E0                  ldi r21,hhi8(10)
  96 00cc 0E94 0000             call __mulsi3
  97 00d0 2091 0000             lds r18,GIER_GRAD_FAKTOR
  98 00d4 3091 0000             lds r19,(GIER_GRAD_FAKTOR)+1
  99 00d8 4091 0000             lds r20,(GIER_GRAD_FAKTOR)+2
 100 00dc 5091 0000             lds r21,(GIER_GRAD_FAKTOR)+3
 101 00e0 0E94 0000             call __divmodsi4
 102 00e4 3093 0000             sts (ToNaviCtrl+11)+1,r19
 103 00e8 2093 0000             sts ToNaviCtrl+11,r18
 104 00ec E091 0000             lds r30,NaviCntAcc
 105 00f0 F091 0000             lds r31,(NaviCntAcc)+1
 106 00f4 8091 0000             lds r24,NaviAccNick
 107 00f8 9091 0000             lds r25,(NaviAccNick)+1
 108 00fc BF01                  movw r22,r30
 109 00fe 0E94 0000             call __divmodhi4
 110 0102 CB01                  movw r24,r22
 111 0104 880F                  lsl r24
 112 0106 991F                  rol r25
 113 0108 860F                  add r24,r22
 114 010a 971F                  adc r25,r23
 115 010c 9C01                  movw r18,r24
 116 010e 220F                  lsl r18
 117 0110 331F                  rol r19
 118 0112 96FD                  sbrc r25,6
 119 0114 00C0                  rjmp .L39
 120                    .L4:
 121 0116 3595                  asr r19
 122 0118 2795                  ror r18
 123 011a 3595                  asr r19
 124 011c 2795                  ror r18
 125 011e 3093 0000             sts (ToNaviCtrl+7)+1,r19
 126 0122 2093 0000             sts ToNaviCtrl+7,r18
 127 0126 8091 0000             lds r24,NaviAccRoll
 128 012a 9091 0000             lds r25,(NaviAccRoll)+1
 129 012e BF01                  movw r22,r30
 130 0130 0E94 0000             call __divmodhi4
 131 0134 CB01                  movw r24,r22
 132 0136 880F                  lsl r24
 133 0138 991F                  rol r25
 134 013a 860F                  add r24,r22
 135 013c 971F                  adc r25,r23
 136 013e 9C01                  movw r18,r24
 137 0140 220F                  lsl r18
 138 0142 331F                  rol r19
 139 0144 96FD                  sbrc r25,6
 140 0146 00C0                  rjmp .L40
 141                    .L5:
 142 0148 3595                  asr r19
 143 014a 2795                  ror r18
 144 014c 3595                  asr r19
 145 014e 2795                  ror r18
 146 0150 3093 0000             sts (ToNaviCtrl+9)+1,r19
 147 0154 2093 0000             sts ToNaviCtrl+9,r18
 148 0158 1092 0000             sts (NaviCntAcc)+1,__zero_reg__
 149 015c 1092 0000             sts NaviCntAcc,__zero_reg__
 150 0160 1092 0000             sts (NaviAccNick)+1,__zero_reg__
 151 0164 1092 0000             sts NaviAccNick,__zero_reg__
 152 0168 1092 0000             sts (NaviAccRoll)+1,__zero_reg__
 153 016c 1092 0000             sts NaviAccRoll,__zero_reg__
 154 0170 8091 0000             lds r24,ToNaviCtrl+2
 155 0174 8C30                  cpi r24,lo8(12)
 156 0176 01F4                  brne .+2
 157 0178 00C0                  rjmp .L9
 158 017a 8D30                  cpi r24,lo8(13)
 159 017c 00F4                  brsh .+2
 160 017e 00C0                  rjmp .L41
 161 0180 8D30                  cpi r24,lo8(13)
 162 0182 01F4                  brne .+2
 163 0184 00C0                  rjmp .L10
 164 0186 8E30                  cpi r24,lo8(14)
 165 0188 01F4                  brne .+2
 166 018a 00C0                  rjmp .L42
 167                    .L6:
 168                    /* #APP */
 169 018c 7894                  sei
 170                    /* #NOAPP */
 171 018e 8091 0000             lds r24,SPI_RxDataValid
 172 0192 8823                  tst r24
 173 0194 01F4                  brne .+2
 174 0196 00C0                  rjmp .L24
 175                    .L45:
 176 0198 2091 0000             lds r18,FromNaviCtrl+1
 177 019c 3091 0000             lds r19,(FromNaviCtrl+1)+1
 178 01a0 C901                  movw r24,r18
 179 01a2 8150                  subi r24,lo8(-(511))
 180 01a4 9E4F                  sbci r25,hi8(-(511))
 181 01a6 8F5F                  subi r24,lo8(1023)
 182 01a8 9340                  sbci r25,hi8(1023)
 183 01aa 00F4                  brsh .L26
 184 01ac 4091 0000             lds r20,FromNaviCtrl+3
 185 01b0 5091 0000             lds r21,(FromNaviCtrl+3)+1
 186 01b4 CA01                  movw r24,r20
 187 01b6 8150                  subi r24,lo8(-(511))
 188 01b8 9E4F                  sbci r25,hi8(-(511))
 189 01ba 8F5F                  subi r24,lo8(1023)
 190 01bc 9340                  sbci r25,hi8(1023)
 191 01be 00F4                  brsh .+2
 192 01c0 00C0                  rjmp .L43
 193                    .L26:
 194 01c2 8091 0000             lds r24,FromNaviCtrl+7
 195 01c6 9091 0000             lds r25,(FromNaviCtrl+7)+1
 196 01ca 21E0                  ldi r18,hi8(361)
 197 01cc 8936                  cpi r24,lo8(361)
 198 01ce 9207                  cpc r25,r18
 199 01d0 04F4                  brge .L30
 200 01d2 9093 0000             sts (KompassValue)+1,r25
 201 01d6 8093 0000             sts KompassValue,r24
 202                    .L30:
 203 01da 8091 0000             lds r24,KompassValue
 204 01de 9091 0000             lds r25,(KompassValue)+1
 205 01e2 845E                  subi r24,lo8(-(540))
 206 01e4 9D4F                  sbci r25,hi8(-(540))
 207 01e6 2091 0000             lds r18,KompassStartwert
 208 01ea 3091 0000             lds r19,(KompassStartwert)+1
 209 01ee 821B                  sub r24,r18
 210 01f0 930B                  sbc r25,r19
 211 01f2 68E6                  ldi r22,lo8(360)
 212 01f4 71E0                  ldi r23,hi8(360)
 213 01f6 0E94 0000             call __divmodhi4
 214 01fa 845B                  subi r24,lo8(-(-180))
 215 01fc 9040                  sbci r25,hi8(-(-180))
 216 01fe 9093 0000             sts (KompassRichtung)+1,r25
 217 0202 8093 0000             sts KompassRichtung,r24
 218 0206 2091 0000             lds r18,FromNaviCtrl+11
 219 020a 3091 0000             lds r19,(FromNaviCtrl+11)+1
 220 020e 8091 0000             lds r24,beeptime
 221 0212 9091 0000             lds r25,(beeptime)+1
 222 0216 8217                  cp r24,r18
 223 0218 9307                  cpc r25,r19
 224 021a 00F4                  brsh .L32
 225 021c 8091 0000             lds r24,WinkelOut+6
 226 0220 8823                  tst r24
 227 0222 01F4                  brne .+2
 228 0224 00C0                  rjmp .L44
 229                    .L32:
 230 0226 8091 0000             lds r24,FromNaviCtrl
 231 022a 8736                  cpi r24,lo8(103)
 232 022c 01F0                  breq .+2
 233 022e 00C0                  rjmp .L37
 234 0230 8091 0000             lds r24,FromNaviCtrl+13
 235 0234 8093 0000             sts FromNaviCtrl_Value,r24
 236 0238 8091 0000             lds r24,FromNaviCtrl+14
 237 023c 8093 0000             sts FromNaviCtrl_Value+2,r24
 238 0240 8091 0000             lds r24,FromNaviCtrl+15
 239 0244 8093 0000             sts FromNaviCtrl_Value+1,r24
 240 0248 00C0                  rjmp .L37
 241                    .L41:
 242 024a 8A30                  cpi r24,lo8(10)
 243 024c 01F4                  brne .+2
 244 024e 00C0                  rjmp .L7
 245 0250 8B30                  cpi r24,lo8(11)
 246 0252 01F0                  breq .+2
 247 0254 00C0                  rjmp .L6
 248 0256 E091 0000             lds r30,EE_Parameter+2
 249 025a F0E0                  ldi r31,lo8(0)
 250 025c EE0F                  lsl r30
 251 025e FF1F                  rol r31
 252 0260 E050                  subi r30,lo8(-(PPM_in))
 253 0262 F040                  sbci r31,hi8(-(PPM_in))
 254 0264 0190                  ld __tmp_reg__,Z+
 255 0266 F081                  ld r31,Z
 256 0268 E02D                  mov r30,__tmp_reg__
 257 026a 2FEF                  ldi r18,hi8(-127)
 258 026c E138                  cpi r30,lo8(-127)
 259 026e F207                  cpc r31,r18
 260 0270 04F4                  brge .L13
 261 0272 E1E8                  ldi r30,lo8(-127)
 262 0274 FFEF                  ldi r31,hi8(-127)
 263                    .L13:
 264 0276 E038                  cpi r30,128
 265 0278 F105                  cpc r31,__zero_reg__
 266 027a 04F0                  brlt .L14
 267 027c EFE7                  ldi r30,lo8(127)
 268 027e F0E0                  ldi r31,hi8(127)
 269                    .L14:
 270 0280 E093 0000             sts ToNaviCtrl+19,r30
 271 0284 E091 0000             lds r30,EE_Parameter+3
 272 0288 F0E0                  ldi r31,lo8(0)
 273 028a EE0F                  lsl r30
 274 028c FF1F                  rol r31
 275 028e E050                  subi r30,lo8(-(PPM_in))
 276 0290 F040                  sbci r31,hi8(-(PPM_in))
 277 0292 0190                  ld __tmp_reg__,Z+
 278 0294 F081                  ld r31,Z
 279 0296 E02D                  mov r30,__tmp_reg__
 280 0298 4FEF                  ldi r20,hi8(-127)
 281 029a E138                  cpi r30,lo8(-127)
 282 029c F407                  cpc r31,r20
 283 029e 04F4                  brge .L15
 284 02a0 E1E8                  ldi r30,lo8(-127)
 285 02a2 FFEF                  ldi r31,hi8(-127)
 286                    .L15:
 287 02a4 E038                  cpi r30,128
 288 02a6 F105                  cpc r31,__zero_reg__
 289 02a8 04F0                  brlt .L16
 290 02aa EFE7                  ldi r30,lo8(127)
 291 02ac F0E0                  ldi r31,hi8(127)
 292                    .L16:
 293 02ae E093 0000             sts ToNaviCtrl+20,r30
 294 02b2 E091 0000             lds r30,EE_Parameter+1
 295 02b6 F0E0                  ldi r31,lo8(0)
 296 02b8 EE0F                  lsl r30
 297 02ba FF1F                  rol r31
 298 02bc E050                  subi r30,lo8(-(PPM_in))
 299 02be F040                  sbci r31,hi8(-(PPM_in))
 300 02c0 0190                  ld __tmp_reg__,Z+
 301 02c2 F081                  ld r31,Z
 302 02c4 E02D                  mov r30,__tmp_reg__
 303 02c6 6FEF                  ldi r22,hi8(-127)
 304 02c8 E138                  cpi r30,lo8(-127)
 305 02ca F607                  cpc r31,r22
 306 02cc 04F4                  brge .L17
 307 02ce E1E8                  ldi r30,lo8(-127)
 308 02d0 FFEF                  ldi r31,hi8(-127)
 309                    .L17:
 310 02d2 E038                  cpi r30,128
 311 02d4 F105                  cpc r31,__zero_reg__
 312 02d6 04F0                  brlt .L18
 313 02d8 EFE7                  ldi r30,lo8(127)
 314 02da F0E0                  ldi r31,hi8(127)
 315                    .L18:
 316 02dc E093 0000             sts ToNaviCtrl+21,r30
 317 02e0 E091 0000             lds r30,EE_Parameter
 318 02e4 F0E0                  ldi r31,lo8(0)
 319 02e6 EE0F                  lsl r30
 320 02e8 FF1F                  rol r31
 321 02ea E050                  subi r30,lo8(-(PPM_in))
 322 02ec F040                  sbci r31,hi8(-(PPM_in))
 323 02ee 0190                  ld __tmp_reg__,Z+
 324 02f0 F081                  ld r31,Z
 325 02f2 E02D                  mov r30,__tmp_reg__
 326 02f4 8FEF                  ldi r24,hi8(-127)
 327 02f6 E138                  cpi r30,lo8(-127)
 328 02f8 F807                  cpc r31,r24
 329 02fa 04F4                  brge .L19
 330 02fc E1E8                  ldi r30,lo8(-127)
 331 02fe FFEF                  ldi r31,hi8(-127)
 332                    .L19:
 333 0300 E038                  cpi r30,128
 334 0302 F105                  cpc r31,__zero_reg__
 335 0304 04F0                  brlt .L20
 336 0306 EFE7                  ldi r30,lo8(127)
 337 0308 F0E0                  ldi r31,hi8(127)
 338                    .L20:
 339 030a E093 0000             sts ToNaviCtrl+22,r30
 340 030e 8091 0000             lds r24,Poti1
 341 0312 8093 0000             sts ToNaviCtrl+23,r24
 342 0316 8091 0000             lds r24,Poti2
 343 031a 8093 0000             sts ToNaviCtrl+24,r24
 344 031e 8091 0000             lds r24,Poti3
 345 0322 8093 0000             sts ToNaviCtrl+25,r24
 346 0326 8091 0000             lds r24,Poti4
 347 032a 8093 0000             sts ToNaviCtrl+26,r24
 348 032e 8091 0000             lds r24,SenderOkay
 349 0332 8093 0000             sts ToNaviCtrl+27,r24
 350                    /* #APP */
 351 0336 7894                  sei
 352                    /* #NOAPP */
 353 0338 8091 0000             lds r24,SPI_RxDataValid
 354 033c 8823                  tst r24
 355 033e 01F0                  breq .+2
 356 0340 00C0                  rjmp .L45
 357                    .L24:
 358 0342 1092 0000             sts (GPS_Nick)+1,__zero_reg__
 359 0346 1092 0000             sts GPS_Nick,__zero_reg__
 360 034a 1092 0000             sts (GPS_Roll)+1,__zero_reg__
 361 034e 1092 0000             sts GPS_Roll,__zero_reg__
 362 0352 00C0                  rjmp .L37
 363                    .L40:
 364 0354 2D5F                  subi r18,lo8(-(3))
 365 0356 3F4F                  sbci r19,hi8(-(3))
 366 0358 00C0                  rjmp .L5
 367                    .L39:
 368 035a 2D5F                  subi r18,lo8(-(3))
 369 035c 3F4F                  sbci r19,hi8(-(3))
 370 035e 00C0                  rjmp .L4
 371                    .L44:
 372 0360 3093 0000             sts (beeptime)+1,r19
 373 0364 2093 0000             sts beeptime,r18
 374 0368 00C0                  rjmp .L32
 375                    .L43:
 376 036a 8091 0000             lds r24,EE_Parameter+8
 377 036e 85FF                  sbrs r24,5
 378 0370 00C0                  rjmp .L26
 379 0372 3093 0000             sts (GPS_Nick)+1,r19
 380 0376 2093 0000             sts GPS_Nick,r18
 381 037a 5093 0000             sts (GPS_Roll)+1,r21
 382 037e 4093 0000             sts GPS_Roll,r20
 383 0382 00C0                  rjmp .L26
 384                    .L42:
 385 0384 8091 0000             lds r24,SPI_VersionInfo
 386 0388 8093 0000             sts ToNaviCtrl+19,r24
 387 038c 8091 0000             lds r24,SPI_VersionInfo+1
 388 0390 8093 0000             sts ToNaviCtrl+20,r24
 389 0394 8091 0000             lds r24,SPI_VersionInfo+2
 390 0398 8093 0000             sts ToNaviCtrl+21,r24
 391 039c 8091 0000             lds r24,SPI_VersionInfo+3
 392 03a0 8093 0000             sts ToNaviCtrl+22,r24
 393 03a4 8091 0000             lds r24,PlatinenVersion
 394 03a8 8093 0000             sts ToNaviCtrl+23,r24
 395 03ac 00C0                  rjmp .L6
 396                    .L10:
 397 03ae 8091 0000             lds r24,EE_Parameter+58
 398 03b2 8093 0000             sts ToNaviCtrl+19,r24
 399 03b6 8091 0000             lds r24,EE_Parameter+59
 400 03ba 8093 0000             sts ToNaviCtrl+20,r24
 401 03be 8091 0000             lds r24,EE_Parameter+60
 402 03c2 8093 0000             sts ToNaviCtrl+21,r24
 403 03c6 8091 0000             lds r24,EE_Parameter+61
 404 03ca 8093 0000             sts ToNaviCtrl+22,r24
 405 03ce 8091 0000             lds r24,EE_Parameter+62
 406 03d2 8093 0000             sts ToNaviCtrl+23,r24
 407 03d6 8091 0000             lds r24,EE_Parameter+66
 408 03da 8093 0000             sts ToNaviCtrl+24,r24
 409 03de 8091 0000             lds r24,EE_Parameter+67
 410 03e2 8093 0000             sts ToNaviCtrl+25,r24
 411 03e6 8091 0000             lds r24,EE_Parameter+68
 412 03ea 8093 0000             sts ToNaviCtrl+26,r24
 413 03ee 8091 0000             lds r24,EE_Parameter+71
 414 03f2 8093 0000             sts ToNaviCtrl+27,r24
 415 03f6 8091 0000             lds r24,EE_Parameter+69
 416 03fa 8093 0000             sts ToNaviCtrl+28,r24
 417 03fe 8091 0000             lds r24,EE_Parameter+70
 418 0402 8093 0000             sts ToNaviCtrl+29,r24
 419 0406 8091 0000             lds r24,EE_Parameter+72
 420 040a 8093 0000             sts ToNaviCtrl+30,r24
 421 040e 00C0                  rjmp .L6
 422                    .L7:
 423 0410 8091 0000             lds r24,Parameter_UserParam1
 424 0414 8093 0000             sts ToNaviCtrl+19,r24
 425 0418 8091 0000             lds r24,Parameter_UserParam2
 426 041c 8093 0000             sts ToNaviCtrl+20,r24
 427 0420 8091 0000             lds r24,Parameter_UserParam3
 428 0424 8093 0000             sts ToNaviCtrl+21,r24
 429 0428 8091 0000             lds r24,Parameter_UserParam4
 430 042c 8093 0000             sts ToNaviCtrl+22,r24
 431 0430 8091 0000             lds r24,Parameter_UserParam5
 432 0434 8093 0000             sts ToNaviCtrl+23,r24
 433 0438 8091 0000             lds r24,Parameter_UserParam6
 434 043c 8093 0000             sts ToNaviCtrl+24,r24
 435 0440 8091 0000             lds r24,Parameter_UserParam7
 436 0444 8093 0000             sts ToNaviCtrl+25,r24
 437 0448 8091 0000             lds r24,Parameter_UserParam8
 438 044c 8093 0000             sts ToNaviCtrl+26,r24
 439 0450 8091 0000             lds r24,MikroKopterFlags
 440 0454 8093 0000             sts ToNaviCtrl+27,r24
 441 0458 837F                  andi r24,lo8(-13)
 442 045a 8093 0000             sts MikroKopterFlags,r24
 443 045e 8091 0000             lds r24,UBat
 444 0462 9091 0000             lds r25,(UBat)+1
 445 0466 8093 0000             sts ToNaviCtrl+28,r24
 446 046a 8091 0000             lds r24,EE_Parameter+25
 447 046e 8093 0000             sts ToNaviCtrl+29,r24
 448 0472 A0E0                  ldi r26,lo8(EEPromArray+2)
 449 0474 B0E0                  ldi r27,hi8(EEPromArray+2)
 450                    /* #APP */
 451 0476 0E94 0000             call __eeprom_read_byte_1F2021
 452 047a 802D                  mov r24,__tmp_reg__
 453                    /* #NOAPP */
 454 047c 8093 0000             sts ToNaviCtrl+30,r24
 455 0480 00C0                  rjmp .L6
 456                    .L9:
 457 0482 8091 0000             lds r24,WinkelOut+6
 458 0486 8630                  cpi r24,lo8(6)
 459 0488 00F0                  brlo .L21
 460 048a 1092 0000             sts WinkelOut+6,__zero_reg__
 461 048e 85E0                  ldi r24,lo8(5)
 462 0490 8093 0000             sts ToNaviCtrl+19,r24
 463                    .L23:
 464 0494 8091 0000             lds r24,HoehenWert
 465 0498 9091 0000             lds r25,(HoehenWert)+1
 466 049c 9093 0000             sts (ToNaviCtrl+21)+1,r25
 467 04a0 8093 0000             sts ToNaviCtrl+21,r24
 468 04a4 8091 0000             lds r24,EE_Parameter+73
 469 04a8 8093 0000             sts ToNaviCtrl+20,r24
 470 04ac 8091 0000             lds r24,EE_Parameter+63
 471 04b0 8093 0000             sts ToNaviCtrl+23,r24
 472 04b4 8091 0000             lds r24,EE_Parameter+64
 473 04b8 8093 0000             sts ToNaviCtrl+24,r24
 474 04bc 8091 0000             lds r24,EE_Parameter+65
 475 04c0 8093 0000             sts ToNaviCtrl+25,r24
 476 04c4 00C0                  rjmp .L6
 477                    .L21:
 478 04c6 8093 0000             sts ToNaviCtrl+19,r24
 479 04ca 00C0                  rjmp .L23
 480                    .L37:
 481                    /* epilogue: frame size=0 */
 482 04cc 1F91                  pop r17
 483 04ce 0F91                  pop r16
 484 04d0 FF90                  pop r15
 485 04d2 EF90                  pop r14
 486 04d4 0895                  ret
 487                    /* epilogue end (size=5) */
 488                    /* function UpdateSPI_Buffer size 583 (574) */
 490                    .global SPI_StartTransmitPacket
 492                    SPI_StartTransmitPacket:
 493                    /* prologue: frame size=0 */
 494                    /* prologue end (size=0) */
 495 04d6 8091 0000             lds r24,SPITransferCompleted
 496 04da 8823                  tst r24
 497 04dc 01F4                  brne .+2
 498 04de 00C0                  rjmp .L51
 499 04e0 4598                  cbi 40-0x20,5
 500 04e2 80E0                  ldi r24,lo8(ToNaviCtrl)
 501 04e4 90E0                  ldi r25,hi8(ToNaviCtrl)
 502 04e6 9093 0000             sts (SPI_TX_Buffer)+1,r25
 503 04ea 8093 0000             sts SPI_TX_Buffer,r24
 504 04ee 9091 0000             lds r25,SPI_CommandCounter
 505 04f2 E92F                  mov r30,r25
 506 04f4 F0E0                  ldi r31,lo8(0)
 507 04f6 E050                  subi r30,lo8(-(SPI_CommandSequence))
 508 04f8 F040                  sbci r31,hi8(-(SPI_CommandSequence))
 509 04fa 8081                  ld r24,Z
 510 04fc 8093 0000             sts ToNaviCtrl+2,r24
 511 0500 9F5F                  subi r25,lo8(-(1))
 512 0502 9093 0000             sts SPI_CommandCounter,r25
 513 0506 9630                  cpi r25,lo8(6)
 514 0508 00F0                  brlo .L49
 515 050a 1092 0000             sts SPI_CommandCounter,__zero_reg__
 516                    .L49:
 517 050e 1092 0000             sts SPITransferCompleted,__zero_reg__
 518 0512 0E94 0000             call UpdateSPI_Buffer
 519 0516 81E0                  ldi r24,lo8(1)
 520 0518 8093 0000             sts SPI_BufferIndex,r24
 521                    /* #APP */
 522 051c 0000                  nop
 523 051e 0000                  nop
 524 0520 0000                  nop
 525 0522 0000                  nop
 526 0524 0000                  nop
 527 0526 0000                  nop
 528 0528 0000                  nop
 529 052a 0000                  nop
 530 052c 0000                  nop
 531 052e 0000                  nop
 532 0530 0000                  nop
 533 0532 0000                  nop
 534 0534 0000                  nop
 535 0536 0000                  nop
 536 0538 0000                  nop
 537 053a 0000                  nop
 538 053c 0000                  nop
 539 053e 0000                  nop
 540 0540 0000                  nop
 541 0542 0000                  nop
 542 0544 0000                  nop
 543 0546 0000                  nop
 544 0548 0000                  nop
 545 054a 0000                  nop
 546                    /* #NOAPP */
 547 054c 8091 0000             lds r24,ToNaviCtrl
 548 0550 8093 0000             sts ToNaviCtrl+31,r24
 549 0554 8EBD                  out 78-0x20,r24
 550                    .L51:
 551 0556 0895                  ret
 552                    /* epilogue: frame size=0 */
 553                    /* epilogue: noreturn */
 554                    /* epilogue end (size=0) */
 555                    /* function SPI_StartTransmitPacket size 89 (89) */
 557                    .global SPI_TransmitByte
 559                    SPI_TransmitByte:
 560                    /* prologue: frame size=0 */
 561                    /* prologue end (size=0) */
 562 0558 8091 0000             lds r24,SPITransferCompleted
 563 055c 8823                  tst r24
 564 055e 01F4                  brne .L72
 565 0560 0DB4                  in __tmp_reg__,77-0x20
 566 0562 07FE                  sbrs __tmp_reg__,7
 567                    .L72:
 568 0564 0895                  ret
 569                    .L75:
 570 0566 84E0                  ldi r24,lo8(4)
 571 0568 8093 0000             sts SendSPI,r24
 572 056c 459A                  sbi 40-0x20,5
 573 056e 9EB5                  in r25,78-0x20
 574 0570 8091 0000             lds r24,SPI_RXState.2396
 575 0574 8130                  cpi r24,lo8(1)
 576 0576 01F4                  brne .+2
 577 0578 00C0                  rjmp .L58
 578 057a 8130                  cpi r24,lo8(1)
 579 057c 00F0                  brlo .+2
 580 057e 00C0                  rjmp .L76
 581 0580 1092 0000             sts SPI_RxBufferIndex,__zero_reg__
 582 0584 9093 0000             sts rxchksum.2398,r25
 583 0588 9138                  cpi r25,lo8(-127)
 584 058a 01F4                  brne .+2
 585 058c 00C0                  rjmp .L77
 586                    .L56:
 587 058e 2091 0000             lds r18,SPI_BufferIndex
 588 0592 2032                  cpi r18,lo8(32)
 589 0594 00F0                  brlo .+2
 590 0596 00C0                  rjmp .L69
 591 0598 4598                  cbi 40-0x20,5
 592                    /* #APP */
 593 059a 0000                  nop
 594 059c 0000                  nop
 595 059e 0000                  nop
 596 05a0 0000                  nop
 597 05a2 0000                  nop
 598 05a4 0000                  nop
 599 05a6 0000                  nop
 600 05a8 0000                  nop
 601 05aa 0000                  nop
 602 05ac 0000                  nop
 603 05ae 0000                  nop
 604 05b0 0000                  nop
 605 05b2 0000                  nop
 606 05b4 0000                  nop
 607 05b6 0000                  nop
 608 05b8 0000                  nop
 609 05ba 0000                  nop
 610 05bc 0000                  nop
 611 05be 0000                  nop
 612 05c0 0000                  nop
 613 05c2 0000                  nop
 614 05c4 0000                  nop
 615 05c6 0000                  nop
 616 05c8 0000                  nop
 617                    /* #NOAPP */
 618 05ca E091 0000             lds r30,SPI_TX_Buffer
 619 05ce F091 0000             lds r31,(SPI_TX_Buffer)+1
 620 05d2 E20F                  add r30,r18
 621 05d4 F11D                  adc r31,__zero_reg__
 622 05d6 8081                  ld r24,Z
 623 05d8 8EBD                  out 78-0x20,r24
 624 05da 8081                  ld r24,Z
 625 05dc 9091 0000             lds r25,ToNaviCtrl+31
 626 05e0 890F                  add r24,r25
 627 05e2 8093 0000             sts ToNaviCtrl+31,r24
 628                    .L71:
 629 05e6 2F5F                  subi r18,lo8(-(1))
 630 05e8 2093 0000             sts SPI_BufferIndex,r18
 631 05ec 0895                  ret
 632                    .L58:
 633 05ee 9535                  cpi r25,lo8(85)
 634 05f0 01F0                  breq .L78
 635                    .L68:
 636 05f2 1092 0000             sts SPI_RXState.2396,__zero_reg__
 637 05f6 00C0                  rjmp .L56
 638                    .L69:
 639 05f8 81E0                  ldi r24,lo8(1)
 640 05fa 8093 0000             sts SPITransferCompleted,r24
 641 05fe 00C0                  rjmp .L71
 642                    .L76:
 643 0600 8230                  cpi r24,lo8(2)
 644 0602 01F0                  breq .+2
 645 0604 00C0                  rjmp .L56
 646 0606 8091 0000             lds r24,SPI_RxBufferIndex
 647 060a E82F                  mov r30,r24
 648 060c F0E0                  ldi r31,lo8(0)
 649 060e E050                  subi r30,lo8(-(SPI_Buffer))
 650 0610 F040                  sbci r31,hi8(-(SPI_Buffer))
 651 0612 9083                  st Z,r25
 652 0614 8F5F                  subi r24,lo8(-(1))
 653 0616 8093 0000             sts SPI_RxBufferIndex,r24
 654 061a 8A31                  cpi r24,lo8(26)
 655 061c 00F0                  brlo .L63
 656 061e 8091 0000             lds r24,rxchksum.2398
 657 0622 9817                  cp r25,r24
 658 0624 01F0                  breq .L79
 659 0626 1092 0000             sts SPI_RxDataValid,__zero_reg__
 660 062a 00C0                  rjmp .L68
 661                    .L63:
 662 062c 8091 0000             lds r24,rxchksum.2398
 663 0630 890F                  add r24,r25
 664 0632 8093 0000             sts rxchksum.2398,r24
 665 0636 00C0                  rjmp .L56
 666                    .L78:
 667 0638 8091 0000             lds r24,rxchksum.2398
 668 063c 8B5A                  subi r24,lo8(-(85))
 669 063e 8093 0000             sts rxchksum.2398,r24
 670 0642 82E0                  ldi r24,lo8(2)
 671 0644 8093 0000             sts SPI_RXState.2396,r24
 672 0648 00C0                  rjmp .L56
 673                    .L77:
 674 064a 81E0                  ldi r24,lo8(1)
 675 064c 8093 0000             sts SPI_RXState.2396,r24
 676 0650 00C0                  rjmp .L56
 677                    .L79:
 678 0652 A0E0                  ldi r26,lo8(FromNaviCtrl)
 679 0654 B0E0                  ldi r27,hi8(FromNaviCtrl)
 680 0656 E0E0                  ldi r30,lo8(SPI_Buffer)
 681 0658 F0E0                  ldi r31,hi8(SPI_Buffer)
 682 065a 8AE1                  ldi r24,lo8(26)
 683                    .L67:
 684 065c 0190                  ld r0,Z+
 685 065e 0D92                  st X+,r0
 686 0660 8150                  subi r24,lo8(-(-1))
 687 0662 01F4                  brne .L67
 688 0664 81E0                  ldi r24,lo8(1)
 689 0666 8093 0000             sts SPI_RxDataValid,r24
 690 066a 00C0                  rjmp .L68
 691                    /* epilogue: frame size=0 */
 692                    /* epilogue: noreturn */
 693                    /* epilogue end (size=0) */
 694                    /* function SPI_TransmitByte size 164 (164) */
 696                    .global SPI_CommandSequence
 697                            .data
 700                    SPI_CommandSequence:
 701 0000 0A                    .byte   10
 702 0001 0B                    .byte   11
 703 0002 0D                    .byte   13
 704 0003 0B                    .byte   11
 705 0004 0C                    .byte   12
 706 0005 0E                    .byte   14
 707                    .global SPI_CommandCounter
 708                    .global SPI_CommandCounter
 709                            .section .bss
 712                    SPI_CommandCounter:
 713 0000 00                    .skip 1,0
 714                            .lcomm rxchksum.2398,1
 715                            .lcomm SPI_RXState.2396,1
 716                            .comm FromNaviCtrl_Value,3,1
 717                            .comm ToNaviCtrl,32,1
 718                            .comm FromNaviCtrl,26,1
 719                            .comm SPI_VersionInfo,4,1
 720                            .comm SPI_BufferIndex,1,1
 721                            .comm SPI_RxBufferIndex,1,1
 722                            .comm SPI_Buffer,26,1
 723                            .comm SPI_TX_Buffer,2,1
 724                            .comm SPITransferCompleted,1,1
 725                            .comm SPI_ChkSum,1,1
 726                            .comm SPI_RxDataValid,1,1
 727                    /* File "spi.c": code  878 = 0x036e ( 868), prologues   4, epilogues   6 */
DEFINED SYMBOLS
                            *ABS*:00000000 spi.c
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:2      *ABS*:0000003f __SREG__
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:3      *ABS*:0000003e __SP_H__
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:4      *ABS*:0000003d __SP_L__
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:5      *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:6      *ABS*:00000001 __zero_reg__
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:12     .text:00000000 SPI_MasterInit
                            *COM*:00000001 SPITransferCompleted
                            *COM*:00000020 ToNaviCtrl
                            *COM*:00000001 SPI_RxDataValid
                            *COM*:00000004 SPI_VersionInfo
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:50     .text:00000054 UpdateSPI_Buffer
                            *COM*:0000001a FromNaviCtrl
                            *COM*:00000003 FromNaviCtrl_Value
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:492    .text:000004d6 SPI_StartTransmitPacket
                            *COM*:00000002 SPI_TX_Buffer
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:712    .bss:00000000 SPI_CommandCounter
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:700    .data:00000000 SPI_CommandSequence
                            *COM*:00000001 SPI_BufferIndex
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:559    .text:00000558 SPI_TransmitByte
C:\DOKUME~1\DPeters\LOKALE~1\Temp/ccuv0Mvj.s:714    .bss:00000002 SPI_RXState.2396
                            *COM*:00000001 SPI_RxBufferIndex
                             .bss:00000001 rxchksum.2398
                            *COM*:0000001a SPI_Buffer
                            *COM*:00000001 SPI_ChkSum

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
IntegralNick
__divmodsi4
IntegralRoll
ErsatzKompass
__mulsi3
GIER_GRAD_FAKTOR
NaviCntAcc
NaviAccNick
__divmodhi4
NaviAccRoll
KompassValue
KompassStartwert
KompassRichtung
beeptime
WinkelOut
PPM_in
Poti1
Poti2
Poti3
Poti4
SenderOkay
GPS_Nick
GPS_Roll
PlatinenVersion
Parameter_UserParam1
Parameter_UserParam2
Parameter_UserParam3
Parameter_UserParam4
Parameter_UserParam5
Parameter_UserParam6
Parameter_UserParam7
Parameter_UserParam8
MikroKopterFlags
UBat
EEPromArray
__eeprom_read_byte_1F2021
HoehenWert
SendSPI