Browse Source

Deleted old Atmel version

master
Steffen Skaug 11 years ago
parent
commit
9aaa5d5e1a
  1. BIN
      Atmel/BLHeli programming by TX.pdf
  2. 6449
      Atmel/BLHeli.asm
  3. 795
      Atmel/BLHeliTxPgm.inc
  4. 318
      Atmel/Feigao6.inc
  5. 352
      Atmel/HC5A1SA48V.inc
  6. 357
      Atmel/HC5A1SA8.inc
  7. 251
      Atmel/Hex files/Feigao6.main.hex
  8. 251
      Atmel/Hex files/Feigao6.tail.hex
  9. 268
      Atmel/Hex files/HC5A1SA48V.main.hex
  10. 268
      Atmel/Hex files/HC5A1SA48V.tail.hex
  11. 251
      Atmel/Hex files/HC5A1SA8.main.hex
  12. 251
      Atmel/Hex files/HC5A1SA8.tail.hex
  13. 272
      Atmel/Hex files/WalkeraWST10LT.main.hex
  14. 272
      Atmel/Hex files/WalkeraWST10LT.tail.hex
  15. 21
      Atmel/Makefile
  16. 390
      Atmel/WalkeraWST10LT.inc
  17. 958
      Atmel/m48def.inc
  18. 976
      Atmel/m88Pdef.inc
  19. 44
      Atmel/m8def.inc
  20. 3
      Atmel/main.inc
  21. 3
      Atmel/tail.inc

BIN
Atmel/BLHeli programming by TX.pdf

6449
Atmel/BLHeli.asm
File diff suppressed because it is too large
View File

795
Atmel/BLHeliTxPgm.inc

@ -1,6 +1,6 @@
;**** **** **** **** ****
;
; BLHeli program for controlling brushless motors in helicopters
; BLHeli program for controlling brushless motors in helicopters and multirotors
;
; Copyright 2011, 2012 Steffen Skaug
; This program is distributed under the terms of the GNU General Public License
@ -22,18 +22,117 @@
;
;**** **** **** **** ****
;
; BLHeliTxPgm Atmel
; BLHeliTxPgm Atmel
;
;**** **** **** **** ****
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Read all eeprom parameters routine
;
; No assumptions
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
read_all_eeprom_parameters:
.IF MODE == 0 ; Main
; Check initialized signature
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
rcall read_eeprom_byte
cpi Temp1, 0xA5
breq PC+2
rjmp read_eeprom_store_defaults
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
rcall read_eeprom_byte
cpi Temp1, 0x5A
breq PC+2
rjmp read_eeprom_store_defaults
.ENDIF
.IF MODE == 1 ; Tail
; Check initialized signature
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
rcall read_eeprom_byte
cpi Temp1, 0x5A
breq PC+2
rjmp read_eeprom_store_defaults
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
rcall read_eeprom_byte
cpi Temp1, 0xA5
breq PC+2
rjmp read_eeprom_store_defaults
.ENDIF
.IF MODE == 2 ; Multi
; Check initialized signature
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
rcall read_eeprom_byte
cpi Temp1, 0x55
breq PC+2
rjmp read_eeprom_store_defaults
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
rcall read_eeprom_byte
cpi Temp1, 0xAA
breq PC+2
rjmp read_eeprom_store_defaults
.ENDIF
; Read eeprom
ldi Temp4, 10 ; 10 parameters
ldi XL, low(Pgm_Gov_P_Gain)
ldi XH, high(Pgm_Gov_P_Gain)
.IF MODE == 0 || MODE ==2
ldi ZL, low(Eep_Pgm_Gov_P_Gain)
ldi ZH, high(Eep_Pgm_Gov_P_Gain)
.ENDIF
.IF MODE == 1
ldi ZL, low(_Eep_Pgm_Gov_P_Gain)
ldi ZH, high(_Eep_Pgm_Gov_P_Gain)
.ENDIF
read_eeprom_block1:
rcall read_eeprom_byte
st X+, Temp1
adiw Z, 1
dec Temp4
brne read_eeprom_block1
ldi Temp4, 19 ; 19 parameters
ldi XL, low(Pgm_Enable_TX_Program)
ldi XH, high(Pgm_Enable_TX_Program)
ldi ZL, low(Eep_Enable_TX_Program)
ldi ZH, high(Eep_Enable_TX_Program)
read_eeprom_block2:
rcall read_eeprom_byte
st X+, Temp1
adiw Z, 1
dec Temp4
brne read_eeprom_block2
rjmp read_eeprom_exit
read_eeprom_store_defaults:
rcall set_default_parameters
rcall store_all_in_eeprom
read_eeprom_exit:
ldi ZL, low(Eep_Dummy) ; Set pointer to uncritical area
ldi ZH, high(Eep_Dummy)
ret
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Read eeprom byte routine
;
; Assumes data in Temp1 and address in X
; Also assumes address high byte to be zero
; Assumes data in Temp1 and address in Z
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
read_eeprom_byte:
@ -42,19 +141,64 @@ read_eeprom_byte:
rjmp read_eeprom_byte
; Set up address in address register
Set_Eeprom_Address Temp2, Temp3
Set_Eeprom_Address ZL, ZH
; Start eeprom read
sbi EECR, EERE
in Temp1, EEDR
ret
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Store all parameter values in EEPROM routine
;
; Assumes interrupts to be off
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
store_all_in_eeprom:
; Clear initialized signature
rcall clear_eeprom_signature
; Write eeprom
ldi Temp4, 10 ; 10 parameters
ldi XL, low(Pgm_Gov_P_Gain)
ldi XH, high(Pgm_Gov_P_Gain)
.IF MODE == 0 || MODE ==2
ldi ZL, low(Eep_Pgm_Gov_P_Gain)
ldi ZH, high(Eep_Pgm_Gov_P_Gain)
.ENDIF
.IF MODE == 1
ldi ZL, low(_Eep_Pgm_Gov_P_Gain)
ldi ZH, high(_Eep_Pgm_Gov_P_Gain)
.ENDIF
write_eeprom_block1:
ld Temp1, X+
rcall write_eeprom_byte
adiw Z, 1
dec Temp4
brne write_eeprom_block1
ldi Temp4, 19 ; 19 parameters
ldi XL, low(Pgm_Enable_TX_Program)
ldi XH, high(Pgm_Enable_TX_Program)
ldi ZL, low(Eep_Enable_TX_Program)
ldi ZH, high(Eep_Enable_TX_Program)
write_eeprom_block2:
ld Temp1, X+
rcall write_eeprom_byte
adiw Z, 1
dec Temp4
brne write_eeprom_block2
; Write initialized signature
rcall write_eeprom_signature
ret
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Write eeprom byte routine
;
; Assumes data in Temp1 and address in Temp2/Temp3
; Also assumes address high byte to be zero
; Assumes data in Temp1 and address in Z
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
write_eeprom_byte:
@ -64,11 +208,9 @@ write_eeprom_byte:
; Set up address in address register
out EEDR, Temp1
Set_Eeprom_Address Temp2, Temp3
Set_Eeprom_Address ZL, ZH
; Set write enables and start writing
cli ; Disable interrupts
Start_Eeprom_Write
sei ; Enable interrupts
ret
@ -80,13 +222,13 @@ write_eeprom_byte:
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
clear_eeprom_signature:
ldi Temp2, low(Eep_Initialized_L)
ldi Temp3, high(Eep_Initialized_L)
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
ldi Temp1, 0xFF
rcall write_eeprom_byte
ldi Temp2, low(Eep_Initialized_H)
ldi Temp3, high(Eep_Initialized_H)
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
ldi Temp1, 0xFF
rcall write_eeprom_byte
ret
@ -100,336 +242,199 @@ clear_eeprom_signature:
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
write_eeprom_signature:
.if TAIL == 0
ldi Temp2, low(Eep_Initialized_L)
ldi Temp3, high(Eep_Initialized_L)
.IF MODE == 0 ; Main
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
ldi Temp1, 0xA5
rcall write_eeprom_byte
ldi Temp2, low(Eep_Initialized_H)
ldi Temp3, high(Eep_Initialized_H)
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
ldi Temp1, 0x5A
rcall write_eeprom_byte
.else
ldi Temp2, low(Eep_Initialized_L)
ldi Temp3, high(Eep_Initialized_L)
.ENDIF
.IF MODE == 1 ; Tail
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
ldi Temp1, 0x5A
rcall write_eeprom_byte
ldi Temp2, low(Eep_Initialized_H)
ldi Temp3, high(Eep_Initialized_H)
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
ldi Temp1, 0xA5
rcall write_eeprom_byte
.endif
.ENDIF
.IF MODE == 2 ; Multi
ldi ZL, low(Eep_Initialized_L)
ldi ZH, high(Eep_Initialized_L)
ldi Temp1, 0x55
rcall write_eeprom_byte
ldi ZL, low(Eep_Initialized_H)
ldi ZH, high(Eep_Initialized_H)
ldi Temp1, 0xAA
rcall write_eeprom_byte
.ENDIF
ret
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Read eeprom perameters routine
; Store new parameter value in ram routine
;
; No assumptions
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
read_eeprom_parameters:
.if TAIL == 0
; Check initialized signature
ldi Temp2, low(Eep_Initialized_L)
ldi Temp3, high(Eep_Initialized_L)
rcall read_eeprom_byte
cpi Temp1, 0xA5
brne read_eeprom_store_defaults
ldi Temp2, low(Eep_Initialized_H)
ldi Temp3, high(Eep_Initialized_H)
rcall read_eeprom_byte
cpi Temp1, 0x5A
brne read_eeprom_store_defaults
; Read eeprom
ldi Temp2, low(Eep_Pgm_Gov_P_Gain)
ldi Temp3, high(Eep_Pgm_Gov_P_Gain)
rcall read_eeprom_byte
store_new_value_in_ram:
lds Temp4, Tx_Pgm_Func_No ; Function no
lds Temp1, Tx_Pgm_Paraval_No ; Parameter value no
.IF MODE == 0
cpi Temp4, 1
brne PC+3
sts Pgm_Gov_P_Gain, Temp1
ldi Temp2, low(Eep_Pgm_Gov_I_Gain)
ldi Temp3, high(Eep_Pgm_Gov_I_Gain)
rcall read_eeprom_byte
cpi Temp4, 2
brne PC+3
sts Pgm_Gov_I_Gain, Temp1
ldi Temp2, low(Eep_Pgm_Gov_Mode)
ldi Temp3, high(Eep_Pgm_Gov_Mode)
rcall read_eeprom_byte
cpi Temp4, 3
brne PC+3
sts Pgm_Gov_Mode, Temp1
ldi Temp2, low(Eep_Pgm_Startup_Pwr)
ldi Temp3, high(Eep_Pgm_Startup_Pwr)
rcall read_eeprom_byte
sts Pgm_Startup_Pwr, Temp1
ldi Temp2, low(Eep_Pgm_Pwm_Freq)
ldi Temp3, high(Eep_Pgm_Pwm_Freq)
rcall read_eeprom_byte
sbr Flags2, (1<<PGM_PWM_HIGH_FREQ)
sbrc Temp1, 1
cbr Flags2, (1<<PGM_PWM_HIGH_FREQ)
ldi Temp2, low(Eep_Pgm_Input_Pol)
ldi Temp3, high(Eep_Pgm_Input_Pol)
rcall read_eeprom_byte
cbr Flags2, (1<<PGM_RCP_PWM_POL)
sbrc Temp1, 1
sbr Flags2, (1<<PGM_RCP_PWM_POL)
.else
; Check initialized signature
ldi Temp2, low(Eep_Initialized_L)
ldi Temp3, high(Eep_Initialized_L)
rcall read_eeprom_byte
cpi Temp1, 0x5A
brne read_eeprom_store_defaults
ldi Temp2, low(Eep_Initialized_H)
ldi Temp3, high(Eep_Initialized_H)
rcall read_eeprom_byte
cpi Temp1, 0xA5
brne read_eeprom_store_defaults
; Read eeprom
ldi Temp2, low(Eep_Pgm_Tail_Gain)
ldi Temp3, high(Eep_Pgm_Tail_Gain)
rcall read_eeprom_byte
sts Pgm_Tail_Gain, Temp1
cpi Temp4, 4
brne PC+3
sts Pgm_Gov_Range, Temp1
ldi Temp2, low(Eep_Pgm_Tail_Idle)
ldi Temp3, high(Eep_Pgm_Tail_Idle)
rcall read_eeprom_byte
sts Pgm_Tail_Idle, Temp1
cpi Temp4, 5
brne PC+3
sts Pgm_Low_Voltage_Lim, Temp1
ldi Temp2, low(Eep_Pgm_Startup_Pwr)
ldi Temp3, high(Eep_Pgm_Startup_Pwr)
rcall read_eeprom_byte
cpi Temp4, 6
brne PC+3
sts Pgm_Startup_Pwr, Temp1
ldi Temp2, low(Eep_Pgm_Pwm_Freq)
ldi Temp3, high(Eep_Pgm_Pwm_Freq)
rcall read_eeprom_byte
sbr Flags2, (1<<PGM_PWM_HIGH_FREQ)
sbrc Temp1, 1
cbr Flags2, (1<<PGM_PWM_HIGH_FREQ)
cpi Temp4, 7
brne PC+3
sts Pgm_Comm_Timing, Temp1
ldi Temp2, low(Eep_Pgm_Input_Pol)
ldi Temp3, high(Eep_Pgm_Input_Pol)
rcall read_eeprom_byte
cbr Flags2, (1<<PGM_RCP_PWM_POL)
sbrc Temp1, 1
sbr Flags2, (1<<PGM_RCP_PWM_POL)
cpi Temp4, 8
brne PC+3
sts Pgm_Throttle_Rate, Temp1
ldi Temp1, 3
sts Pgm_Gov_Mode, Temp1
.endif
rjmp read_eeprom_exit
cpi Temp4, 9
brne PC+3
sts Pgm_Damping_Force, Temp1
read_eeprom_store_defaults:
rcall set_default_parameters
rcall store_eeprom_defaults
read_eeprom_exit:
ret
cpi Temp4, 10
brne PC+3
sts Pgm_Pwm_Freq, Temp1
cpi Temp4, 11
brne PC+3
sts Pgm_Demag_Comp, Temp1
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Store default parameter value in EEPROM routine
;
; No assumptions
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
store_eeprom_defaults:
rcall clear_eeprom_signature
.if TAIL == 0
ldi Temp1, 1
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Gov_P_Gain
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 2
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Gov_I_Gain
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 3
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Gov_Mode
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 4
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Startup_Pwr
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 5
sts Tx_Pgm_Func_No, Temp1
ldi Temp1, 1
sbrs Flags2, PGM_PWM_HIGH_FREQ
ldi Temp1, 2
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 6
sts Tx_Pgm_Func_No, Temp1
ldi Temp1, 1
sbrc Flags2, PGM_RCP_PWM_POL
ldi Temp1, 2
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
rcall write_eeprom_signature
.else
ldi Temp1, 1
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Tail_Gain
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 2
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Tail_Idle
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 3
sts Tx_Pgm_Func_No, Temp1
lds Temp1, Pgm_Startup_Pwr
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 4
sts Tx_Pgm_Func_No, Temp1
ldi Temp1, 1
sbrs Flags2, PGM_PWM_HIGH_FREQ
ldi Temp1, 2
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
ldi Temp1, 5
sts Tx_Pgm_Func_No, Temp1
ldi Temp1, 1
sbrc Flags2, PGM_RCP_PWM_POL
ldi Temp1, 2
sts Tx_Pgm_Paraval_No, Temp1
rcall store_in_eeprom
rcall write_eeprom_signature
.endif
ret
cpi Temp4, 12
brne PC+3
sts Pgm_Direction, Temp1
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Store new parameter value in EEPROM routine
;
; No assumptions
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
store_in_eeprom:
lds Temp4, Tx_Pgm_Func_No ; Function no
lds Temp1, Tx_Pgm_Paraval_No ; Parameter value no
.if TAIL == 0
cpi Temp4, 13
brne PC+3
sts Pgm_Input_Pol, Temp1
.ENDIF
.IF MODE == 1
cpi Temp4, 1
breq store_main_func_1
brne PC+3
sts Pgm_Motor_Gain, Temp1
cpi Temp4, 2
breq store_main_func_2
brne PC+3
sts Pgm_Motor_Idle, Temp1
cpi Temp4, 3
breq store_main_func_3
brne PC+3
sts Pgm_Startup_Pwr, Temp1
cpi Temp4, 4
breq store_main_func_4
brne PC+3
sts Pgm_Comm_Timing, Temp1
cpi Temp4, 5
breq store_main_func_5
brne PC+3
sts Pgm_Throttle_Rate, Temp1
cpi Temp4, 6
breq store_main_func_6
brne PC+3
sts Pgm_Damping_Force, Temp1
cpi Temp4, 7
brne PC+3
sts Pgm_Pwm_Freq, Temp1
cpi Temp4, 8
brne PC+3
sts Pgm_Demag_Comp, Temp1
cpi Temp4, 9
brne PC+3
sts Pgm_Direction, Temp1
cpi Temp4, 10
brne PC+3
sts Pgm_Input_Pol, Temp1
.ENDIF
.IF MODE == 2
cpi Temp4, 1
brne PC+3
sts Pgm_Gov_P_Gain, Temp1
store_main_func_1:
ldi Temp2, low(Eep_Pgm_Gov_P_Gain)
ldi Temp3, high(Eep_Pgm_Gov_P_Gain)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 2
brne PC+3
sts Pgm_Gov_I_Gain, Temp1
store_main_func_2:
ldi Temp2, low(Eep_Pgm_Gov_I_Gain)
ldi Temp3, high(Eep_Pgm_Gov_I_Gain)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 3
brne PC+3
sts Pgm_Gov_Mode, Temp1
store_main_func_3:
ldi Temp2, low(Eep_Pgm_Gov_Mode)
ldi Temp3, high(Eep_Pgm_Gov_Mode)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 4
brne PC+3
sts Pgm_Motor_Gain, Temp1
store_main_func_4:
ldi Temp2, low(Eep_Pgm_Startup_Pwr)
ldi Temp3, high(Eep_Pgm_Startup_Pwr)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 5
brne PC+3
sts Pgm_Low_Voltage_Lim, Temp1
store_main_func_5:
ldi Temp2, low(Eep_Pgm_Pwm_Freq)
ldi Temp3, high(Eep_Pgm_Pwm_Freq)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 6
brne PC+3
sts Pgm_Startup_Pwr, Temp1
store_main_func_6:
ldi Temp2, low(Eep_Pgm_Input_Pol)
ldi Temp3, high(Eep_Pgm_Input_Pol)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
.else
cpi Temp4, 1
breq store_tail_func_1
cpi Temp4, 2
breq store_tail_func_2
cpi Temp4, 3
breq store_tail_func_3
cpi Temp4, 4
breq store_tail_func_4
cpi Temp4, 5
breq store_tail_func_5
cpi Temp4, 7
brne PC+3
sts Pgm_Comm_Timing, Temp1
store_tail_func_1:
ldi Temp2, low(Eep_Pgm_Tail_Gain)
ldi Temp3, high(Eep_Pgm_Tail_Gain)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 8
brne PC+3
sts Pgm_Throttle_Rate, Temp1
store_tail_func_2:
ldi Temp2, low(Eep_Pgm_Tail_Idle)
ldi Temp3, high(Eep_Pgm_Tail_Idle)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 9
brne PC+3
sts Pgm_Damping_Force, Temp1
store_tail_func_3:
ldi Temp2, low(Eep_Pgm_Startup_Pwr)
ldi Temp3, high(Eep_Pgm_Startup_Pwr)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 10
brne PC+3
sts Pgm_Pwm_Freq, Temp1
store_tail_func_4:
ldi Temp2, low(Eep_Pgm_Pwm_Freq)
ldi Temp3, high(Eep_Pgm_Pwm_Freq)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
cpi Temp4, 11
brne PC+3
sts Pgm_Demag_Comp, Temp1
store_tail_func_5:
ldi Temp2, low(Eep_Pgm_Input_Pol)
ldi Temp3, high(Eep_Pgm_Input_Pol)
rcall write_eeprom_byte
rjmp store_in_eeprom_exit
.endif
cpi Temp4, 12
brne PC+3
sts Pgm_Direction, Temp1
store_in_eeprom_exit:
cpi Temp4, 13
brne PC+3
sts Pgm_Input_Pol, Temp1
.ENDIF
ret
@ -441,11 +446,10 @@ store_in_eeprom_exit:
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
wait1s:
ldi Temp1, 5
mov Temp5, Temp1
ldi Temp3, 5
wait1s_loop:
rcall wait200ms
dec Temp5
dec Temp3
brne wait1s_loop
ret
@ -454,11 +458,10 @@ wait1s_loop:
;
; Success beep routine
;
; No assumptions
; Assumes interrupts to be off
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
success_beep:
cli ; Disable all interrupts
rcall beep_f1
rcall beep_f2
rcall beep_f3
@ -473,7 +476,31 @@ success_beep:
rcall beep_f2
rcall beep_f3
rcall beep_f4
sei ; Enable all interrupts
ret
;**;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Success beep inverted routine
;
; Assumes interrupts to be off
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
success_beep_inverted:
rcall beep_f4
rcall beep_f3
rcall beep_f2
rcall beep_f1
rcall wait10ms
rcall beep_f4
rcall beep_f3
rcall beep_f2
rcall beep_f1
rcall wait10ms
rcall beep_f4
rcall beep_f3
rcall beep_f2
rcall beep_f1
ret
@ -485,22 +512,20 @@ success_beep:
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
function_paraval_beep:
lds Temp5, Tx_Pgm_Func_No ; Function no
lds Temp6, Tx_Pgm_Paraval_No ; Parameter value no
cli ; Disable all interrupts
lds Temp7, Tx_Pgm_Func_No ; Function no
lds Temp8, Tx_Pgm_Paraval_No ; Parameter value no
function_beep:
rcall beep_f1
rcall beep_f1
rcall beep_f1
rcall wait10ms
dec Temp5
dec Temp7
brne function_beep
paraval_beep:
rcall beep_f4
rcall wait10ms
dec Temp6
dec Temp8
brne paraval_beep
sei ; Enable all interrupts
ret
@ -512,114 +537,124 @@ paraval_beep:
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
program_by_tx:
; Start programming mode entry sequence by waiting for low RC pulse
cli ; Disable all interrupts
rcall beep_f4
sei ; Enable all interrupts
rcall wait100ms
lds Temp1, New_Rcp ; Load new RC pulse value
cpi Temp1, RCP_STOP ; Below stop?
brsh program_by_tx ; No - start over
; Continue programming mode entry sequence by waiting for high RC pulse
wait_for_rc_pulse_max:
cli ; Disable all interrupts
rcall beep_f1
rcall wait10ms
rcall beep_f1
sei ; Enable all interrupts
rcall wait100ms
lds Temp1, New_Rcp ; Load new RC pulse value
cpi Temp1, RCP_MAX ; Above max?
brlo wait_for_rc_pulse_max ; No - start over
; Programming mode entry beeps
cli
rcall success_beep
sei
rcall wait1s
rcall wait1s
; Start at function 1, parameter value 1
ldi Temp1, 1
sts Tx_Pgm_Func_No, Temp1
ldi XH, 1
sts Tx_Pgm_Func_No, XH
paraval_no_entry:
ldi Temp1, 1
sts Tx_Pgm_Paraval_No, Temp1
ldi XH, 1
sts Tx_Pgm_Paraval_No, XH
beep_no_entry:
ldi Temp1, 0
sts Tx_Pgm_Beep_No, Temp1
sts Tx_Pgm_Beep_No, Zero
func_paraval:
cli
rcall function_paraval_beep
ldi Temp1, 5 ; Wait is 5x 200ms
mov Temp5, Temp1
sei
ldi XH, 5 ; Wait is 5x 200ms
mov Temp5, XH
func_paraval_wait:
lds Temp6, New_Rcp ; Load RC pulse
rcall wait200ms
lds Temp1, New_Rcp ; Load new rc pulse value
cpi Temp1, RCP_STOP ; Below stop?
brsh func_paraval_cont_wait ; No - branch
lds XH, New_Rcp
cp Temp6, XH ; Is RC pulse stable? (Avoid issues from 3in1 interference)
brne func_paraval_wait ; No - branch
cpi XH, RCP_STOP ; Below stop?
brcs func_paraval_store ; Yes - branch
cpi XH, RCP_MAX ; Below max?
brcs function_next ; Yes - branch
rjmp func_paraval_cont_wait ; No - branch
rcall clear_eeprom_signature ; Clear signature
rcall store_in_eeprom ; Yes - store new value in EEPROM
rcall write_eeprom_signature ; Write signature
func_paraval_store:
rcall store_new_value_in_ram ; Yes - store new value in RAM
cli ; Disable all interrupts
rcall store_all_in_eeprom ; Store all values in EEPROM
rcall success_beep ; Beep success
Enable_Watchdog Temp1 ; Generate hardware reset from watchdog
Enable_Watchdog XH ; Generate hardware reset from watchdog
rcall wait1s
func_paraval_cont_wait:
dec Temp5
brne func_paraval_wait
lds Temp1, Tx_Pgm_Beep_No ; Load and check number of beeps
inc Temp1
sts Tx_Pgm_Beep_No, Temp1
cpi Temp1, 3 ; Three beeps done?
brsh paraval_next ; Yes - Next parameter value
lds XH, Tx_Pgm_Beep_No ; Check number of beeps
inc XH
sts Tx_Pgm_Beep_No, XH
cpi XH, 3 ; Three beeps done?
brcc paraval_next ; Yes - Next parameter value
rjmp func_paraval ; No - go back
paraval_next:
rcall wait1s
lds Temp1, Tx_Pgm_Paraval_No ; Parameter value no
lds XH, Tx_Pgm_Paraval_No ; Parameter value no
inc XH
sts Tx_Pgm_Paraval_No, XH
cli
.IF MODE == 0
lds XH, Tx_Pgm_Func_No ; Decode number of parameters
dec XH
ldi ZL, low(TX_PGM_PARAMS_MAIN<<1)
ldi ZH, high(TX_PGM_PARAMS_MAIN<<1)
add ZL, XH
adc ZH, Zero
lpm Temp1, Z
.ENDIF
.IF MODE == 1
lds XH, Tx_Pgm_Func_No ; Decode number of parameters
dec XH
ldi ZL, low(TX_PGM_PARAMS_TAIL<<1)
ldi ZH, high(TX_PGM_PARAMS_TAIL<<1)
add ZL, XH
adc ZH, Zero
lpm Temp1, Z
.ENDIF
.IF MODE == 2
lds XH, Tx_Pgm_Func_No ; Decode number of parameters
dec XH
ldi ZL, low(TX_PGM_PARAMS_MULTI<<1)
ldi ZH, high(TX_PGM_PARAMS_MULTI<<1)
add ZL, XH
adc ZH, Zero
lpm Temp1, Z
.ENDIF
sei
inc Temp1
sts Tx_Pgm_Paraval_No, Temp1
ldi Temp2, 5 ; Default 5 parameter values
.if TAIL == 0
lds Temp1, Tx_Pgm_Func_No
cpi Temp1, 3 ; Function 3?
brne paraval_end_a ; No - branch
ldi Temp2, 3 ; Yes - set max parameter values
paraval_end_a:
lds Temp1, Tx_Pgm_Func_No
cpi Temp1, 5 ; Function below 5?
brlo paraval_end_b ; Yes - branch
ldi Temp2, 2 ; No - set max parameter values
paraval_end_b:
.else
lds Temp1, Tx_Pgm_Func_No
cpi Temp1, 4 ; Function below 4?
brlo paraval_end_a ; Yes - branch
ldi Temp2, 2 ; No - set max parameter values
paraval_end_a:
.endif
inc Temp2
lds Temp1, Tx_Pgm_Paraval_No
cp Temp1, Temp2
brsh function_next ; Last parameter value?
lds XH, Tx_Pgm_Paraval_No
cp XH, Temp1
brcc function_next ; Last parameter value?
rjmp beep_no_entry ; No - go back
function_next: ; Yes - Next function value
rcall wait1s
rcall wait1s
lds Temp1, Tx_Pgm_Func_No ; Function value no
inc Temp1
sts Tx_Pgm_Func_No, Temp1
.if TAIL == 0
cpi Temp1, 7 ; Main has 6 functions
.else
cpi Temp1, 6 ; Tail has 5 functions
.endif
brsh program_by_tx_exit ; Last function value?
lds XH, Tx_Pgm_Func_No ; Function value no
inc XH
sts Tx_Pgm_Func_No, XH
.IF MODE == 0
lds XH, Tx_Pgm_Func_No
cpi XH, 14 ; Main has 13 functions
.ENDIF
.IF MODE == 1
lds XH, Tx_Pgm_Func_No
cpi XH, 11 ; Tail has 10 functions
.ENDIF
.IF MODE == 2
lds XH, Tx_Pgm_Func_No
cpi XH, 14 ; Multi has 13 functions
.ENDIF
brcc program_by_tx_exit ; Last function value?
rjmp paraval_no_entry ; No - go back
program_by_tx_exit:
Enable_Watchdog Temp1 ; Generate hardware reset from watchdog
rcall set_default_parameters ; Load all defaults
cli ; Disable all interrupts
rcall store_all_in_eeprom ; Erase flash and program
Enable_Watchdog XH ; Generate hardware reset from watchdog
rcall wait1s

318
Atmel/Feigao6.inc

@ -1,318 +0,0 @@
;**** **** **** **** ****
;
; BLHeli program for controlling brushless motors in helicopters
;
; Copyright 2011, 2012 Steffen Skaug
; This program is distributed under the terms of the GNU General Public License
;
; This file is part of BLHeli.
;
; BLHeli is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; BLHeli is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>.
;
;**** **** **** **** ****
;*********************
; Device Atmega8
;*********************
.include "m8def.inc"
.equ ICP = 0 ; Choose input pin. Set to 0 for INT0 (pin32) and 1 for ICP1 (pin12)
;**** **** **** **** ****
; Fuses must be set to internal calibrated oscillator = 8Mhz
;**** **** **** **** ****
;**** **** **** **** ****
; Constant definitions
;**** **** **** **** ****
.equ ADC_LIMIT_L = 211 ; Power supply measurement ADC value for which main motor power is limited (low byte)
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs)
;*********************
; PORT D definitions *
;*********************
;.equ = 7 ;i
.equ Comp_Com = 6 ;i Comparator common input (AIN0)
.equ ApFET = 5 ;o
.equ CpFET = 4 ;o
.equ BpFET = 3 ;o
.equ Rcp_In = 2 ;i RC pulse input
;.equ = 1 ;i
;.equ = 0 ;i
.equ INIT_PD = 0
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
.MACRO Read_Rcp_Int
in @0, PIND
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Read_Rcp_Icp_Int
in @0, PINB
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Rcp_Int_Enable
ldi @0, (1<<INT0) ; Enable ext0int
out GICR, @0
.ENDMACRO
.MACRO Rcp_Int_Disable
ldi @0, 0 ; Disable ext0int
out GICR, @0
.ENDMACRO
.MACRO Rcp_Int_First
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
out MCUCR, @0
.ENDMACRO
.MACRO Rcp_Int_Second
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
out MCUCR, @0
.ENDMACRO
.MACRO Clear_Int_Flag
clr @0
sbr @0, (1<<INTF0) ; Clear ext0int flag
out GIFR, @0
.ENDMACRO
.MACRO ApFET_on
sbi PORTD,5
.ENDMACRO
.MACRO ApFET_off
cbi PORTD,5
.ENDMACRO
.MACRO CpFET_on
sbi PORTD,4
.ENDMACRO
.MACRO CpFET_off
cbi PORTD,4
.ENDMACRO
.MACRO BpFET_on
sbi PORTD,3
.ENDMACRO
.MACRO BpFET_off
cbi PORTD,3
.ENDMACRO
.MACRO All_pFETs_Off
in @0, PORTD
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
.MACRO All_pFETs_On
in @0, PORTD
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
;*********************
; PORT C definitions *
;*********************
;.equ = 7 ; ADC7
;.equ = 6 ; ADC6
.equ Mux_A = 5 ; Phase A input
.equ Mux_C = 4 ; Phase C input
;.equ = 3 ; ADC3
.equ Mux_B = 2 ; Phase B input
;.equ = 1 ; ADC1
;.equ = 0 ; ADC0
.equ INIT_PC = 0
.equ DIR_PC = 0
.MACRO Comp_Init
in @0, SFIOR ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
out SFIOR, @0
cbi ADCSRA, ADEN ; Disable ADC
.ENDMACRO
.MACRO Set_Comp_Phase_A
ldi @0, Mux_A ; Set comparator multiplexer to phase A
out ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_B
ldi @0, Mux_B ; Set comparator multiplexer to phase B
out ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_C
ldi @0, Mux_C ; Set comparator multiplexer to phase C
out ADMUX, @0
.ENDMACRO
.MACRO Read_Comp_Out
in @0, ACSR ; Read comparator output
.ENDMACRO
;*********************
; PORT B definitions *
;*********************
;.equ = 7
;.equ = 6
;.equ = 5 (sck stk200 interface)
.equ DebugPin = 4 ;(miso stk200 interface)
;.equ = 3 (mosi stk200 interface)
.equ AnFET = 2
.equ CnFET = 1
.equ BnFET = 0
.equ INIT_PB = 0
.equ DIR_PB = (1<<DebugPin)+(1<<AnFET)+(1<<BnFET)+(1<<CnFET)
.MACRO AnFET_on
sbi PORTB,2
.ENDMACRO
.MACRO AnFET_off
cbi PORTB,2
.ENDMACRO
.MACRO CnFET_on
sbi PORTB,1
.ENDMACRO
.MACRO CnFET_off
cbi PORTB,1
.ENDMACRO
.MACRO BnFET_on
sbi PORTB,0
.ENDMACRO
.MACRO BnFET_off
cbi PORTB,0
.ENDMACRO
.MACRO All_nFETs_Off
in @0, PORTB
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET)
out PORTB, @0
.ENDMACRO
;**********************
; MCU specific macros *
;**********************
.MACRO Disable_Watchdog
cli ; Disable interrupts
wdr ; Reset watchdog timer
in @0, WDTCR ; Write logical one to WDCE and WDE
ori @0, (1<<WDCE)|(1<<WDE)
out WDTCR, @0
ldi @0, (0<<WDE) ; Turn off WDT
out WDTCR, @0
.ENDMACRO
.MACRO Enable_Watchdog
ldi @0, (1<<WDE) ; Turn on WDT
sts WDTCR, @0
.ENDMACRO
.MACRO Initialize_MCU
.ENDMACRO
.MACRO Interrupt_Table_Definition
rjmp reset
rjmp ext_int0 ; ext_int0
nop ; ext_int1
nop ; t2oc_int
rjmp t2ovfl_int; t2ovfl_int
nop ; icp1_int
rjmp t1oca_int ; t1oca_int
nop ; t1ocb_int
rjmp t1ovfl_int; t1ovfl_int
rjmp t0ovfl_int; t0ovfl_int
nop ; spi_int
nop ; urxc
nop ; udre
nop ; utxc
; nop ; adc_int
; nop ; eep_int
; nop ; aci_int
; nop ; wire2_int
; nop ; spmc_int
.ENDMACRO
.MACRO Initialize_Interrupts
ldi Temp1, (1<<TOIE0)+(1<<TOIE1)+(1<<OCIE1A)+(1<<TOIE2)
out TIFR, Temp1 ; Clear interrupts
out TIMSK, Temp1 ; Enable interrupts
.ENDMACRO
.MACRO Initialize_Adc
in Temp1, ADCSRA ; Set ADCSRA register (1MHz clock)
sbr Temp1, (1<<ADPS1)
sbr Temp1, (1<<ADPS0)
out ADCSRA, Temp1
.ENDMACRO
.MACRO Start_Adc
ldi Temp1, (1<<REFS1)+(1<<REFS0)
out ADMUX, Temp1 ; Set ADMUX register (2.56V reference, left adj result, input 0)
in @0, ADCSRA
sbr @0, (1<<ADEN) ; Enable ADC
sbr @0, (1<<ADSC) ; Start ADC conversion
out ADCSRA, @0
.ENDMACRO
.MACRO Get_Adc_Status
in @0, ADCSRA
.ENDMACRO
.MACRO Read_Adc_Result
in @0, ADCL
in @1, ADCH
.ENDMACRO
.MACRO Stop_Adc
in @0, ADCSRA
cbr @0, (1<<ADEN) ; Disable ADC
out ADCSRA, @0
.ENDMACRO
.MACRO Set_Timer0_CS0
out TCCR0, @0
.ENDMACRO
.MACRO Set_Timer1_CS1
out TCCR1B, @0
.ENDMACRO
.MACRO Set_Timer2_CS2
out TCCR2, @0
.ENDMACRO
.MACRO Read_TCNT1L
in @0, TCNT1L
.ENDMACRO
.MACRO Read_TCNT1H
in @0, TCNT1H
.ENDMACRO
.MACRO Set_OCR1AL
out OCR1AL, @0
.ENDMACRO
.MACRO Set_OCR1AH
out OCR1AH, @0
.ENDMACRO
.MACRO Set_TCNT2
out TCNT2, @0
.ENDMACRO
.MACRO Check_Eeprom_Ready
sbic EECR, EEWE
.ENDMACRO
.MACRO Set_Eeprom_Address
out EEARL, @0
out EEARH, @1
.ENDMACRO
.MACRO Start_Eeprom_Write
sbi EECR, EEMWE
sbi EECR, EEWE
.ENDMACRO

352
Atmel/HC5A1SA48V.inc

@ -1,352 +0,0 @@
;**** **** **** **** ****
;
; BLHeli program for controlling brushless motors in helicopters
;
; Copyright 2011, 2012 Steffen Skaug
; This program is distributed under the terms of the GNU General Public License
;
; This file is part of BLHeli.
;
; BLHeli is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; BLHeli is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>.
;
;**** **** **** **** ****
;*********************
; Device Atmega48V
;*********************
.include "m48def.inc"
.equ ICP = 0 ; Choose input pin. Set to 0 for INT0 (pin32) and 1 for ICP1 (pin12)
;**** **** **** **** ****
; Fuses must be set to internal calibrated oscillator = 8Mhz
;**** **** **** **** ****
;**** **** **** **** ****
; Constant definitions
;**** **** **** **** ****
.equ ADC_LIMIT_L = 254 ; Power supply measurement ADC value for which main motor power is limited (low byte)
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs)
;*********************
; PORT D definitions *
;*********************
.equ Mux_A = 7 ;i Phase A input
.equ Comp_Com = 6 ;i Comparator common input (AIN0)
;.equ = 5
;.equ = 4
.equ ApFET = 3 ;o
.equ Rcp_In = 2 ;i RC pulse input
.equ BpFET = 1 ;o
.equ CpFET = 0 ;o
.equ INIT_PD = 0
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
.MACRO Read_Rcp_Int
in @0, PIND
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Read_Rcp_Icp_Int
in @0, PINB
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Rcp_Int_Enable
ldi @0, (1<<INT0) ; Enable ext0int
out EIMSK, @0
.ENDMACRO
.MACRO Rcp_Int_Disable
ldi @0, 0 ; Disable ext0int
out EIMSK, @0
.ENDMACRO
.MACRO Rcp_Int_First
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sts EICRA, @0
.ENDMACRO
.MACRO Rcp_Int_Second
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sts EICRA, @0
.ENDMACRO
.MACRO Clear_Int_Flag
clr @0
sbr @0, (1<<INTF0) ; Clear ext0int flag
out EIFR, @0
.ENDMACRO
.MACRO ApFET_on
sbi PORTD,3
.ENDMACRO
.MACRO ApFET_off
cbi PORTD,3
.ENDMACRO
.MACRO BpFET_on
sbi PORTD,1
.ENDMACRO
.MACRO BpFET_off
cbi PORTD,1
.ENDMACRO
.MACRO CpFET_on
sbi PORTD,0
.ENDMACRO
.MACRO CpFET_off
cbi PORTD,0
.ENDMACRO
.MACRO All_pFETs_Off
in @0, PORTD
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
.MACRO All_pFETs_On
in @0, PORTD
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
;*********************
; PORT C definitions *
;*********************
;.equ = 7 ; ADC7
;.equ = 6 ; ADC6
;.equ = 5 ; ADC5
;.equ = 4 ; ADC4
.equ Mux_B = 3 ; Phase B input
.equ Mux_C = 2 ; Phase C input
;.equ = 1 ; ADC1
;.equ = 0 ; ADC0
.equ INIT_PC = 0
.equ DIR_PC = 0
.MACRO Comp_Init
lds @0, ADCSRA ; Disable ADC
cbr @0, (1<<ADEN)
sts ADCSRA, @0
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
.ENDMACRO
.MACRO Set_Comp_Phase_A
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Disable
cbr @0, (1<<ACME)
sts ADCSRB, @0
.ENDMACRO
.MACRO Set_Comp_Phase_B
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
ldi @0, Mux_B ; Set comparator multiplexer to phase B
sts ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_C
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
ldi @0, Mux_C ; Set comparator multiplexer to phase C
sts ADMUX, @0
.ENDMACRO
.MACRO Read_Comp_Out
in @0, ACSR ; Read comparator output
.ENDMACRO
;*********************
; PORT B definitions *
;*********************
;.equ = 7
;.equ = 6
;.equ = 5 (sck stk200 interface)
.equ DebugPin = 4 ;(miso stk200 interface)
;.equ = 3 (mosi stk200 interface)
.equ CnFET = 2 ;o
.equ BnFET = 1 ;o
.equ AnFET = 0 ;o
.equ INIT_PB = 0
.equ DIR_PB = (1<<AnFET)+(1<<BnFET)+(1<<CnFET)+(1<<DebugPin)
.MACRO AnFET_on
sbi PORTB,0
.ENDMACRO
.MACRO AnFET_off
cbi PORTB,0
.ENDMACRO
.MACRO BnFET_on
sbi PORTB,1
.ENDMACRO
.MACRO BnFET_off
cbi PORTB,1
.ENDMACRO
.MACRO CnFET_on
sbi PORTB,2
.ENDMACRO
.MACRO CnFET_off
cbi PORTB,2
.ENDMACRO
.MACRO All_nFETs_Off
in @0, PORTB
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET)
out PORTB, @0
.ENDMACRO
;**********************
; MCU specific macros *
;**********************
.MACRO Disable_Watchdog
cli ; Disable interrupts
wdr ; Reset watchdog timer
in @0, MCUSR ; Clear WDRF in MCUSR
andi @0, (0xff & (0<<WDRF))
out MCUSR, @0
lds @0, WDTCSR ; Write logical one to WDCE and WDE
ori @0, (1<<WDCE) | (1<<WDE)
sts WDTCSR, @0
ldi @0, (0<<WDE) ; Turn off WDT
sts WDTCSR, @0
.ENDMACRO
.MACRO Enable_Watchdog
ldi @0, (1<<WDE) ; Turn on WDT
sts WDTCSR, @0
.ENDMACRO
.MACRO Initialize_MCU
ldi @0, (1<<CLKPCE) ; Set clock prescaler change enable
sts CLKPR, @0
ldi @0, 0 ; Change clock prescaler (to divide by 1)
sts CLKPR, @0
.ENDMACRO
.MACRO Interrupt_Table_Definition
rjmp reset
rjmp ext_int0 ; ext_int0
nop ; ext_int1
nop ; pci0_int
nop ; pci1_int
nop ; pci2_int
nop ; wdt_int
nop ; t2oca_int
nop ; t2ocb_int
rjmp t2ovfl_int; t2ovfl_int
rjmp icp1_int ; icp1_int
rjmp t1oca_int ; t1oca_int
nop ; t1ocb_int
rjmp t1ovfl_int; t1ovfl_int
nop ; t0oca_int
nop ; t0ocb_int
rjmp t0ovfl_int; t0ovfl_int
nop ; spi_int
nop ; urxc
nop ; udre
nop ; utxc
; nop ; adc_int
; nop ; eep_int
; nop ; aci_int
; nop ; wire2_int
; nop ; spmc_int
.ENDMACRO
.MACRO Initialize_Interrupts
ldi Temp1, (1<<TOIE0)
out TIFR0, Temp1 ; Clear interrupts
sts TIMSK0, Temp1 ; Enable interrupts
ldi Temp1, (1<<TOIE1)+(1<<OCIE1A)
out TIFR1, Temp1 ; Clear interrupts
sts TIMSK1, Temp1 ; Enable interrupts
ldi Temp1, (1<<TOIE2)
out TIFR2, Temp1 ; Clear interrupts
sts TIMSK2, Temp1 ; Enable interrupts
.ENDMACRO
.MACRO Initialize_Adc
lds Temp1, ADCSRA ; Set ADCSRA register (1MHz clock)
sbr Temp1, (1<<ADPS1)
sbr Temp1, (1<<ADPS0)
sts ADCSRA, Temp1
.ENDMACRO
.MACRO Start_Adc
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0)
sts ADMUX, Temp1 ; Set ADMUX register (1.1V reference, left adj result, input 7)
lds @0, ADCSRA
sbr @0, (1<<ADEN) ; Enable ADC
sbr @0, (1<<ADSC) ; Start ADC conversion
sts ADCSRA, @0
.ENDMACRO
.MACRO Get_Adc_Status
lds @0, ADCSRA
.ENDMACRO
.MACRO Read_Adc_Result
lds @0, ADCL
lds @1, ADCH
.ENDMACRO
.MACRO Stop_Adc
lds @0, ADCSRA
cbr @0, (1<<ADEN) ; Disable ADC
sts ADCSRA, @0
.ENDMACRO
.MACRO Set_Timer0_CS0
out TCCR0B, @0
.ENDMACRO
.MACRO Set_Timer1_CS1
sts TCCR1B, @0
.ENDMACRO
.MACRO Set_Timer2_CS2
sts TCCR2B, @0
.ENDMACRO
.MACRO Read_TCNT1L
lds @0, TCNT1L
.ENDMACRO
.MACRO Read_TCNT1H
lds @0, TCNT1H
.ENDMACRO
.MACRO Read_ICR1L
lds @0, ICR1L
.ENDMACRO
.MACRO Read_ICR1H
lds @0, ICR1H
.ENDMACRO
.MACRO Set_OCR1AL
sts OCR1AL, @0
.ENDMACRO
.MACRO Set_OCR1AH
sts OCR1AH, @0
.ENDMACRO
.MACRO Set_TCNT2
sts TCNT2, @0
.ENDMACRO
.MACRO Check_Eeprom_Ready
sbic EECR, EEPE
.ENDMACRO
.MACRO Set_Eeprom_Address
out EEARL, @0
.ENDMACRO
.MACRO Start_Eeprom_Write
sbi EECR, EEMPE
sbi EECR, EEPE
.ENDMACRO

357
Atmel/HC5A1SA8.inc

@ -1,357 +0,0 @@
;**** **** **** **** ****
;
; BLHeli program for controlling brushless motors in helicopters
;
; Copyright 2011, 2012 Steffen Skaug
; This program is distributed under the terms of the GNU General Public License
;
; This file is part of BLHeli.
;
; BLHeli is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; BLHeli is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>.
;
;**** **** **** **** ****
;*********************
; Device Atmega8
;*********************
.include "m8def.inc"
.equ ICP = 0 ; Choose input pin. Set to 0 for INT0 (pin32) and 1 for ICP1 (pin12)
;**** **** **** **** ****
; Fuses must be set to internal calibrated oscillator = 8Mhz
;**** **** **** **** ****
;**** **** **** **** ****
; Constant definitions
;**** **** **** **** ****
.equ ADC_LIMIT_L = 45 ; Power supply measurement ADC value for which main motor power is limited (low byte)
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs)
;*********************
; PORT D definitions *
;*********************
.equ BpFET = 7 ;o
.equ Comp_Com = 6 ;i Comparator common input (AIN0)
.equ CpFET = 5 ;o
.equ ApFET = 4 ;o
.equ AnFET = 3 ;o
.equ Rcp_In = 2 ;i RC pulse input
.equ BnFET = 1 ;o
.equ CnFET = 0 ;o
.equ INIT_PD = 0
.equ DIR_PD = (1<<AnFET)+(1<<BnFET)+(1<<CnFET)+(1<<ApFET)+(1<<BpFET)+(1<<CpFET)
.MACRO Read_Rcp_Int
in @0, PIND
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Read_Rcp_Icp_Int
in @0, PINB
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Rcp_Int_Enable
ldi @0, (1<<INT0) ; Enable ext0int
out GICR, @0
.ENDMACRO
.MACRO Rcp_Int_Disable
ldi @0, 0 ; Disable ext0int
out GICR, @0
.ENDMACRO
.MACRO Rcp_Int_First
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
out MCUCR, @0
.ENDMACRO
.MACRO Rcp_Int_Second
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
out MCUCR, @0
.ENDMACRO
.MACRO Clear_Int_Flag
clr @0
sbr @0, (1<<INTF0) ; Clear ext0int flag
out GIFR, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Enable
in @0, TIMSK
sbr @0, (1<<TICIE1) ; Enable icp1int
out TIMSK, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Disable
in @0, TIMSK
cbr @0, (1<<TICIE1) ; Disable icp1int
out TIMSK, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_First
in @0, TCCR1B
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge
out TCCR1B, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Second
in @0, TCCR1B
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge
out TCCR1B, @0
.ENDMACRO
.MACRO Clear_Icp_Int_Flag
clr @0
sbr @0, (1<<ICF1) ; Clear icp1int flag
out TIFR, @0
.ENDMACRO
.MACRO AnFET_on
sbi PORTD,3
.ENDMACRO
.MACRO AnFET_off
cbi PORTD,3
.ENDMACRO
.MACRO BnFET_on
sbi PORTD,1
.ENDMACRO
.MACRO BnFET_off
cbi PORTD,1
.ENDMACRO
.MACRO CnFET_on
sbi PORTD,0
.ENDMACRO
.MACRO CnFET_off
cbi PORTD,0
.ENDMACRO
.MACRO All_nFETs_Off
in @0, PORTD
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET)
out PORTD, @0
.ENDMACRO
.MACRO ApFET_on
sbi PORTD,4
.ENDMACRO
.MACRO ApFET_off
cbi PORTD,4
.ENDMACRO
.MACRO BpFET_on
sbi PORTD,7
.ENDMACRO
.MACRO BpFET_off
cbi PORTD,7
.ENDMACRO
.MACRO CpFET_on
sbi PORTD,5
.ENDMACRO
.MACRO CpFET_off
cbi PORTD,5
.ENDMACRO
.MACRO All_pFETs_Off
in @0, PORTD
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
.MACRO All_pFETs_On
in @0, PORTD
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
;*********************
; PORT C definitions *
;*********************
;.equ = 7 ; ADC7
;.equ = 6 ; ADC6
;.equ = 5 ; ADC5
.equ Mux_A = 4 ; Phase A input
.equ Mux_B = 3 ; Phase B input
.equ Mux_C = 2 ; Phase C input
;.equ = 1 ; ADC1
;.equ = 0 ; ADC0
.equ INIT_PC = 0
.equ DIR_PC = 0
.MACRO Comp_Init
in @0, SFIOR ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
out SFIOR, @0
cbi ADCSRA, ADEN ; Disable ADC
.ENDMACRO
.MACRO Set_Comp_Phase_A
ldi @0, Mux_A ; Set comparator multiplexer to phase A
out ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_B
ldi @0, Mux_B ; Set comparator multiplexer to phase B
out ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_C
ldi @0, Mux_C ; Set comparator multiplexer to phase C
out ADMUX, @0
.ENDMACRO
.MACRO Read_Comp_Out
in @0, ACSR ; Read comparator output
.ENDMACRO
;*********************
; PORT B definitions *
;*********************
;.equ = 7
;.equ = 6
;.equ = 5 (sck stk200 interface)
.equ DebugPin = 4 ;(miso stk200 interface)
;.equ = 3 (mosi stk200 interface)
;.equ = 2
;.equ = 1
.equ Rcp_Icp_In = 0
.equ INIT_PB = 0
.equ DIR_PB = (1<<DebugPin)
;**********************
; MCU specific macros *
;**********************
.MACRO Disable_Watchdog
cli ; Disable interrupts
wdr ; Reset watchdog timer
in @0, WDTCR ; Write logical one to WDCE and WDE
ori @0, (1<<WDCE)|(1<<WDE)
out WDTCR, @0
ldi @0, (0<<WDE) ; Turn off WDT
out WDTCR, @0
.ENDMACRO
.MACRO Enable_Watchdog
ldi @0, (1<<WDE) ; Turn on WDT
sts WDTCR, @0
.ENDMACRO
.MACRO Initialize_MCU
.ENDMACRO
.MACRO Interrupt_Table_Definition
rjmp reset
rjmp ext_int0 ; ext_int0
nop ; ext_int1
nop ; t2oc_int
rjmp t2ovfl_int; t2ovfl_int
rjmp icp1_int ; icp1_int
rjmp t1oca_int ; t1oca_int
nop ; t1ocb_int
rjmp t1ovfl_int; t1ovfl_int
rjmp t0ovfl_int; t0ovfl_int
nop ; spi_int
nop ; urxc
nop ; udre
nop ; utxc
; nop ; adc_int
; nop ; eep_int
; nop ; aci_int
; nop ; wire2_int
; nop ; spmc_int
.ENDMACRO
.MACRO Initialize_Interrupts
ldi Temp1, (1<<TOIE0)+(1<<TOIE1)+(1<<OCIE1A)+(1<<TOIE2)
out TIFR, Temp1 ; Clear interrupts
out TIMSK, Temp1 ; Enable interrupts
.ENDMACRO
.MACRO Initialize_Adc
in Temp1, ADCSRA ; Set ADCSRA register (1MHz clock)
sbr Temp1, (1<<ADPS1)
sbr Temp1, (1<<ADPS0)
out ADCSRA, Temp1
.ENDMACRO
.MACRO Start_Adc
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0)
out ADMUX, Temp1 ; Set ADMUX register (2.56V reference, left adj result, input 7)
in @0, ADCSRA
sbr @0, (1<<ADEN) ; Enable ADC
sbr @0, (1<<ADSC) ; Start ADC conversion
out ADCSRA, @0
.ENDMACRO
.MACRO Get_Adc_Status
in @0, ADCSRA
.ENDMACRO
.MACRO Read_Adc_Result
in @0, ADCL
in @1, ADCH
.ENDMACRO
.MACRO Stop_Adc
in @0, ADCSRA
cbr @0, (1<<ADEN) ; Disable ADC
out ADCSRA, @0
.ENDMACRO
.MACRO Set_Timer0_CS0
out TCCR0, @0
.ENDMACRO
.MACRO Set_Timer1_CS1
out TCCR1B, @0
.ENDMACRO
.MACRO Set_Timer2_CS2
out TCCR2, @0
.ENDMACRO
.MACRO Read_TCNT1L
in @0, TCNT1L
.ENDMACRO
.MACRO Read_TCNT1H
in @0, TCNT1H
.ENDMACRO
.MACRO Read_ICR1L
in @0, ICR1L
.ENDMACRO
.MACRO Read_ICR1H
in @0, ICR1H
.ENDMACRO
.MACRO Set_OCR1AL
out OCR1AL, @0
.ENDMACRO
.MACRO Set_OCR1AH
out OCR1AH, @0
.ENDMACRO
.MACRO Set_TCNT2
out TCNT2, @0
.ENDMACRO
.MACRO Check_Eeprom_Ready
sbic EECR, EEWE
.ENDMACRO
.MACRO Set_Eeprom_Address
out EEARL, @0
out EEARH, @1
.ENDMACRO
.MACRO Start_Eeprom_Write
sbi EECR, EEMWE
sbi EECR, EEWE
.ENDMACRO

251
Atmel/Hex files/Feigao6.main.hex

@ -1,251 +0,0 @@
:020000020000FC
:1000000002C60CC0000000000EC10000E6C00000E7
:10001000E8C09AC000000000000000001FB64CB508
:100020005DB591FD23C097FF62E097FD63E065BF7A
:100030009260C0B297FDC094C2FE03C0742E852E9C
:100040007EC097FF63E097FD62E065BF662760644E
:100050006ABF9D7F40E050E0C0B297FDC094C2FCF3
:1000600067C050937C0040937B0062C097FF63E0C1
:1000700097FD62E065BF9D7F83FF3BC097FF62E015
:1000800097FD63E065BF662760646ABF9260409336
:10009000790050937A0060917700B0907800461B09
:1000A0005B09B02C443B60E0560720F46627606291
:1000B000B62E17C0483661E0560720F46627606107
:1000C000B62E0FC0403D62E0560720F466276860F8
:1000D000B62E07C0403A65E0560718F466276460FC
:1000E000B62E4091790050917A004093770050935A
:1000F00078004719580995FD09C094FD09C0569527
:10010000479593FD05C05695479502C0440F551F6E
:100110004A3F500508F04AEF50917B0050937C0015
:1001200040937B0083FF04C06CE3609596239B297A
:1001300040E2D42E916083FD02C050E05BBF50E1ED
:10014000E52E1FBE189518951FB6DD2011F0DA9424
:100150001EC040E050E060B397FD609562FD4AEF3D
:1001600097FF63E097FD62E065BF662760646ABF42
:100170009D7F60B397FD609562FD5AEF451749F783
:1001800050E2D52E40937C0040937B009160EE209E
:1001900011F0EA9405C050E45BBF552750645ABF84
:1001A00090FF19C050917C0040917B0095FD450F58
:1001B00095FD47959E7F50918A00451710F4409118
:1001C0008A00572F507F552331F4242E4091880008
:1001D000433008F0422C1FBE18951FB67E7F1FBE0D
:1001E00018951FB652E040917B00415018F00092E4
:1001F0007E0009C040917E004F3F29F040917E0073
:10020000439540937E0060918800623011F4209005
:100210006D00321431F010F03A9401C033945A95C5
:1002200091F71FBE18951FB6601421F064BC6624B8
:100230001FBE189581FF0994452D089496FF440F21
:1002400010F0642E40E044BD58B18D7F652D6A3FAB
:1002500070F448B3487F48BB82FF09C042E04A952A
:10026000F1F742B3486342BB816055FF8E7F1FBEEA
:100270001895826042C0C098C29A82603EC0C19800
:10028000C09A82603AC0C298C19A826036C04FE07C
:10029000959894984A95E1F7C098C29A82602DC0CB
:1002A0004FE0959893984A95E1F7C098C29A82607A
:1002B00024C04FE0939895984A95E1F7C198C09A69
:1002C00082601BC04FE0939894984A95E1F7C198DB
:1002D000C09A826012C04FE0949893984A95E1F7D3
:1002E000C298C19A826009C04FE0949895984A9547
:1002F000E1F7C298C19A826000C0452D40950894EC
:1003000096FF440F10F0642E40E044BD1FBE1895C8
:100310000000089521E00AC023E008C02AE006C0DA
:100320002EE104C024E602C028EC00C014E000EC7A
:10033000EFDF0A95E9F71A95D1F72A95B9F70895ED
:1003400035E120E509C032E124E606C03FE028E7B8
:1003500003C03CE02CE800C0939A06E90A95F1F747
:100360000CE0C29AD5DF0A95E9F7C29810E4032F92
:10037000CFDF0A95E9F71A95D1F72A9569F793988F
:10038000089500918800033008F028C000916300B0
:100390001091640022E00038120770F0422C0092A5
:1003A000650000926600009267000092680000926B
:1003B000690000926E0012C0232D2095221F221F7B
:1003C000322F2795317033952E7F2054300920939A
:1003D00065003093660001E000936E00089500917F
:1003E0006E000015E1F0009165001091660020910B
:1003F000630030916400021B130B2FEF00381207CB
:1004000044F020E00F3712070CF405C00FE710E0AE
:1004100002C000E81FEF00936A0010936B0008957C
:1004200000916E00001581F1209167003091680005
:100430009090690000916A0010916B00200F311FAD
:10044000911E10EF91164CF01FE091160CF409C0AC
:100450002FEF3FEF1FE0912E04C020E030E010EFBF
:10046000912E10917F004116142D18F4113020F0B8
:1004700005C000234AF002C0002332F42093670035
:100480003093680090926900089500916E00001505
:10049000E9F100916A00112707FD1095000F111F67
:1004A0003091860030FD05C0343089F015950795F0
:1004B0000EC0A12E902EA5949794090D1A1D3530CB
:1004C00031F015950795333011F0159507952FEFFD
:1004D0000038120744F020E00F3712070CF405C073
:1004E0000FE710E002C000E81FEF232D00233AF0D1
:1004F000201B18F0213008F007C021E005C001954D
:10050000200F08F001C02FEF20936C000895009198
:100510006E000015D9F110916800209169003091AA
:10052000870030FD05C0343089F0259517950EC041
:10053000A22E912EA5949794190D2A1D353031F0D5
:1005400025951795333011F0259517950FEF10303D
:10055000200744F000E01F3F20070CF405C01FEF08
:1005600020E002C010E02FEF00916C0022233AF04F
:10057000011B18F0013008F008C001E006C010951A
:100580001395010F08F001C00FEF402E089500EC05
:1005900007B906B10068006406B926B126FDF7CF99
:1005A00004B115B126B12F7726B923ED2093810030
:1005B00020E02093820021E02093800023ED30E0B2
:1005C000220F331F02171307C8F0209381003093C6
:1005D000820022E02093800023ED30E0922EA32EB3
:1005E000220F331F290D3A1D0217130738F02093ED
:1005F00081003093820023E020938000089500EC76
:1006000007B906B10068006406B9089526B126FD51
:10061000FDCF04B115B126B12F7726B90F3F23E0E6
:10062000120778F42091810030918200021713079D
:1006300040F400917F00002359F00A9500937F0059
:1006400007C000917F000F3F19F0039500937F00D2
:10065000401608F4042D502E089574FD02E375FD34
:1006600000E576FD00E577FD08E2172F107F1123E6
:1006700099F020918B00233061F0102F169520FD0A
:1006800001C0169522FD02C0011B03C0010F08F432
:100690000FEF202E402E502E0895C8EBDBE0C093C4
:1006A0007500D09376002FEF3FE1209373003093D5
:1006B000740020936F003093700036952795209337
:1006C0007100309372001FEF109364000FEF0093DE
:1006D00063000895C0917500D091760004C0C09168
:1006E0006F00D0917000F8940CB51DB5C00FD11FEC
:1006F000DBBDCABD789471602091610030916200C9
:100700000093610010936200021B130B20916300A1
:1007100030916400E901D695C795D695C7952C1BF5
:100720003D0B200F311F209363003093640008F0CD
:1007300008951FEF109364000FEF00936300089576
:1007400070FDFECFC0917100D0917200F8940CB58D
:100750001DB50C0F1D1F1BBD0ABD78947160089557
:100760000091630010916400169507951695079502
:1007700016950795169507950550100918F0053040
:10078000100510F405E01127009373001093740016
:1007900000936F00109370001695079500937100F9
:1007A00010937200089570FDFECFC0916300D09148
:1007B0006400F8940CB51DB50C0F1D1F1BBD0ABDC0
:1007C000789471600895789470FF089582FD01C057
:1007D00004C080FDF8CF7894089506E0252D20957B
:1007E0002295269527702395F8940A95F1F718B16C
:1007F00015FDE9CF2A95D9F778940895789470FF7C
:10080000089582FD01C004C080FFF8CF7894089558
:1008100006E0252D20952295269527702395F8949E
:100820000A95F1F718B115FFE9CF2A95D9F7789411
:100830000895C0917300D0917400F8940CB51DB563
:100840000C0F1D1F1BBD0ABD78947160089570FDCB
:10085000FECF0895F894ABE6B1E0FD019398959A28
:1008600002E007B978940895F894A2E6B1E0FD019A
:10087000C19881FDC09A04E007B978940895F8946E
:10088000A9E5B1E0FD019598949A05E007B978943F
:100890000895F894A0E5B1E0FD01C09881FDC29AE9
:1008A00002E007B978940895F894A7E4B1E0FD0157
:1008B0009498939A04E007B978940895F894A4E77B
:1008C000B1E0FD01C29881FDC19A05E007B97894B5
:1008D0000895F8949398959A02E007B9789408954A
:1008E000F894AFE3B1E0FD01C19881FDC09A04E046
:1008F00007B978940895F8949598949A05E007B903
:1009000078940895F894ABE3B1E0FD01C09881FDBF
:10091000C29A02E007B978940895F8949498939A4B
:1009200004E007B978940895F894A3E4B1E0FD01D8
:10093000C29881FDC19A05E007B978940895A9E3AA
:10094000B1E0FD0108B3087F08BB02B3077C02BB1E
:1009500008950091750010917600083E23E012077B
:1009600008F408950091750010917600055010402C
:100970000093750010937600089570FDFECF0895E2
:1009800004E00093860004E00093870001E00093F8
:10099000880003E000938B0090649F770895E199AD
:1009A000FECF1EBB2FBBE09A0DB30895E199FECF99
:1009B0000DBB1EBB2FBBF894E29AE19A7894089580
:1009C00018E020E00FEFF2DF19E020E00FEFEEDF9C
:1009D000089518E020E005EAE9DF19E020E00AE5E3
:1009E000E5DF089518E020E0DADF053A31F519E097
:1009F00020E0D5DF0A3509F510E020E0D0DF0093D4
:100A0000860011E020E0CBDF0093870012E020E0B9
:100A1000C6DF0093880015E020E0C1DF00938B0063
:100A200016E020E0BCDF906401FD9F7B17E020E032
:100A3000B6DF9F7701FD906802C0A2DF01D0089564
:100A4000BFDF01E0009383000091860000938400E3
:100A50002CD002E000938300009187000093840073
:100A600024D003E000938300009188000093840069
:100A70001CD004E00093830000918B00009384005D
:100A800014D005E00093830001E096FF02E000939C
:100A900084000BD006E00093830001E097FD02E0A4
:100AA0000093840002D095DF089530918300009177
:100AB0008400313051F0323061F0333071F0343035
:100AC00081F0353091F03630A1F010E020E06EDF9B
:100AD00014C011E020E06ADF10C012E020E066DF01
:100AE0000CC015E020E062DF08C016E020E05EDF09
:100AF00004C017E020E05ADF00C0089505E0902E02
:100B000013DC9A94E9F70895F8941ADC1CDC1EDCD7
:100B100020DC04DC15DC17DC19DC1BDCFFDB10DC63
:100B200012DC14DC16DC7894089590908300A09079
:100B30008400F89405DC04DC03DCF0DB9A94D1F744
:100B400008DCECDBAA94E1F778940895F89401DCD2
:100B50007894E8DB00917B000130C0F7F894F0DB7B
:100B6000DDDBEEDB7894DEDB00917B000A3FB0F347
:100B7000CBDFC4DFC3DF01E00093830001E000931B
:100B8000840000E000938500D0DF05E0902ECCDBF0
:100B900000917B00013040F413DF87DF1ADFB4DF00
:100BA00008E000932100AADF9A9489F7009185005C
:100BB000039500938500033008F4E6CF9FDF009192
:100BC000840003950093840015E0009183000330B6
:100BD00009F413E000918300053008F012E013954A
:100BE00000918400011708F4CCCF88DF87DF0091E3
:100BF0008300039500938300073008F4BFCF08E01B
:100C0000009321007BDFF894A89501B5086101BD30
:100C100000E001BD04E00EBF0FE50DBF90DE00E077
:100C200008BB07E107BB00E005BB00E004BB00E038
:100C300002BB08E301BB0024A0E0B0E00D92AA31A2
:100C4000E9F7A0E6B0E004E60D920A95E9F777DE51
:100C500002E003BF02E00EBD01E005BD91DEC2DE91
:100C600063DB6EDB5DDB6FDB5BDB70DB59DB05E5DC
:100C700008BF09BF06B10260016006B9789487DC3D
:100C800097FF03E097FD02E005BF00E40BBF0027DC
:100C900000640ABF9D7F48DB3FDB00917B00013091
:100CA000D8F742DB886015E0912E36DB90FFFECF4F
:100CB00000917B000230B8F3292F2C7330917D0016
:100CC00020937D00231779F79A9479F7877F97FF10
:100CD00003E097FD02E005BF002700640ABF9D7F87
:100CE000F8942EDB2DDB2CDB78941EDB00926D005C
:100CF00013DB00917B000A3F08F028CF10916D00B4
:100D0000011710F000936D00013090F7F89421DB8B
:100D100020DB1FDB789408DBFFDA00917B000130D9
:100D2000D8F30DDE22243324442455240FEF0093FE
:100D30007F000092650000926600009267000092BA
:100D400068000092690000926E0077278827009261
:100D50007E0000B7086000BF37989FDC8460706138
:100D60007CDCACDDD7DA76DDD5DAD4DA7DDDD4DA39
:100D700086DDD2DAD1DA8DDDD1DA96DDCDDACADAE6
:100D80007F7E70626ADC9ADDA5DCEADCE2DDF5DDFF
:100D900061DDA0DCE5DCDDDDF0DD66DD9BDCE0DCDB
:100DA000D8DDEBDD6CDD96DCDBDCD3DDE6DD71DD93
:100DB00091DCD6DCCEDDE1DD77DD8CDCD1DCC9DD9C
:100DC0000091750010917600083E23E0120710F0A4
:100DD000D4DDD9CF7F7D706440DC02E000936000F9
:100DE000CCDD6CDD77DCBCDCB4DDC7DD33DD72DC93
:100DF000B7DCAFDDC2DD38DD6DDCB2DCAADDBDDD28
:100E00003EDD68DCADDCA5DDB8DD43DD63DCA8DC00
:100E1000A0DDB3DD49DD5EDCA3DC9BDD009160007D
:100E20000A9521F000936000A8DDDBCF7F7B70681E
:100E300014DCA3DD43DD53DC83DC92DCB4DC01E0B5
:100E400000936000C0DC70FF97C0F3DC00DD02DDC2
:100E500046DC76DC85DCA7DCD1DC70FF8DC0E9DC0C
:100E6000F6DC02DD3CDC6CDC7BDC9DDCACDC70FFAA
:100E700083C0DFDCECDC03DD32DC62DC71DC93DCC4
:100E8000BDDC70FF79C0D5DCE2DC03DD28DC58DC9A
:100E900067DC89DC98DC70FF6FC0CBDCD8DC04DD5C
:100EA0001EDC4EDC5DDC7FDCA9DC70FF65C0C1DCD4
:100EB000CEDC04DD14DC44DC53DC75DC0091600026
:100EC0000A9519F000936000BDCFF8948B7F02B3B0
:100ED000077C02BB939AA3E4B1E0FD01789473DC34
:100EE00070FF4AC0A6DC4DDAB2DCF3DCF8DB28DCAC
:100EF00037DC59DC83DC70FF3FC09BDC70DAA7DC99
:100F0000EFDCEDDB1DDC2CDC4EDC5DDC70FF34C087
:100F100090DC86DA9CDCEFDCE2DB12DC21DC43DCFB
:100F20006DDC70FF29C085DCB0DA91DCEBDCD7DB4F
:100F300007DC16DC38DC47DC70FF1EC07ADCE7DA41
:100F400086DCEBDCCCDBFCDB0BDC2DDC57DC57DBA5
:100F500070FF12C06EDC5ADB7ADCE6DCC0DBF0DB53
:100F6000FFDB21DC7F7700917E00013028F40091C7
:100F7000640007FD09F4B3CFE2DC222433244424C7
:040F8000552491CE95
:00000001FF

251
Atmel/Hex files/Feigao6.tail.hex

@ -1,251 +0,0 @@
:020000020000FC
:1000000002C60CC0000000000EC10000E6C00000E7
:10001000E8C09AC000000000000000001FB64CB508
:100020005DB591FD23C097FF62E097FD63E065BF7A
:100030009260C0B297FDC094C2FE03C0742E852E9C
:100040007EC097FF63E097FD62E065BF662760644E
:100050006ABF9D7F40E050E0C0B297FDC094C2FCF3
:1000600067C050937C0040937B0062C097FF63E0C1
:1000700097FD62E065BF9D7F83FF3BC097FF62E015
:1000800097FD63E065BF662760646ABF9260409336
:10009000790050937A0060917700B0907800461B09
:1000A0005B09B02C443B60E0560720F46627606291
:1000B000B62E17C0483661E0560720F46627606107
:1000C000B62E0FC0403D62E0560720F466276860F8
:1000D000B62E07C0403A65E0560718F466276460FC
:1000E000B62E4091790050917A004093770050935A
:1000F00078004719580995FD09C094FD09C0569527
:10010000479593FD05C05695479502C0440F551F6E
:100110004A3F500508F04AEF50917B0050937C0015
:1001200040937B0083FF04C06CE3609596239B297A
:1001300040E2D42E916083FD02C050E05BBF50E1ED
:10014000E52E1FBE189518951FB6DD2011F0DA9424
:100150001EC040E050E060B397FD609562FD4AEF3D
:1001600097FF63E097FD62E065BF662760646ABF42
:100170009D7F60B397FD609562FD5AEF451749F783
:1001800050E2D52E40937C0040937B009160EE209E
:1001900011F0EA9405C050E45BBF552750645ABF84
:1001A00090FF19C050917C0040917B0095FD450F58
:1001B00095FD47959E7F50918A00451710F4409118
:1001C0008A00572F507F552331F4242E4091880008
:1001D000433008F0422C1FBE18951FB67E7F1FBE0D
:1001E00018951FB652E040917B00415018F00092E4
:1001F0007E0009C040917E004F3F29F040917E0073
:10020000439540937E0060918800623011F4209005
:100210006D00321431F010F03A9401C033945A95C5
:1002200091F71FBE18951FB6601421F064BC6624B8
:100230001FBE189581FF0994452D089496FF440F21
:1002400010F0642E40E044BD58B18D7F652D6A3FAB
:1002500070F448B3487F48BB82FF09C042E04A952A
:10026000F1F742B3486342BB816055FF8E7F1FBEEA
:100270001895826042C0C098C29A82603EC0C19800
:10028000C09A82603AC0C298C19A826036C04FE07C
:10029000959894984A95E1F7C098C29A82602DC0CB
:1002A0004FE0959893984A95E1F7C098C29A82607A
:1002B00024C04FE0939895984A95E1F7C198C09A69
:1002C00082601BC04FE0939894984A95E1F7C198DB
:1002D000C09A826012C04FE0949893984A95E1F7D3
:1002E000C298C19A826009C04FE0949895984A9547
:1002F000E1F7C298C19A826000C0452D40950894EC
:1003000096FF440F10F0642E40E044BD1FBE1895C8
:100310000000089521E00AC023E008C02AE006C0DA
:100320002EE104C024E602C028EC00C014E000EC7A
:10033000EFDF0A95E9F71A95D1F72A95B9F70895ED
:1003400035E120E509C032E124E606C03FE028E7B8
:1003500003C03CE02CE800C0939A06E90A95F1F747
:100360000CE0C29AD5DF0A95E9F7C29810E4032F92
:10037000CFDF0A95E9F71A95D1F72A9569F793988F
:10038000089500918800033008F028C000916300B0
:100390001091640022E00038120770F0422C0092A5
:1003A000650000926600009267000092680000926B
:1003B000690000926E0012C0232D2095221F221F7B
:1003C000322F2795317033952E7F2054300920939A
:1003D00065003093660001E000936E00089500917F
:1003E0006E000015E1F0009165001091660020910B
:1003F000630030916400021B130B2FEF00381207CB
:1004000044F020E00F3712070CF405C00FE710E0AE
:1004100002C000E81FEF00936A0010936B0008957C
:1004200000916E00001581F1209167003091680005
:100430009090690000916A0010916B00200F311FAD
:10044000911E10EF91164CF01FE091160CF409C0AC
:100450002FEF3FEF1FE0912E04C020E030E010EFBF
:10046000912E10917F004116142D18F4113020F0B8
:1004700005C000234AF002C0002332F42093670035
:100480003093680090926900089500916E00001505
:10049000E9F100916A00112707FD1095000F111F67
:1004A0003091860030FD05C0343089F015950795F0
:1004B0000EC0A12E902EA5949794090D1A1D3530CB
:1004C00031F015950795333011F0159507952FEFFD
:1004D0000038120744F020E00F3712070CF405C073
:1004E0000FE710E002C000E81FEF232D00233AF0D1
:1004F000201B18F0213008F007C021E005C001954D
:10050000200F08F001C02FEF20936C000895009198
:100510006E000015D9F110916800209169003091AA
:10052000870030FD05C0343089F0259517950EC041
:10053000A22E912EA5949794190D2A1D353031F0D5
:1005400025951795333011F0259517950FEF10303D
:10055000200744F000E01F3F20070CF405C01FEF08
:1005600020E002C010E02FEF00916C0022233AF04F
:10057000011B18F0013008F008C001E006C010951A
:100580001395010F08F001C00FEF402E089500EC05
:1005900007B906B10068006406B926B126FDF7CF99
:1005A00004B115B126B12F7726B923ED2093810030
:1005B00020E02093820021E02093800023ED30E0B2
:1005C000220F331F02171307C8F0209381003093C6
:1005D000820022E02093800023ED30E0922EA32EB3
:1005E000220F331F290D3A1D0217130738F02093ED
:1005F00081003093820023E020938000089500EC76
:1006000007B906B10068006406B9089526B126FD51
:10061000FDCF04B115B126B12F7726B90F3F23E0E6
:10062000120778F42091810030918200021713079D
:1006300040F400917F00002359F00A9500937F0059
:1006400007C000917F000F3F19F0039500937F00D2
:10065000401608F4042D502E089574FD02E375FD34
:1006600000E576FD00E577FD08E2172F107F1123E6
:1006700099F020918B00233061F0102F169520FD0A
:1006800001C0169522FD02C0011B03C0010F08F432
:100690000FEF202E402E502E0895C8EBDBE0C093C4
:1006A0007500D09376002FEF3FE1209373003093D5
:1006B000740020936F003093700036952795209337
:1006C0007100309372001FEF109364000FEF0093DE
:1006D00063000895C0917500D091760004C0C09168
:1006E0006F00D0917000F8940CB51DB5C00FD11FEC
:1006F000DBBDCABD789471602091610030916200C9
:100700000093610010936200021B130B20916300A1
:1007100030916400E901D695C795D695C7952C1BF5
:100720003D0B200F311F209363003093640008F0CD
:1007300008951FEF109364000FEF00936300089576
:1007400070FDFECFC0917100D0917200F8940CB58D
:100750001DB50C0F1D1F1BBD0ABD78947160089557
:100760000091630010916400169507951695079502
:1007700016950795169507950550100918F0053040
:10078000100510F405E01127009373001093740016
:1007900000936F00109370001695079500937100F9
:1007A00010937200089570FDFECFC0916300D09148
:1007B0006400F8940CB51DB50C0F1D1F1BBD0ABDC0
:1007C000789471600895789470FF089582FD01C057
:1007D00004C080FDF8CF7894089506E0252D20957B
:1007E0002295269527702395F8940A95F1F718B16C
:1007F00015FDE9CF2A95D9F778940895789470FF7C
:10080000089582FD01C004C080FFF8CF7894089558
:1008100006E0252D20952295269527702395F8949E
:100820000A95F1F718B115FFE9CF2A95D9F7789411
:100830000895C0917300D0917400F8940CB51DB563
:100840000C0F1D1F1BBD0ABD78947160089570FDCB
:10085000FECF0895F894ABE6B1E0FD019398959A28
:1008600002E007B978940895F894A2E6B1E0FD019A
:10087000C19881FDC09A04E007B978940895F8946E
:10088000A9E5B1E0FD019598949A05E007B978943F
:100890000895F894A0E5B1E0FD01C09881FDC29AE9
:1008A00002E007B978940895F894A7E4B1E0FD0157
:1008B0009498939A04E007B978940895F894A4E77B
:1008C000B1E0FD01C29881FDC19A05E007B97894B5
:1008D0000895F8949398959A02E007B9789408954A
:1008E000F894AFE3B1E0FD01C19881FDC09A04E046
:1008F00007B978940895F8949598949A05E007B903
:1009000078940895F894ABE3B1E0FD01C09881FDBF
:10091000C29A02E007B978940895F8949498939A4B
:1009200004E007B978940895F894A3E4B1E0FD01D8
:10093000C29881FDC19A05E007B978940895A9E3AA
:10094000B1E0FD0108B3087F08BB02B3077C02BB1E
:1009500008950091750010917600083E23E012077B
:1009600008F408950091750010917600055010402C
:100970000093750010937600089570FDFECF0895E2
:1009800004E00093860004E00093870001E00093F8
:10099000880003E000938B0090649F770895E199AD
:1009A000FECF1EBB2FBBE09A0DB30895E199FECF99
:1009B0000DBB1EBB2FBBF894E29AE19A7894089580
:1009C00018E020E00FEFF2DF19E020E00FEFEEDF9C
:1009D000089518E020E005EAE9DF19E020E00AE5E3
:1009E000E5DF089518E020E0DADF053A31F519E097
:1009F00020E0D5DF0A3509F510E020E0D0DF0093D4
:100A0000860011E020E0CBDF0093870012E020E0B9
:100A1000C6DF0093880015E020E0C1DF00938B0063
:100A200016E020E0BCDF906401FD9F7B17E020E032
:100A3000B6DF9F7701FD906802C0A2DF01D0089564
:100A4000BFDF01E0009383000091860000938400E3
:100A50002CD002E000938300009187000093840073
:100A600024D003E000938300009188000093840069
:100A70001CD004E00093830000918B00009384005D
:100A800014D005E00093830001E096FF02E000939C
:100A900084000BD006E00093830001E097FD02E0A4
:100AA0000093840002D095DF089530918300009177
:100AB0008400313051F0323061F0333071F0343035
:100AC00081F0353091F03630A1F010E020E06EDF9B
:100AD00014C011E020E06ADF10C012E020E066DF01
:100AE0000CC015E020E062DF08C016E020E05EDF09
:100AF00004C017E020E05ADF00C0089505E0902E02
:100B000013DC9A94E9F70895F8941ADC1CDC1EDCD7
:100B100020DC04DC15DC17DC19DC1BDCFFDB10DC63
:100B200012DC14DC16DC7894089590908300A09079
:100B30008400F89405DC04DC03DCF0DB9A94D1F744
:100B400008DCECDBAA94E1F778940895F89401DCD2
:100B50007894E8DB00917B000130C0F7F894F0DB7B
:100B6000DDDBEEDB7894DEDB00917B000A3FB0F347
:100B7000CBDFC4DFC3DF01E00093830001E000931B
:100B8000840000E000938500D0DF05E0902ECCDBF0
:100B900000917B00013040F413DF87DF1ADFB4DF00
:100BA00008E000932100AADF9A9489F7009185005C
:100BB000039500938500033008F4E6CF9FDF009192
:100BC000840003950093840015E0009183000330B6
:100BD00009F413E000918300053008F012E013954A
:100BE00000918400011708F4CCCF88DF87DF0091E3
:100BF0008300039500938300073008F4BFCF08E01B
:100C0000009321007BDFF894A89501B5086101BD30
:100C100000E001BD04E00EBF0FE50DBF90DE00E077
:100C200008BB07E107BB00E005BB00E004BB00E038
:100C300002BB08E301BB0024A0E0B0E00D92AA31A2
:100C4000E9F7A0E6B0E004E60D920A95E9F777DE51
:100C500002E003BF02E00EBD01E005BD91DEC2DE91
:100C600063DB6EDB5DDB6FDB5BDB70DB59DB05E5DC
:100C700008BF09BF06B10260016006B9789487DC3D
:100C800097FF03E097FD02E005BF00E40BBF0027DC
:100C900000640ABF9D7F48DB3FDB00917B00013091
:100CA000D8F742DB886015E0912E36DB90FFFECF4F
:100CB00000917B000230B8F3292F2C7330917D0016
:100CC00020937D00231779F79A9479F7877F97FF10
:100CD00003E097FD02E005BF002700640ABF9D7F87
:100CE000F8942EDB2DDB2CDB78941EDB00926D005C
:100CF00013DB00917B000A3F08F028CF10916D00B4
:100D0000011710F000936D00013090F7F89421DB8B
:100D100020DB1FDB789408DBFFDA00917B000130D9
:100D2000D8F30DDE22243324442455240FEF0093FE
:100D30007F000092650000926600009267000092BA
:100D400068000092690000926E0077278827009261
:100D50007E0000B7086000BF37989FDC8460706138
:100D60007CDCACDDD7DA76DDD5DAD4DA7DDDD4DA39
:100D700086DDD2DAD1DA8DDDD1DA96DDCDDACADAE6
:100D80007F7E70626ADC9ADDA5DCEADCE2DDF5DDFF
:100D900061DDA0DCE5DCDDDDF0DD66DD9BDCE0DCDB
:100DA000D8DDEBDD6CDD96DCDBDCD3DDE6DD71DD93
:100DB00091DCD6DCCEDDE1DD77DD8CDCD1DCC9DD9C
:100DC0000091750010917600083E23E0120710F0A4
:100DD000D4DDD9CF7F7D706440DC02E000936000F9
:100DE000CCDD6CDD77DCBCDCB4DDC7DD33DD72DC93
:100DF000B7DCAFDDC2DD38DD6DDCB2DCAADDBDDD28
:100E00003EDD68DCADDCA5DDB8DD43DD63DCA8DC00
:100E1000A0DDB3DD49DD5EDCA3DC9BDD009160007D
:100E20000A9521F000936000A8DDDBCF7F7B70681E
:100E300014DCA3DD43DD53DC83DC92DCB4DC01E0B5
:100E400000936000C0DC70FF97C0F3DC00DD02DDC2
:100E500046DC76DC85DCA7DCD1DC70FF8DC0E9DC0C
:100E6000F6DC02DD3CDC6CDC7BDC9DDCACDC70FFAA
:100E700083C0DFDCECDC03DD32DC62DC71DC93DCC4
:100E8000BDDC70FF79C0D5DCE2DC03DD28DC58DC9A
:100E900067DC89DC98DC70FF6FC0CBDCD8DC04DD5C
:100EA0001EDC4EDC5DDC7FDCA9DC70FF65C0C1DCD4
:100EB000CEDC04DD14DC44DC53DC75DC0091600026
:100EC0000A9519F000936000BDCFF8948B7F02B3B0
:100ED000077C02BB939AA3E4B1E0FD01789473DC34
:100EE00070FF4AC0A6DC4DDAB2DCF3DCF8DB28DCAC
:100EF00037DC59DC83DC70FF3FC09BDC70DAA7DC99
:100F0000EFDCEDDB1DDC2CDC4EDC5DDC70FF34C087
:100F100090DC86DA9CDCEFDCE2DB12DC21DC43DCFB
:100F20006DDC70FF29C085DCB0DA91DCEBDCD7DB4F
:100F300007DC16DC38DC47DC70FF1EC07ADCE7DA41
:100F400086DCEBDCCCDBFCDB0BDC2DDC57DC57DBA5
:100F500070FF12C06EDC5ADB7ADCE6DCC0DBF0DB53
:100F6000FFDB21DC7F7700917E00013028F40091C7
:100F7000640007FD09F4B3CFE2DC222433244424C7
:040F8000552491CE95
:00000001FF

268
Atmel/Hex files/HC5A1SA48V.main.hex

@ -1,268 +0,0 @@
:020000020000FC
:100000006DC613C0000000000000000000000000EA
:10001000000017C1A5C0EFC00000F1C00000000043
:10002000A0C000000000000000001FB64091840046
:100030005091850091FD25C097FF62E097FD63E038
:10004000609369009260C9B097FDC094C2FE03C07E
:10005000742E852E81C097FF63E097FD62E0609368
:100060006900662761606CBB9D7F40E050E0C9B0CD
:1000700097FDC094C2FC69C050931C0140931B01C2
:1000800064C097FF63E097FD62E0609369009D7F25
:1000900083FF3CC097FF62E097FD63E060936900D7
:1000A000662761606CBB92604093190150931A01FE
:1000B00060911701B0901801461B5B09B02C443BBE
:1000C00060E0560720F466276062B62E17C04836F7
:1000D00061E0560720F466276061B62E0FC0403DF0
:1000E00062E0560720F466276860B62E07C0403AE3
:1000F00065E0560718F466276460B62E4091190132
:1001000050911A014093170150931801471958094B
:1001100095FD09C094FD09C05695479593FD05C00E
:100120005695479502C0440F551F4A3F500508F0A9
:100130004AEF50911B0150931C0140931B0183FF18
:1001400004C06CE3609596239B2940E2D42E916015
:1001500083FD02C050E05DBB50E1E52E1FBE189547
:1001600018951FB6DD2011F0DA941FC040E050E072
:1001700069B197FD609562FD4AEF97FF63E097FDD7
:1001800062E060936900662761606CBB9D7F69B126
:1001900097FD609562FD5AEF451741F750E2D52E65
:1001A00040931C0140931B019160EE2011F0EA94F2
:1001B00005C051E05DBB552751605CBB90FF19C085
:1001C00050911C0140911B0195FD450F95FD4795F0
:1001D0009E7F50912A01451710F440912A01572F14
:1001E000507F552331F4242E40912801433008F0EC
:1001F000422C1FBE18951FB67E7F1FBE18951FB6D6
:1002000052E040911B01415018F000921E0109C0BC
:1002100040911E014F3F29F040911E0143954093AC
:100220001E0160912801623011F420900D013214FA
:1002300031F010F03A9401C033945A9591F71FBEF3
:1002400018951FB6601429F06092B20066241FBE94
:10025000189581FF0994452D089496FF440F10F0DE
:10026000642E40E04093B20050B78D7F652D6A3F09
:1002700070F445B1487F45B982FF09C042E04A9514
:10028000F1F74BB14B604BB9816055FF8E7F1FBEBC
:100290001895826042C02998289A82603EC02A98A8
:1002A000299A82603AC028982A9A826036C04FE024
:1002B0005B9858984A95E1F72998289A82602DC052
:1002C0004FE05B9859984A95E1F72998289A8260FF
:1002D00024C04FE059985B984A95E1F72A98299AEB
:1002E00082601BC04FE0599858984A95E1F72A98C8
:1002F000299A826012C04FE0589859984A95E1F7C0
:1003000028982A9A826009C04FE058985B984A95CD
:10031000E1F728982A9A826000C0452D40950894FC
:1003200096FF440F10F0642E40E04093B2001FBED1
:1003300018950000089521E00AC023E008C02AE0D3
:1003400006C02EE104C024E602C028EC00C014E080
:1003500000ECEFDF0A95E9F71A95D1F72A95B9F77E
:10036000089535E120E509C032E124E606C03FE00A
:1003700028E703C03CE02CE800C0599A06E90A953A
:10038000F1F70CE0289AD5DF0A95E9F7289810E4F0
:10039000032FCFDF0A95E9F71A95D1F72A9569F768
:1003A0005998089500912801033008F028C0009161
:1003B00003011091040122E00038120770F0422C72
:1003C00000920501009206010092070100920801C7
:1003D0000092090100920E0112C0232D2095221FC8
:1003E000221F322F2795317033952E7F20543009EC
:1003F000209305013093060101E000930E0108955A
:1004000000910E010015E1F0009105011091060127
:100410002091030130910401021B130B2FEF0038D0
:10042000120744F020E00F3712070CF405C00FE765
:1004300010E002C000E81FEF00930A0110930B01C7
:10044000089500910E01001581F12091070130916E
:1004500008019090090100910A0110910B01200FF1
:10046000311F911E10EF91164CF01FE091160CF405
:1004700009C02FEF3FEF1FE0912E04C020E030E0D5
:1004800010EF912E10911F014116142D18F4113008
:1004900020F005C000234AF002C0002332F420936C
:1004A00007013093080190920901089500910E010F
:1004B0000015E9F100910A01112707FD1095000FC1
:1004C000111F3091260130FD05C0343089F015959B
:1004D00007950EC0A12E902EA5949794090D1A1D74
:1004E000353031F015950795333011F01595079596
:1004F0002FEF0038120744F020E00F3712070CF4FA
:1005000005C00FE710E002C000E81FEF232D002315
:100510003AF0201B18F0213008F007C021E005C098
:100520000195200F08F001C02FEF20930C010895D2
:1005300000910E010015D9F11091080120910901D7
:100540003091270130FD05C0343089F0259517958D
:100550000EC0A22E912EA5949794190D2A1D353008
:1005600031F025951795333011F0259517950FEF3C
:100570001030200744F000E01F3F20070CF405C0B6
:100580001FEF20E002C010E02FEF00910C012223AA
:100590003AF0011B18F0013008F008C001E006C075
:1005A00010951395010F08F001C00FEF402E08952C
:1005B00007EC00937C0000917A00006800640093CF
:1005C0007A0020917A0026FDF3CF009178001091F7
:1005D000790020917A002F7720937A002EEF2093D4
:1005E000210120E02093220121E0209320012EEF21
:1005F00030E0220F331F02171307C8F020932101A8
:100600003093220122E0209320012EEF30E0922E41
:10061000A32E220F331F290D3A1D0217130738F09E
:10062000209321013093220123E02093200108959B
:1006300007EC00937C0000917A000068006400934E
:100640007A00089520917A0026FDFCCF0091780071
:100650001091790020917A002F7720937A000F3F34
:1006600023E0120778F42091210130912201021732
:10067000130740F400911F01002359F00A950093DD
:100680001F0107C000911F010F3F19F00395009350
:100690001F01401608F4042D502E089574FD02E346
:1006A00075FD00E576FD00E577FD08E2172F107F68
:1006B000112399F020912B01233061F0102F169512
:1006C00020FD01C0169522FD02C0011B03C0010FD1
:1006D00008F40FEF202E402E502E0895C8EBDBE0DB
:1006E000C0931501D09316012FEF3FE12093130122
:1006F0003093140120930F01309310013695279504
:1007000020931101309312011FEF109304010FEF9A
:10071000009303010895C0911501D091160104C002
:10072000C0910F01D0911001F894009184001091B4
:100730008500C00FD11FD0938900C09388007894A2
:100740007160209101013091020100930101109329
:100750000201021B130B2091030130910401E901F6
:10076000D695C795D695C7952C1B3D0B200F311FED
:10077000209303013093040108F008951FEF1093B4
:1007800004010FEF00930301089570FDFECFC091A7
:100790001101D0911201F89400918400109185000C
:1007A0000C0F1D1F109389000093880078947160CE
:1007B000089500910301109104011695079516956F
:1007C000079516950795169507950550100918F089
:1007D0000530100510F405E0112700931301109364
:1007E000140100930F0110931001169507950093C3
:1007F000110110931201089570FDFECFC091030105
:10080000D0910401F89400918400109185000C0FA0
:100810001D1F1093890000938800789471600895DB
:10082000789470FF089582FD01C004C080FDF8CF68
:100830007894089506E0252D209522952695277019
:100840002395F8940A95F1F710B715FDE9CF2A958D
:10085000D9F778940895789470FF089582FD01C0C7
:1008600004C080FFF8CF7894089506E0252D2095E8
:100870002295269527702395F8940A95F1F710B7DD
:1008800015FFE9CF2A95D9F778940895C0911301FF
:10089000D0911401F89400918400109185000C0F00
:1008A0001D1F10938900009388007894716008954B
:1008B00070FDFECF0895F894ABE7B1E0FD015998C3
:1008C0005B9A00917B00006400937B0003E000933F
:1008D0007C0078940895F894A2E7B1E0FD012A988D
:1008E00081FD299A00917B00006400937B0002E067
:1008F00000937C0078940895F894A9E6B1E0FD0196
:100900005B98589A00917B000F7B00937B00789452
:100910000895F894A0E6B1E0FD01299881FD289A98
:1009200000917B00006400937B0003E000937C0057
:1009300078940895F894A7E5B1E0FD015898599A84
:1009400000917B00006400937B0002E000937C0038
:1009500078940895F894A4E8B1E0FD01289881FD09
:100960002A9A00917B000F7B00937B007894089576
:10097000F89459985B9A00917B00006400937B0087
:1009800003E000937C0078940895F894AFE4B1E01C
:10099000FD012A9881FD299A00917B000064009353
:1009A0007B0002E000937C0078940895F8945B98B3
:1009B000589A00917B000F7B00937B0078940895F8
:1009C000F894ABE4B1E0FD01299881FD289A0091EB
:1009D0007B00006400937B0003E000937C0078942C
:1009E0000895F8945898599A00917B0000640093F8
:1009F0007B0002E000937C0078940895F894A3E5CE
:100A0000B1E0FD01289881FD2A9A00917B000F7BBF
:100A100000937B0078940895A9E4B1E0FD0105B14D
:100A2000087F05B90BB1047F0BB90895009115013A
:100A300010911601083E23E0120708F40895009172
:100A400015011091160105501040009315011093E7
:100A50001601089570FDFECF089504E0009326016D
:100A600004E00093270101E00093280103E00093D4
:100A70002B0190649F770895F999FECF11BDF89AE4
:100A800000B50895F999FECF00BD11BDF894FA9A0A
:100A9000F99A7894089518E020E00FEFF3DF19E059
:100AA00020E00FEFEFDF089518E020E005EAEADF2D
:100AB00019E020E00AE5E6DF089518E020E0DCDF39
:100AC000053A31F519E020E0D7DF0A3509F510E0E5
:100AD00020E0D2DF0093260111E020E0CDDF00937B
:100AE000270112E020E0C8DF0093280115E020E094
:100AF000C3DF00932B0116E020E0BEDF906401FD10
:100B00009F7B17E020E0B8DF9F7701FD906802C06F
:100B1000A4DF01D00895BFDF01E00093230100911D
:100B20002601009324012CD002E0009323010091C0
:100B300027010093240124D003E0009323010091B6
:100B40002801009324011CD004E0009323010091AC
:100B50002B010093240114D005E00093230101E050
:100B600096FF02E0009324010BD006E000932301DE
:100B700001E097FD02E00093240102D095DF089583
:100B80003091230100912401313051F0323061F075
:100B9000333071F0343081F0353091F03630A1F0DF
:100BA00010E020E06FDF14C011E020E06BDF10C028
:100BB00012E020E067DF0CC015E020E063DF08C032
:100BC00016E020E05FDF04C017E020E05BDF00C03C
:100BD000089505E0902EB9DB9A94E9F70895F8940A
:100BE000C0DBC2DBC4DBC6DBAADBBBDBBDDBBFDB40
:100BF000C1DBA5DBB6DBB8DBBADBBCDB78940895E0
:100C000090902301A0902401F894ABDBAADBA9DB30
:100C100096DB9A94D1F7AEDB92DBAA94E1F7789455
:100C20000895F894A7DB78948EDB00911B010130C6
:100C3000C0F7F89496DB83DB94DB789484DB009137
:100C40001B010A3FB0F3CBDFC4DFC3DF01E0009339
:100C5000230101E00093240100E000932501D0DF8F
:100C600005E0902E72DB00911B01013040F413DF90
:100C700087DF1ADFB4DF08E000936000AADF9A94F0
:100C800089F700912501039500932501033008F4AD
:100C9000E6CF9FDF0091240103950093240115E026
:100CA00000912301033009F413E000912301053082
:100CB00008F012E0139500912401011708F4CCCF3D
:100CC00088DF87DF0091230103950093230107301C
:100CD00008F4BFCF08E0009360007BDFF894A8958C
:100CE00004B7007004BF00916000086100936000C9
:100CF00000E00093600000E80093610000E00093D2
:100D0000610002E00EBF0FEF0DBF86DE00E005B907
:100D100007E104B900E008B900E007B900E00BB949
:100D20000BE00AB90024A0E0B0E00D92AA31E9F787
:100D3000A0E0B1E004E60D920A95E9F76DDE02E06D
:100D400005BD02E00093810001E00093B10085DE63
:100D5000B4DEFBDA06DBF5DA07DBF3DA08DBF1DA1F
:100D600001E005BB00936E0003E006BB00936F003B
:100D700001E007BB0093700000917A0002600160FF
:100D800000937A00789414DC97FF03E097FD02E06B
:100D90000093690001E00DBB002701600CBB9D7F43
:100DA000D4DACBDA00911B010130D8F7CEDA8860B3
:100DB00015E0912EC2DA90FFFECF00911B010230A8
:100DC000B8F3292F2C7330911D0120931D01231797
:100DD00079F79A9479F7877F97FF03E097FD02E010
:100DE00000936900002701600CBB9D7FF894B9DA7D
:100DF000B8DAB7DA7894A9DA00920D019EDA009198
:100E00001B010A3F08F00DCF10910D01011710F0E2
:100E100000930D01013090F7F894ACDAABDAAADA5E
:100E2000789493DA8ADA00911B010130D8F3F4DD6B
:100E300022243324442455240FEF00931F010092F1
:100E4000050100920601009207010092080100923C
:100E5000090100920E017727882700921E01009158
:100E60007A000F7700937A0000917B000064009372
:100E70007B0034DC8460706111DC6CDD5CDA1BDDCE
:100E80005ADA59DA28DD59DA37DD57DA56DA41DD30
:100E900056DA50DD52DA4FDA7F7E7062FFDB5ADDC0
:100EA0003ADC87DCC3DDD6DD06DD35DC82DCBEDD89
:100EB000D1DD11DD30DC7DDCB9DDCCDD1DDD2BDCF1
:100EC00078DCB4DDC7DD25DD26DC73DCAFDDC2DD1B
:100ED00031DD21DC6EDCAADD0091150110911601D7
:100EE000083E23E0120710F0B5DDD9CF7F7D706496
:100EF000D5DB02E000930001ADDD2CDD0CDC59DC1C
:100F000095DDA8DDD8DC07DC54DC90DDA3DDE3DC77
:100F100002DC4FDC8BDD9EDDEFDCFDDB4ADC86DDB9
:100F200099DDF7DCF8DB45DC81DD94DD03DDF3DB07
:100F300040DC7CDD009100010A9521F00093000166
:100F400089DDDBCF7F7B7068A9DB84DD03DDE8DB37
:100F50001CDC2FDC51DC01E00093000161DC70FF40
:100F600097C094DCA5DCA7DCDBDB0FDC22DC44DCF7
:100F700072DC70FF8DC08ADC9BDCADDCD1DB05DC74
:100F800018DC3ADC4DDC70FF83C080DC91DCB4DC23
:100F9000C7DBFBDB0EDC30DC5EDC70FF79C076DCAF
:100FA00087DCB7DCBDDBF1DB04DC26DC39DC70FF81
:100FB0006FC06CDC7DDCBEDCB3DBE7DBFADB1CDCAA
:100FC0004ADC70FF65C062DC73DCC4DCA9DBDDDBFE
:100FD000F0DB12DC009100010A9519F0009300018A
:100FE000BDCFF8948B7F0BB1047F0BB9599AA3E561
:100FF000B1E0FD01789414DC70FF4AC047DCD2D91F
:1010000057DCB6DC8DDBC1DBD4DBF6DB24DC70FF28
:101010003FC03CDCF5D94CDCB8DC82DBB6DBC9DB9D
:10102000EBDBFEDB70FF34C031DC0BDA41DCBEDC15
:1010300077DBABDBBEDBE0DB0EDC70FF29C026DC40
:1010400035DA36DCBDDC6CDBA0DBB3DBD5DBE8DB23
:1010500070FF1EC01BDC6CDA2BDCC3DC61DB95DBB4
:10106000A8DBCADBF8DBE4DA70FF12C00FDCEADAD7
:101070001FDCC4DC55DB89DB9CDBBEDB7F770091AA
:101080001E01013028F40091040107FD09F4B3CFDB
:0C109000C3DC22243324442455248ACEDF
:00000001FF

268
Atmel/Hex files/HC5A1SA48V.tail.hex

@ -1,268 +0,0 @@
:020000020000FC
:100000006DC613C0000000000000000000000000EA
:10001000000017C1A5C0EFC00000F1C00000000043
:10002000A0C000000000000000001FB64091840046
:100030005091850091FD25C097FF62E097FD63E038
:10004000609369009260C9B097FDC094C2FE03C07E
:10005000742E852E81C097FF63E097FD62E0609368
:100060006900662761606CBB9D7F40E050E0C9B0CD
:1000700097FDC094C2FC69C050931C0140931B01C2
:1000800064C097FF63E097FD62E0609369009D7F25
:1000900083FF3CC097FF62E097FD63E060936900D7
:1000A000662761606CBB92604093190150931A01FE
:1000B00060911701B0901801461B5B09B02C443BBE
:1000C00060E0560720F466276062B62E17C04836F7
:1000D00061E0560720F466276061B62E0FC0403DF0
:1000E00062E0560720F466276860B62E07C0403AE3
:1000F00065E0560718F466276460B62E4091190132
:1001000050911A014093170150931801471958094B
:1001100095FD09C094FD09C05695479593FD05C00E
:100120005695479502C0440F551F4A3F500508F0A9
:100130004AEF50911B0150931C0140931B0183FF18
:1001400004C06CE3609596239B2940E2D42E916015
:1001500083FD02C050E05DBB50E1E52E1FBE189547
:1001600018951FB6DD2011F0DA941FC040E050E072
:1001700069B197FD609562FD4AEF97FF63E097FDD7
:1001800062E060936900662761606CBB9D7F69B126
:1001900097FD609562FD5AEF451741F750E2D52E65
:1001A00040931C0140931B019160EE2011F0EA94F2
:1001B00005C051E05DBB552751605CBB90FF19C085
:1001C00050911C0140911B0195FD450F95FD4795F0
:1001D0009E7F50912A01451710F440912A01572F14
:1001E000507F552331F4242E40912801433008F0EC
:1001F000422C1FBE18951FB67E7F1FBE18951FB6D6
:1002000052E040911B01415018F000921E0109C0BC
:1002100040911E014F3F29F040911E0143954093AC
:100220001E0160912801623011F420900D013214FA
:1002300031F010F03A9401C033945A9591F71FBEF3
:1002400018951FB6601429F06092B20066241FBE94
:10025000189581FF0994452D089496FF440F10F0DE
:10026000642E40E04093B20050B78D7F652D6A3F09
:1002700070F445B1487F45B982FF09C042E04A9514
:10028000F1F74BB14B604BB9816055FF8E7F1FBEBC
:100290001895826042C02998289A82603EC02A98A8
:1002A000299A82603AC028982A9A826036C04FE024
:1002B0005B9858984A95E1F72998289A82602DC052
:1002C0004FE05B9859984A95E1F72998289A8260FF
:1002D00024C04FE059985B984A95E1F72A98299AEB
:1002E00082601BC04FE0599858984A95E1F72A98C8
:1002F000299A826012C04FE0589859984A95E1F7C0
:1003000028982A9A826009C04FE058985B984A95CD
:10031000E1F728982A9A826000C0452D40950894FC
:1003200096FF440F10F0642E40E04093B2001FBED1
:1003300018950000089521E00AC023E008C02AE0D3
:1003400006C02EE104C024E602C028EC00C014E080
:1003500000ECEFDF0A95E9F71A95D1F72A95B9F77E
:10036000089535E120E509C032E124E606C03FE00A
:1003700028E703C03CE02CE800C0599A06E90A953A
:10038000F1F70CE0289AD5DF0A95E9F7289810E4F0
:10039000032FCFDF0A95E9F71A95D1F72A9569F768
:1003A0005998089500912801033008F028C0009161
:1003B00003011091040122E00038120770F0422C72
:1003C00000920501009206010092070100920801C7
:1003D0000092090100920E0112C0232D2095221FC8
:1003E000221F322F2795317033952E7F20543009EC
:1003F000209305013093060101E000930E0108955A
:1004000000910E010015E1F0009105011091060127
:100410002091030130910401021B130B2FEF0038D0
:10042000120744F020E00F3712070CF405C00FE765
:1004300010E002C000E81FEF00930A0110930B01C7
:10044000089500910E01001581F12091070130916E
:1004500008019090090100910A0110910B01200FF1
:10046000311F911E10EF91164CF01FE091160CF405
:1004700009C02FEF3FEF1FE0912E04C020E030E0D5
:1004800010EF912E10911F014116142D18F4113008
:1004900020F005C000234AF002C0002332F420936C
:1004A00007013093080190920901089500910E010F
:1004B0000015E9F100910A01112707FD1095000FC1
:1004C000111F3091260130FD05C0343089F015959B
:1004D00007950EC0A12E902EA5949794090D1A1D74
:1004E000353031F015950795333011F01595079596
:1004F0002FEF0038120744F020E00F3712070CF4FA
:1005000005C00FE710E002C000E81FEF232D002315
:100510003AF0201B18F0213008F007C021E005C098
:100520000195200F08F001C02FEF20930C010895D2
:1005300000910E010015D9F11091080120910901D7
:100540003091270130FD05C0343089F0259517958D
:100550000EC0A22E912EA5949794190D2A1D353008
:1005600031F025951795333011F0259517950FEF3C
:100570001030200744F000E01F3F20070CF405C0B6
:100580001FEF20E002C010E02FEF00910C012223AA
:100590003AF0011B18F0013008F008C001E006C075
:1005A00010951395010F08F001C00FEF402E08952C
:1005B00007EC00937C0000917A00006800640093CF
:1005C0007A0020917A0026FDF3CF009178001091F7
:1005D000790020917A002F7720937A002EEF2093D4
:1005E000210120E02093220121E0209320012EEF21
:1005F00030E0220F331F02171307C8F020932101A8
:100600003093220122E0209320012EEF30E0922E41
:10061000A32E220F331F290D3A1D0217130738F09E
:10062000209321013093220123E02093200108959B
:1006300007EC00937C0000917A000068006400934E
:100640007A00089520917A0026FDFCCF0091780071
:100650001091790020917A002F7720937A000F3F34
:1006600023E0120778F42091210130912201021732
:10067000130740F400911F01002359F00A950093DD
:100680001F0107C000911F010F3F19F00395009350
:100690001F01401608F4042D502E089574FD02E346
:1006A00075FD00E576FD00E577FD08E2172F107F68
:1006B000112399F020912B01233061F0102F169512
:1006C00020FD01C0169522FD02C0011B03C0010FD1
:1006D00008F40FEF202E402E502E0895C8EBDBE0DB
:1006E000C0931501D09316012FEF3FE12093130122
:1006F0003093140120930F01309310013695279504
:1007000020931101309312011FEF109304010FEF9A
:10071000009303010895C0911501D091160104C002
:10072000C0910F01D0911001F894009184001091B4
:100730008500C00FD11FD0938900C09388007894A2
:100740007160209101013091020100930101109329
:100750000201021B130B2091030130910401E901F6
:10076000D695C795D695C7952C1B3D0B200F311FED
:10077000209303013093040108F008951FEF1093B4
:1007800004010FEF00930301089570FDFECFC091A7
:100790001101D0911201F89400918400109185000C
:1007A0000C0F1D1F109389000093880078947160CE
:1007B000089500910301109104011695079516956F
:1007C000079516950795169507950550100918F089
:1007D0000530100510F405E0112700931301109364
:1007E000140100930F0110931001169507950093C3
:1007F000110110931201089570FDFECFC091030105
:10080000D0910401F89400918400109185000C0FA0
:100810001D1F1093890000938800789471600895DB
:10082000789470FF089582FD01C004C080FDF8CF68
:100830007894089506E0252D209522952695277019
:100840002395F8940A95F1F710B715FDE9CF2A958D
:10085000D9F778940895789470FF089582FD01C0C7
:1008600004C080FFF8CF7894089506E0252D2095E8
:100870002295269527702395F8940A95F1F710B7DD
:1008800015FFE9CF2A95D9F778940895C0911301FF
:10089000D0911401F89400918400109185000C0F00
:1008A0001D1F10938900009388007894716008954B
:1008B00070FDFECF0895F894ABE7B1E0FD015998C3
:1008C0005B9A00917B00006400937B0003E000933F
:1008D0007C0078940895F894A2E7B1E0FD012A988D
:1008E00081FD299A00917B00006400937B0002E067
:1008F00000937C0078940895F894A9E6B1E0FD0196
:100900005B98589A00917B000F7B00937B00789452
:100910000895F894A0E6B1E0FD01299881FD289A98
:1009200000917B00006400937B0003E000937C0057
:1009300078940895F894A7E5B1E0FD015898599A84
:1009400000917B00006400937B0002E000937C0038
:1009500078940895F894A4E8B1E0FD01289881FD09
:100960002A9A00917B000F7B00937B007894089576
:10097000F89459985B9A00917B00006400937B0087
:1009800003E000937C0078940895F894AFE4B1E01C
:10099000FD012A9881FD299A00917B000064009353
:1009A0007B0002E000937C0078940895F8945B98B3
:1009B000589A00917B000F7B00937B0078940895F8
:1009C000F894ABE4B1E0FD01299881FD289A0091EB
:1009D0007B00006400937B0003E000937C0078942C
:1009E0000895F8945898599A00917B0000640093F8
:1009F0007B0002E000937C0078940895F894A3E5CE
:100A0000B1E0FD01289881FD2A9A00917B000F7BBF
:100A100000937B0078940895A9E4B1E0FD0105B14D
:100A2000087F05B90BB1047F0BB90895009115013A
:100A300010911601083E23E0120708F40895009172
:100A400015011091160105501040009315011093E7
:100A50001601089570FDFECF089504E0009326016D
:100A600004E00093270101E00093280103E00093D4
:100A70002B0190649F770895F999FECF11BDF89AE4
:100A800000B50895F999FECF00BD11BDF894FA9A0A
:100A9000F99A7894089518E020E00FEFF3DF19E059
:100AA00020E00FEFEFDF089518E020E005EAEADF2D
:100AB00019E020E00AE5E6DF089518E020E0DCDF39
:100AC000053A31F519E020E0D7DF0A3509F510E0E5
:100AD00020E0D2DF0093260111E020E0CDDF00937B
:100AE000270112E020E0C8DF0093280115E020E094
:100AF000C3DF00932B0116E020E0BEDF906401FD10
:100B00009F7B17E020E0B8DF9F7701FD906802C06F
:100B1000A4DF01D00895BFDF01E00093230100911D
:100B20002601009324012CD002E0009323010091C0
:100B300027010093240124D003E0009323010091B6
:100B40002801009324011CD004E0009323010091AC
:100B50002B010093240114D005E00093230101E050
:100B600096FF02E0009324010BD006E000932301DE
:100B700001E097FD02E00093240102D095DF089583
:100B80003091230100912401313051F0323061F075
:100B9000333071F0343081F0353091F03630A1F0DF
:100BA00010E020E06FDF14C011E020E06BDF10C028
:100BB00012E020E067DF0CC015E020E063DF08C032
:100BC00016E020E05FDF04C017E020E05BDF00C03C
:100BD000089505E0902EB9DB9A94E9F70895F8940A
:100BE000C0DBC2DBC4DBC6DBAADBBBDBBDDBBFDB40
:100BF000C1DBA5DBB6DBB8DBBADBBCDB78940895E0
:100C000090902301A0902401F894ABDBAADBA9DB30
:100C100096DB9A94D1F7AEDB92DBAA94E1F7789455
:100C20000895F894A7DB78948EDB00911B010130C6
:100C3000C0F7F89496DB83DB94DB789484DB009137
:100C40001B010A3FB0F3CBDFC4DFC3DF01E0009339
:100C5000230101E00093240100E000932501D0DF8F
:100C600005E0902E72DB00911B01013040F413DF90
:100C700087DF1ADFB4DF08E000936000AADF9A94F0
:100C800089F700912501039500932501033008F4AD
:100C9000E6CF9FDF0091240103950093240115E026
:100CA00000912301033009F413E000912301053082
:100CB00008F012E0139500912401011708F4CCCF3D
:100CC00088DF87DF0091230103950093230107301C
:100CD00008F4BFCF08E0009360007BDFF894A8958C
:100CE00004B7007004BF00916000086100936000C9
:100CF00000E00093600000E80093610000E00093D2
:100D0000610002E00EBF0FEF0DBF86DE00E005B907
:100D100007E104B900E008B900E007B900E00BB949
:100D20000BE00AB90024A0E0B0E00D92AA31E9F787
:100D3000A0E0B1E004E60D920A95E9F76DDE02E06D
:100D400005BD02E00093810001E00093B10085DE63
:100D5000B4DEFBDA06DBF5DA07DBF3DA08DBF1DA1F
:100D600001E005BB00936E0003E006BB00936F003B
:100D700001E007BB0093700000917A0002600160FF
:100D800000937A00789414DC97FF03E097FD02E06B
:100D90000093690001E00DBB002701600CBB9D7F43
:100DA000D4DACBDA00911B010130D8F7CEDA8860B3
:100DB00015E0912EC2DA90FFFECF00911B010230A8
:100DC000B8F3292F2C7330911D0120931D01231797
:100DD00079F79A9479F7877F97FF03E097FD02E010
:100DE00000936900002701600CBB9D7FF894B9DA7D
:100DF000B8DAB7DA7894A9DA00920D019EDA009198
:100E00001B010A3F08F00DCF10910D01011710F0E2
:100E100000930D01013090F7F894ACDAABDAAADA5E
:100E2000789493DA8ADA00911B010130D8F3F4DD6B
:100E300022243324442455240FEF00931F010092F1
:100E4000050100920601009207010092080100923C
:100E5000090100920E017727882700921E01009158
:100E60007A000F7700937A0000917B000064009372
:100E70007B0034DC8460706111DC6CDD5CDA1BDDCE
:100E80005ADA59DA28DD59DA37DD57DA56DA41DD30
:100E900056DA50DD52DA4FDA7F7E7062FFDB5ADDC0
:100EA0003ADC87DCC3DDD6DD06DD35DC82DCBEDD89
:100EB000D1DD11DD30DC7DDCB9DDCCDD1DDD2BDCF1
:100EC00078DCB4DDC7DD25DD26DC73DCAFDDC2DD1B
:100ED00031DD21DC6EDCAADD0091150110911601D7
:100EE000083E23E0120710F0B5DDD9CF7F7D706496
:100EF000D5DB02E000930001ADDD2CDD0CDC59DC1C
:100F000095DDA8DDD8DC07DC54DC90DDA3DDE3DC77
:100F100002DC4FDC8BDD9EDDEFDCFDDB4ADC86DDB9
:100F200099DDF7DCF8DB45DC81DD94DD03DDF3DB07
:100F300040DC7CDD009100010A9521F00093000166
:100F400089DDDBCF7F7B7068A9DB84DD03DDE8DB37
:100F50001CDC2FDC51DC01E00093000161DC70FF40
:100F600097C094DCA5DCA7DCDBDB0FDC22DC44DCF7
:100F700072DC70FF8DC08ADC9BDCADDCD1DB05DC74
:100F800018DC3ADC4DDC70FF83C080DC91DCB4DC23
:100F9000C7DBFBDB0EDC30DC5EDC70FF79C076DCAF
:100FA00087DCB7DCBDDBF1DB04DC26DC39DC70FF81
:100FB0006FC06CDC7DDCBEDCB3DBE7DBFADB1CDCAA
:100FC0004ADC70FF65C062DC73DCC4DCA9DBDDDBFE
:100FD000F0DB12DC009100010A9519F0009300018A
:100FE000BDCFF8948B7F0BB1047F0BB9599AA3E561
:100FF000B1E0FD01789414DC70FF4AC047DCD2D91F
:1010000057DCB6DC8DDBC1DBD4DBF6DB24DC70FF28
:101010003FC03CDCF5D94CDCB8DC82DBB6DBC9DB9D
:10102000EBDBFEDB70FF34C031DC0BDA41DCBEDC15
:1010300077DBABDBBEDBE0DB0EDC70FF29C026DC40
:1010400035DA36DCBDDC6CDBA0DBB3DBD5DBE8DB23
:1010500070FF1EC01BDC6CDA2BDCC3DC61DB95DBB4
:10106000A8DBCADBF8DBE4DA70FF12C00FDCEADAD7
:101070001FDCC4DC55DB89DB9CDBBEDB7F770091AA
:101080001E01013028F40091040107FD09F4B3CFDB
:0C109000C3DC22243324442455248ACEDF
:00000001FF

251
Atmel/Hex files/HC5A1SA8.main.hex

@ -1,251 +0,0 @@
:020000020000FC
:1000000002C60CC0000000000EC19DC0E6C000008A
:10001000E8C09AC000000000000000001FB64CB508
:100020005DB591FD23C097FF62E097FD63E065BF7A
:100030009260C0B297FDC094C2FE03C0742E852E9C
:100040007EC097FF63E097FD62E065BF662760644E
:100050006ABF9D7F40E050E0C0B297FDC094C2FCF3
:1000600067C050937C0040937B0062C097FF63E0C1
:1000700097FD62E065BF9D7F83FF3BC097FF62E015
:1000800097FD63E065BF662760646ABF9260409336
:10009000790050937A0060917700B0907800461B09
:1000A0005B09B02C443B60E0560720F46627606291
:1000B000B62E17C0483661E0560720F46627606107
:1000C000B62E0FC0403D62E0560720F466276860F8
:1000D000B62E07C0403A65E0560718F466276460FC
:1000E000B62E4091790050917A004093770050935A
:1000F00078004719580995FD09C094FD09C0569527
:10010000479593FD05C05695479502C0440F551F6E
:100110004A3F500508F04AEF50917B0050937C0015
:1001200040937B0083FF04C06CE3609596239B297A
:1001300040E2D42E916083FD02C050E05BBF50E1ED
:10014000E52E1FBE189518951FB6DD2011F0DA9424
:100150001EC040E050E060B397FD609562FD4AEF3D
:1001600097FF63E097FD62E065BF662760646ABF42
:100170009D7F60B397FD609562FD5AEF451749F783
:1001800050E2D52E40937C0040937B009160EE209E
:1001900011F0EA9405C050E45BBF552750645ABF84
:1001A00090FF19C050917C0040917B0095FD450F58
:1001B00095FD47959E7F50918A00451710F4409118
:1001C0008A00572F507F552331F4242E4091880008
:1001D000433008F0422C1FBE18951FB67E7F1FBE0D
:1001E00018951FB652E040917B00415018F00092E4
:1001F0007E0009C040917E004F3F29F040917E0073
:10020000439540937E0060918800623011F4209005
:100210006D00321431F010F03A9401C033945A95C5
:1002200091F71FBE18951FB6601421F064BC6624B8
:100230001FBE189581FF0994452D089496FF440F21
:1002400010F0642E40E044BD58B18D7F652D6A3FAB
:1002500070F442B3447F42BB82FF09C042E04A953A
:10026000F1F742B3406B42BB816055FF8E7F1FBEEA
:100270001895826042C09198939A82603EC090988F
:10028000919A82603AC09398909A826036C04FE00B
:10029000949895984A95E1F79198939A82602DC029
:1002A0004FE0949897984A95E1F79198939A8260D5
:1002B00024C04FE0979894984A95E1F79098919AC6
:1002C00082601BC04FE0979895984A95E1F7909807
:1002D000919A826012C04FE0959897984A95E1F7FD
:1002E0009398909A826009C04FE0959894984A95A7
:1002F000E1F79398909A826000C0452D409508944C
:1003000096FF440F10F0642E40E044BD1FBE1895C8
:100310000000089521E00AC023E008C02AE006C0DA
:100320002EE104C024E602C028EC00C014E000EC7A
:10033000EFDF0A95E9F71A95D1F72A95B9F70895ED
:1003400035E120E509C032E124E606C03FE028E7B8
:1003500003C03CE02CE800C0979A06E90A95F1F743
:100360000CE0939AD5DF0A95E9F7939810E4032FF0
:10037000CFDF0A95E9F71A95D1F72A9569F797988B
:10038000089500918800033008F028C000916300B0
:100390001091640022E00038120770F0422C0092A5
:1003A000650000926600009267000092680000926B
:1003B000690000926E0012C0232D2095221F221F7B
:1003C000322F2795317033952E7F2054300920939A
:1003D00065003093660001E000936E00089500917F
:1003E0006E000015E1F0009165001091660020910B
:1003F000630030916400021B130B2FEF00381207CB
:1004000044F020E00F3712070CF405C00FE710E0AE
:1004100002C000E81FEF00936A0010936B0008957C
:1004200000916E00001581F1209167003091680005
:100430009090690000916A0010916B00200F311FAD
:10044000911E10EF91164CF01FE091160CF409C0AC
:100450002FEF3FEF1FE0912E04C020E030E010EFBF
:10046000912E10917F004116142D18F4113020F0B8
:1004700005C000234AF002C0002332F42093670035
:100480003093680090926900089500916E00001505
:10049000E9F100916A00112707FD1095000F111F67
:1004A0003091860030FD05C0343089F015950795F0
:1004B0000EC0A12E902EA5949794090D1A1D3530CB
:1004C00031F015950795333011F0159507952FEFFD
:1004D0000038120744F020E00F3712070CF405C073
:1004E0000FE710E002C000E81FEF232D00233AF0D1
:1004F000201B18F0213008F007C021E005C001954D
:10050000200F08F001C02FEF20936C000895009198
:100510006E000015D9F110916800209169003091AA
:10052000870030FD05C0343089F0259517950EC041
:10053000A22E912EA5949794190D2A1D353031F0D5
:1005400025951795333011F0259517950FEF10303D
:10055000200744F000E01F3F20070CF405C01FEF08
:1005600020E002C010E02FEF00916C0022233AF04F
:10057000011B18F0013008F008C001E006C010951A
:100580001395010F08F001C00FEF402E089507ECFE
:1005900007B906B10068006406B926B126FDF7CF99
:1005A00004B115B126B12F7726B92DE22093810031
:1005B00020E02093820021E0209380002DE230E0B3
:1005C000220F331F02171307C8F0209381003093C6
:1005D000820022E0209380002DE230E0922EA32EB4
:1005E000220F331F290D3A1D0217130738F02093ED
:1005F00081003093820023E020938000089507EC6F
:1006000007B906B10068006406B9089526B126FD51
:10061000FDCF04B115B126B12F7726B90F3F23E0E6
:10062000120778F42091810030918200021713079D
:1006300040F400917F00002359F00A9500937F0059
:1006400007C000917F000F3F19F0039500937F00D2
:10065000401608F4042D502E089574FD02E375FD34
:1006600000E576FD00E577FD08E2172F107F1123E6
:1006700099F020918B00233061F0102F169520FD0A
:1006800001C0169522FD02C0011B03C0010F08F432
:100690000FEF202E402E502E0895C8EBDBE0C093C4
:1006A0007500D09376002FEF3FE1209373003093D5
:1006B000740020936F003093700036952795209337
:1006C0007100309372001FEF109364000FEF0093DE
:1006D00063000895C0917500D091760004C0C09168
:1006E0006F00D0917000F8940CB51DB5C00FD11FEC
:1006F000DBBDCABD789471602091610030916200C9
:100700000093610010936200021B130B20916300A1
:1007100030916400E901D695C795D695C7952C1BF5
:100720003D0B200F311F209363003093640008F0CD
:1007300008951FEF109364000FEF00936300089576
:1007400070FDFECFC0917100D0917200F8940CB58D
:100750001DB50C0F1D1F1BBD0ABD78947160089557
:100760000091630010916400169507951695079502
:1007700016950795169507950550100918F0053040
:10078000100510F405E01127009373001093740016
:1007900000936F00109370001695079500937100F9
:1007A00010937200089570FDFECFC0916300D09148
:1007B0006400F8940CB51DB50C0F1D1F1BBD0ABDC0
:1007C000789471600895789470FF089582FD01C057
:1007D00004C080FDF8CF7894089506E0252D20957B
:1007E0002295269527702395F8940A95F1F718B16C
:1007F00015FDE9CF2A95D9F778940895789470FF7C
:10080000089582FD01C004C080FFF8CF7894089558
:1008100006E0252D20952295269527702395F8949E
:100820000A95F1F718B115FFE9CF2A95D9F7789411
:100830000895C0917300D0917400F8940CB51DB563
:100840000C0F1D1F1BBD0ABD78947160089570FDCB
:10085000FECF0895F894ABE6B1E0FD019798949A25
:1008600003E007B978940895F894A2E6B1E0FD0199
:10087000909881FD919A02E007B978940895F894D0
:10088000A9E5B1E0FD019498959A04E007B9789440
:100890000895F894A0E5B1E0FD01919881FD939A47
:1008A00003E007B978940895F894A7E4B1E0FD0156
:1008B0009598979A02E007B978940895F894A4E778
:1008C000B1E0FD01939881FD909A04E007B9789416
:1008D0000895F8949798949A03E007B97894089546
:1008E000F894AFE3B1E0FD01909881FD919A02E0A8
:1008F00007B978940895F8949498959A04E007B904
:1009000078940895F894ABE3B1E0FD01919881FDEE
:10091000939A03E007B978940895F8949598979A74
:1009200002E007B978940895F894A3E4B1E0FD01DA
:10093000939881FD909A04E007B978940895A9E30B
:10094000B1E0FD0102B3047F02BB02B30F7402BB2E
:1009500008950091750010917600083E23E012077B
:1009600008F408950091750010917600055010402C
:100970000093750010937600089570FDFECF0895E2
:1009800004E00093860004E00093870001E00093F8
:10099000880003E000938B0090649F770895E199AD
:1009A000FECF1EBB2FBBE09A0DB30895E199FECF99
:1009B0000DBB1EBB2FBBF894E29AE19A7894089580
:1009C00018E020E00FEFF2DF19E020E00FEFEEDF9C
:1009D000089518E020E005EAE9DF19E020E00AE5E3
:1009E000E5DF089518E020E0DADF053A31F519E097
:1009F00020E0D5DF0A3509F510E020E0D0DF0093D4
:100A0000860011E020E0CBDF0093870012E020E0B9
:100A1000C6DF0093880015E020E0C1DF00938B0063
:100A200016E020E0BCDF906401FD9F7B17E020E032
:100A3000B6DF9F7701FD906802C0A2DF01D0089564
:100A4000BFDF01E0009383000091860000938400E3
:100A50002CD002E000938300009187000093840073
:100A600024D003E000938300009188000093840069
:100A70001CD004E00093830000918B00009384005D
:100A800014D005E00093830001E096FF02E000939C
:100A900084000BD006E00093830001E097FD02E0A4
:100AA0000093840002D095DF089530918300009177
:100AB0008400313051F0323061F0333071F0343035
:100AC00081F0353091F03630A1F010E020E06EDF9B
:100AD00014C011E020E06ADF10C012E020E066DF01
:100AE0000CC015E020E062DF08C016E020E05EDF09
:100AF00004C017E020E05ADF00C0089505E0902E02
:100B000013DC9A94E9F70895F8941ADC1CDC1EDCD7
:100B100020DC04DC15DC17DC19DC1BDCFFDB10DC63
:100B200012DC14DC16DC7894089590908300A09079
:100B30008400F89405DC04DC03DCF0DB9A94D1F744
:100B400008DCECDBAA94E1F778940895F89401DCD2
:100B50007894E8DB00917B000130C0F7F894F0DB7B
:100B6000DDDBEEDB7894DEDB00917B000A3FB0F347
:100B7000CBDFC4DFC3DF01E00093830001E000931B
:100B8000840000E000938500D0DF05E0902ECCDBF0
:100B900000917B00013040F413DF87DF1ADFB4DF00
:100BA00008E000932100AADF9A9489F7009185005C
:100BB000039500938500033008F4E6CF9FDF009192
:100BC000840003950093840015E0009183000330B6
:100BD00009F413E000918300053008F012E013954A
:100BE00000918400011708F4CCCF88DF87DF0091E3
:100BF0008300039500938300073008F4BFCF08E01B
:100C0000009321007BDFF894A89501B5086101BD30
:100C100000E001BD04E00EBF0FE50DBF90DE00E077
:100C200008BB00E107BB00E005BB00E004BB00E03F
:100C300002BB0BEB01BB0024A0E0B0E00D92AA3197
:100C4000E9F7A0E6B0E004E60D920A95E9F777DE51
:100C500002E003BF02E00EBD01E005BD91DEC2DE91
:100C600063DB6EDB5DDB6FDB5BDB70DB59DB05E5DC
:100C700008BF09BF06B10260016006B9789487DC3D
:100C800097FF03E097FD02E005BF00E40BBF0027DC
:100C900000640ABF9D7F48DB3FDB00917B00013091
:100CA000D8F742DB886015E0912E36DB90FFFECF4F
:100CB00000917B000230B8F3292F2C7330917D0016
:100CC00020937D00231779F79A9479F7877F97FF10
:100CD00003E097FD02E005BF002700640ABF9D7F87
:100CE000F8942EDB2DDB2CDB78941EDB00926D005C
:100CF00013DB00917B000A3F08F028CF10916D00B4
:100D0000011710F000936D00013090F7F89421DB8B
:100D100020DB1FDB789408DBFFDA00917B000130D9
:100D2000D8F30DDE22243324442455240FEF0093FE
:100D30007F000092650000926600009267000092BA
:100D400068000092690000926E0077278827009261
:100D50007E0000B7086000BF37989FDC8460706138
:100D60007CDCACDDD7DA76DDD5DAD4DA7DDDD4DA39
:100D700086DDD2DAD1DA8DDDD1DA96DDCDDACADAE6
:100D80007F7E70626ADC9ADDA5DCEADCE2DDF5DDFF
:100D900061DDA0DCE5DCDDDDF0DD66DD9BDCE0DCDB
:100DA000D8DDEBDD6CDD96DCDBDCD3DDE6DD71DD93
:100DB00091DCD6DCCEDDE1DD77DD8CDCD1DCC9DD9C
:100DC0000091750010917600083E23E0120710F0A4
:100DD000D4DDD9CF7F7D706440DC02E000936000F9
:100DE000CCDD6CDD77DCBCDCB4DDC7DD33DD72DC93
:100DF000B7DCAFDDC2DD38DD6DDCB2DCAADDBDDD28
:100E00003EDD68DCADDCA5DDB8DD43DD63DCA8DC00
:100E1000A0DDB3DD49DD5EDCA3DC9BDD009160007D
:100E20000A9521F000936000A8DDDBCF7F7B70681E
:100E300014DCA3DD43DD53DC83DC92DCB4DC01E0B5
:100E400000936000C0DC70FF97C0F3DC00DD02DDC2
:100E500046DC76DC85DCA7DCD1DC70FF8DC0E9DC0C
:100E6000F6DC02DD3CDC6CDC7BDC9DDCACDC70FFAA
:100E700083C0DFDCECDC03DD32DC62DC71DC93DCC4
:100E8000BDDC70FF79C0D5DCE2DC03DD28DC58DC9A
:100E900067DC89DC98DC70FF6FC0CBDCD8DC04DD5C
:100EA0001EDC4EDC5DDC7FDCA9DC70FF65C0C1DCD4
:100EB000CEDC04DD14DC44DC53DC75DC0091600026
:100EC0000A9519F000936000BDCFF8948B7F02B3B0
:100ED0000F7402BB979AA3E4B1E0FD01789473DC30
:100EE00070FF4AC0A6DC4DDAB2DCF3DCF8DB28DCAC
:100EF00037DC59DC83DC70FF3FC09BDC70DAA7DC99
:100F0000EFDCEDDB1DDC2CDC4EDC5DDC70FF34C087
:100F100090DC86DA9CDCEFDCE2DB12DC21DC43DCFB
:100F20006DDC70FF29C085DCB0DA91DCEBDCD7DB4F
:100F300007DC16DC38DC47DC70FF1EC07ADCE7DA41
:100F400086DCEBDCCCDBFCDB0BDC2DDC57DC57DBA5
:100F500070FF12C06EDC5ADB7ADCE6DCC0DBF0DB53
:100F6000FFDB21DC7F7700917E00013028F40091C7
:100F7000640007FD09F4B3CFE2DC222433244424C7
:040F8000552491CE95
:00000001FF

251
Atmel/Hex files/HC5A1SA8.tail.hex

@ -1,251 +0,0 @@
:020000020000FC
:1000000002C60CC0000000000EC19DC0E6C000008A
:10001000E8C09AC000000000000000001FB64CB508
:100020005DB591FD23C097FF62E097FD63E065BF7A
:100030009260C0B297FDC094C2FE03C0742E852E9C
:100040007EC097FF63E097FD62E065BF662760644E
:100050006ABF9D7F40E050E0C0B297FDC094C2FCF3
:1000600067C050937C0040937B0062C097FF63E0C1
:1000700097FD62E065BF9D7F83FF3BC097FF62E015
:1000800097FD63E065BF662760646ABF9260409336
:10009000790050937A0060917700B0907800461B09
:1000A0005B09B02C443B60E0560720F46627606291
:1000B000B62E17C0483661E0560720F46627606107
:1000C000B62E0FC0403D62E0560720F466276860F8
:1000D000B62E07C0403A65E0560718F466276460FC
:1000E000B62E4091790050917A004093770050935A
:1000F00078004719580995FD09C094FD09C0569527
:10010000479593FD05C05695479502C0440F551F6E
:100110004A3F500508F04AEF50917B0050937C0015
:1001200040937B0083FF04C06CE3609596239B297A
:1001300040E2D42E916083FD02C050E05BBF50E1ED
:10014000E52E1FBE189518951FB6DD2011F0DA9424
:100150001EC040E050E060B397FD609562FD4AEF3D
:1001600097FF63E097FD62E065BF662760646ABF42
:100170009D7F60B397FD609562FD5AEF451749F783
:1001800050E2D52E40937C0040937B009160EE209E
:1001900011F0EA9405C050E45BBF552750645ABF84
:1001A00090FF19C050917C0040917B0095FD450F58
:1001B00095FD47959E7F50918A00451710F4409118
:1001C0008A00572F507F552331F4242E4091880008
:1001D000433008F0422C1FBE18951FB67E7F1FBE0D
:1001E00018951FB652E040917B00415018F00092E4
:1001F0007E0009C040917E004F3F29F040917E0073
:10020000439540937E0060918800623011F4209005
:100210006D00321431F010F03A9401C033945A95C5
:1002200091F71FBE18951FB6601421F064BC6624B8
:100230001FBE189581FF0994452D089496FF440F21
:1002400010F0642E40E044BD58B18D7F652D6A3FAB
:1002500070F442B3447F42BB82FF09C042E04A953A
:10026000F1F742B3406B42BB816055FF8E7F1FBEEA
:100270001895826042C09198939A82603EC090988F
:10028000919A82603AC09398909A826036C04FE00B
:10029000949895984A95E1F79198939A82602DC029
:1002A0004FE0949897984A95E1F79198939A8260D5
:1002B00024C04FE0979894984A95E1F79098919AC6
:1002C00082601BC04FE0979895984A95E1F7909807
:1002D000919A826012C04FE0959897984A95E1F7FD
:1002E0009398909A826009C04FE0959894984A95A7
:1002F000E1F79398909A826000C0452D409508944C
:1003000096FF440F10F0642E40E044BD1FBE1895C8
:100310000000089521E00AC023E008C02AE006C0DA
:100320002EE104C024E602C028EC00C014E000EC7A
:10033000EFDF0A95E9F71A95D1F72A95B9F70895ED
:1003400035E120E509C032E124E606C03FE028E7B8
:1003500003C03CE02CE800C0979A06E90A95F1F743
:100360000CE0939AD5DF0A95E9F7939810E4032FF0
:10037000CFDF0A95E9F71A95D1F72A9569F797988B
:10038000089500918800033008F028C000916300B0
:100390001091640022E00038120770F0422C0092A5
:1003A000650000926600009267000092680000926B
:1003B000690000926E0012C0232D2095221F221F7B
:1003C000322F2795317033952E7F2054300920939A
:1003D00065003093660001E000936E00089500917F
:1003E0006E000015E1F0009165001091660020910B
:1003F000630030916400021B130B2FEF00381207CB
:1004000044F020E00F3712070CF405C00FE710E0AE
:1004100002C000E81FEF00936A0010936B0008957C
:1004200000916E00001581F1209167003091680005
:100430009090690000916A0010916B00200F311FAD
:10044000911E10EF91164CF01FE091160CF409C0AC
:100450002FEF3FEF1FE0912E04C020E030E010EFBF
:10046000912E10917F004116142D18F4113020F0B8
:1004700005C000234AF002C0002332F42093670035
:100480003093680090926900089500916E00001505
:10049000E9F100916A00112707FD1095000F111F67
:1004A0003091860030FD05C0343089F015950795F0
:1004B0000EC0A12E902EA5949794090D1A1D3530CB
:1004C00031F015950795333011F0159507952FEFFD
:1004D0000038120744F020E00F3712070CF405C073
:1004E0000FE710E002C000E81FEF232D00233AF0D1
:1004F000201B18F0213008F007C021E005C001954D
:10050000200F08F001C02FEF20936C000895009198
:100510006E000015D9F110916800209169003091AA
:10052000870030FD05C0343089F0259517950EC041
:10053000A22E912EA5949794190D2A1D353031F0D5
:1005400025951795333011F0259517950FEF10303D
:10055000200744F000E01F3F20070CF405C01FEF08
:1005600020E002C010E02FEF00916C0022233AF04F
:10057000011B18F0013008F008C001E006C010951A
:100580001395010F08F001C00FEF402E089507ECFE
:1005900007B906B10068006406B926B126FDF7CF99
:1005A00004B115B126B12F7726B92DE22093810031
:1005B00020E02093820021E0209380002DE230E0B3
:1005C000220F331F02171307C8F0209381003093C6
:1005D000820022E0209380002DE230E0922EA32EB4
:1005E000220F331F290D3A1D0217130738F02093ED
:1005F00081003093820023E020938000089507EC6F
:1006000007B906B10068006406B9089526B126FD51
:10061000FDCF04B115B126B12F7726B90F3F23E0E6
:10062000120778F42091810030918200021713079D
:1006300040F400917F00002359F00A9500937F0059
:1006400007C000917F000F3F19F0039500937F00D2
:10065000401608F4042D502E089574FD02E375FD34
:1006600000E576FD00E577FD08E2172F107F1123E6
:1006700099F020918B00233061F0102F169520FD0A
:1006800001C0169522FD02C0011B03C0010F08F432
:100690000FEF202E402E502E0895C8EBDBE0C093C4
:1006A0007500D09376002FEF3FE1209373003093D5
:1006B000740020936F003093700036952795209337
:1006C0007100309372001FEF109364000FEF0093DE
:1006D00063000895C0917500D091760004C0C09168
:1006E0006F00D0917000F8940CB51DB5C00FD11FEC
:1006F000DBBDCABD789471602091610030916200C9
:100700000093610010936200021B130B20916300A1
:1007100030916400E901D695C795D695C7952C1BF5
:100720003D0B200F311F209363003093640008F0CD
:1007300008951FEF109364000FEF00936300089576
:1007400070FDFECFC0917100D0917200F8940CB58D
:100750001DB50C0F1D1F1BBD0ABD78947160089557
:100760000091630010916400169507951695079502
:1007700016950795169507950550100918F0053040
:10078000100510F405E01127009373001093740016
:1007900000936F00109370001695079500937100F9
:1007A00010937200089570FDFECFC0916300D09148
:1007B0006400F8940CB51DB50C0F1D1F1BBD0ABDC0
:1007C000789471600895789470FF089582FD01C057
:1007D00004C080FDF8CF7894089506E0252D20957B
:1007E0002295269527702395F8940A95F1F718B16C
:1007F00015FDE9CF2A95D9F778940895789470FF7C
:10080000089582FD01C004C080FFF8CF7894089558
:1008100006E0252D20952295269527702395F8949E
:100820000A95F1F718B115FFE9CF2A95D9F7789411
:100830000895C0917300D0917400F8940CB51DB563
:100840000C0F1D1F1BBD0ABD78947160089570FDCB
:10085000FECF0895F894ABE6B1E0FD019798949A25
:1008600003E007B978940895F894A2E6B1E0FD0199
:10087000909881FD919A02E007B978940895F894D0
:10088000A9E5B1E0FD019498959A04E007B9789440
:100890000895F894A0E5B1E0FD01919881FD939A47
:1008A00003E007B978940895F894A7E4B1E0FD0156
:1008B0009598979A02E007B978940895F894A4E778
:1008C000B1E0FD01939881FD909A04E007B9789416
:1008D0000895F8949798949A03E007B97894089546
:1008E000F894AFE3B1E0FD01909881FD919A02E0A8
:1008F00007B978940895F8949498959A04E007B904
:1009000078940895F894ABE3B1E0FD01919881FDEE
:10091000939A03E007B978940895F8949598979A74
:1009200002E007B978940895F894A3E4B1E0FD01DA
:10093000939881FD909A04E007B978940895A9E30B
:10094000B1E0FD0102B3047F02BB02B30F7402BB2E
:1009500008950091750010917600083E23E012077B
:1009600008F408950091750010917600055010402C
:100970000093750010937600089570FDFECF0895E2
:1009800004E00093860004E00093870001E00093F8
:10099000880003E000938B0090649F770895E199AD
:1009A000FECF1EBB2FBBE09A0DB30895E199FECF99
:1009B0000DBB1EBB2FBBF894E29AE19A7894089580
:1009C00018E020E00FEFF2DF19E020E00FEFEEDF9C
:1009D000089518E020E005EAE9DF19E020E00AE5E3
:1009E000E5DF089518E020E0DADF053A31F519E097
:1009F00020E0D5DF0A3509F510E020E0D0DF0093D4
:100A0000860011E020E0CBDF0093870012E020E0B9
:100A1000C6DF0093880015E020E0C1DF00938B0063
:100A200016E020E0BCDF906401FD9F7B17E020E032
:100A3000B6DF9F7701FD906802C0A2DF01D0089564
:100A4000BFDF01E0009383000091860000938400E3
:100A50002CD002E000938300009187000093840073
:100A600024D003E000938300009188000093840069
:100A70001CD004E00093830000918B00009384005D
:100A800014D005E00093830001E096FF02E000939C
:100A900084000BD006E00093830001E097FD02E0A4
:100AA0000093840002D095DF089530918300009177
:100AB0008400313051F0323061F0333071F0343035
:100AC00081F0353091F03630A1F010E020E06EDF9B
:100AD00014C011E020E06ADF10C012E020E066DF01
:100AE0000CC015E020E062DF08C016E020E05EDF09
:100AF00004C017E020E05ADF00C0089505E0902E02
:100B000013DC9A94E9F70895F8941ADC1CDC1EDCD7
:100B100020DC04DC15DC17DC19DC1BDCFFDB10DC63
:100B200012DC14DC16DC7894089590908300A09079
:100B30008400F89405DC04DC03DCF0DB9A94D1F744
:100B400008DCECDBAA94E1F778940895F89401DCD2
:100B50007894E8DB00917B000130C0F7F894F0DB7B
:100B6000DDDBEEDB7894DEDB00917B000A3FB0F347
:100B7000CBDFC4DFC3DF01E00093830001E000931B
:100B8000840000E000938500D0DF05E0902ECCDBF0
:100B900000917B00013040F413DF87DF1ADFB4DF00
:100BA00008E000932100AADF9A9489F7009185005C
:100BB000039500938500033008F4E6CF9FDF009192
:100BC000840003950093840015E0009183000330B6
:100BD00009F413E000918300053008F012E013954A
:100BE00000918400011708F4CCCF88DF87DF0091E3
:100BF0008300039500938300073008F4BFCF08E01B
:100C0000009321007BDFF894A89501B5086101BD30
:100C100000E001BD04E00EBF0FE50DBF90DE00E077
:100C200008BB00E107BB00E005BB00E004BB00E03F
:100C300002BB0BEB01BB0024A0E0B0E00D92AA3197
:100C4000E9F7A0E6B0E004E60D920A95E9F777DE51
:100C500002E003BF02E00EBD01E005BD91DEC2DE91
:100C600063DB6EDB5DDB6FDB5BDB70DB59DB05E5DC
:100C700008BF09BF06B10260016006B9789487DC3D
:100C800097FF03E097FD02E005BF00E40BBF0027DC
:100C900000640ABF9D7F48DB3FDB00917B00013091
:100CA000D8F742DB886015E0912E36DB90FFFECF4F
:100CB00000917B000230B8F3292F2C7330917D0016
:100CC00020937D00231779F79A9479F7877F97FF10
:100CD00003E097FD02E005BF002700640ABF9D7F87
:100CE000F8942EDB2DDB2CDB78941EDB00926D005C
:100CF00013DB00917B000A3F08F028CF10916D00B4
:100D0000011710F000936D00013090F7F89421DB8B
:100D100020DB1FDB789408DBFFDA00917B000130D9
:100D2000D8F30DDE22243324442455240FEF0093FE
:100D30007F000092650000926600009267000092BA
:100D400068000092690000926E0077278827009261
:100D50007E0000B7086000BF37989FDC8460706138
:100D60007CDCACDDD7DA76DDD5DAD4DA7DDDD4DA39
:100D700086DDD2DAD1DA8DDDD1DA96DDCDDACADAE6
:100D80007F7E70626ADC9ADDA5DCEADCE2DDF5DDFF
:100D900061DDA0DCE5DCDDDDF0DD66DD9BDCE0DCDB
:100DA000D8DDEBDD6CDD96DCDBDCD3DDE6DD71DD93
:100DB00091DCD6DCCEDDE1DD77DD8CDCD1DCC9DD9C
:100DC0000091750010917600083E23E0120710F0A4
:100DD000D4DDD9CF7F7D706440DC02E000936000F9
:100DE000CCDD6CDD77DCBCDCB4DDC7DD33DD72DC93
:100DF000B7DCAFDDC2DD38DD6DDCB2DCAADDBDDD28
:100E00003EDD68DCADDCA5DDB8DD43DD63DCA8DC00
:100E1000A0DDB3DD49DD5EDCA3DC9BDD009160007D
:100E20000A9521F000936000A8DDDBCF7F7B70681E
:100E300014DCA3DD43DD53DC83DC92DCB4DC01E0B5
:100E400000936000C0DC70FF97C0F3DC00DD02DDC2
:100E500046DC76DC85DCA7DCD1DC70FF8DC0E9DC0C
:100E6000F6DC02DD3CDC6CDC7BDC9DDCACDC70FFAA
:100E700083C0DFDCECDC03DD32DC62DC71DC93DCC4
:100E8000BDDC70FF79C0D5DCE2DC03DD28DC58DC9A
:100E900067DC89DC98DC70FF6FC0CBDCD8DC04DD5C
:100EA0001EDC4EDC5DDC7FDCA9DC70FF65C0C1DCD4
:100EB000CEDC04DD14DC44DC53DC75DC0091600026
:100EC0000A9519F000936000BDCFF8948B7F02B3B0
:100ED0000F7402BB979AA3E4B1E0FD01789473DC30
:100EE00070FF4AC0A6DC4DDAB2DCF3DCF8DB28DCAC
:100EF00037DC59DC83DC70FF3FC09BDC70DAA7DC99
:100F0000EFDCEDDB1DDC2CDC4EDC5DDC70FF34C087
:100F100090DC86DA9CDCEFDCE2DB12DC21DC43DCFB
:100F20006DDC70FF29C085DCB0DA91DCEBDCD7DB4F
:100F300007DC16DC38DC47DC70FF1EC07ADCE7DA41
:100F400086DCEBDCCCDBFCDB0BDC2DDC57DC57DBA5
:100F500070FF12C06EDC5ADB7ADCE6DCC0DBF0DB53
:100F6000FFDB21DC7F7700917E00013028F40091C7
:100F7000640007FD09F4B3CFE2DC222433244424C7
:040F8000552491CE95
:00000001FF

272
Atmel/Hex files/WalkeraWST10LT.main.hex

@ -1,272 +0,0 @@
:020000020000FC
:1000000085C613C0000000000000000000000000D2
:10001000000027C10BC0FFC0000001C100000000AC
:10002000ABC0000000000000000018951FB6409112
:1000300086005091870091FD29C06091810097FF53
:100040006F7B97FD6064609381009260C3B097FD01
:10005000C094C0FE03C0742E852E8AC060918100BA
:1000600097FF606497FD6F7B6093810066276062F5
:1000700066BB9D7F40E050E0C3B097FDC094C0FCDC
:100080006DC050931C0140931B0168C060918100BA
:1000900097FF606497FD6F7B609381009D7F83FF76
:1000A0003EC06091810097FF6F7B97FD6064609315
:1000B00081006627606266BB92604093190150938D
:1000C0001A0160911701B0901801461B5B09B02C12
:1000D000443B60E0560720F466276062B62E17C0E6
:1000E000483661E0560720F466276061B62E0FC0DF
:1000F000403D62E0560720F466276860B62E07C0D0
:10010000403A65E0560718F466276460B62E4091C1
:10011000190150911A014093170150931801471982
:10012000580995FD09C094FD09C05695479593FD62
:1001300005C05695479502C0440F551F4A3F5005CC
:1001400008F04AEF50911B0150931C0140931B0192
:1001500083FF04C06CE3609596239B2940E2D42E74
:10016000916083FD05C050916F005F7D50936F00DB
:1001700050E1E52E1FBE18951FB6DD2011F0DA9470
:1001800021C040E050E063B197FD609560FD4AEF0B
:100190006091810097FF606497FD6F7B60938100A1
:1001A0006627606266BB9D7F63B197FD609560FDC9
:1001B0005AEF451731F750E2D52E40931C0140937A
:1001C0001B019160EE2011F0EA9408C050916F007D
:1001D000506250936F005527506256BB90FF19C074
:1001E00050911C0140911B0195FD450F95FD4795D0
:1001F0009E7F50912A01451710F440912A01572FF4
:10020000507F552331F4242E40912801433008F0CB
:10021000422C1FBE18951FB67E7F1FBE18951FB6B5
:1002200052E040911B01415018F000921E0109C09C
:1002300040911E014F3F29F040911E01439540938C
:100240001E0160912801623011F420900D013214DA
:1002500031F010F03A9401C033945A9591F71FBED3
:1002600018951FB6601429F06092B20066241FBE74
:10027000189581FF0994452D089496FF440F10F0BE
:10028000642E40E04093B20050B78D7F652D6A3FE9
:1002900088F445B1497F45B94BB14F7D4BB982FFD9
:1002A00009C042E04A95F1F74BB14A614BB9816010
:1002B00055FF8E7F1FBE1895826042C05D982A9AB6
:1002C00082603EC029985D9A82603AC02A98299A35
:1002D000826036C04FE059985B984A95E1F75D9887
:1002E0002A9A82602DC04FE059985C984A95E1F7B0
:1002F0005D982A9A826024C04FE05C9859984A958C
:10030000E1F729985D9A82601BC04FE05C985B988A
:100310004A95E1F729985D9A826012C04FE05B9898
:100320005C984A95E1F72A98299A826009C04FE0C3
:100330005B9859984A95E1F72A98299A826000C0FB
:10034000452D4095089496FF440F10F0642E40E030
:100350004093B2001FBE18950000089521E00AC026
:1003600023E008C02AE006C02EE104C024E602C053
:1003700028EC00C014E000ECEFDF0A95E9F71A95CD
:10038000D1F72A95B9F7089535E120E509C032E1A2
:1003900024E606C03FE028E703C03CE02CE800C0AC
:1003A0005C9A06E90A95F1F70CE02A9AD5DF0A95DE
:1003B000E9F72A9810E4032FCFDF0A95E9F71A9599
:1003C000D1F72A9569F75C980895009128010330C8
:1003D00008F028C0009103011091040122E00038C8
:1003E000120770F0422C0092050100920601009263
:1003F0000701009208010092090100920E0112C04B
:10040000232D2095221F221F322F279531703395DF
:100410002E7F20543009209305013093060101E01E
:1004200000930E01089500910E010015E1F0009176
:100430000501109106012091030130910401021B76
:10044000130B2FEF0038120744F020E00F3712078C
:100450000CF405C00FE710E002C000E81FEF0093A6
:100460000A0110930B01089500910E01001581F10E
:1004700020910701309108019090090100910A0133
:1004800010910B01200F311F911E10EF91164CF0AF
:100490001FE091160CF409C02FEF3FEF1FE0912EE3
:1004A00004C020E030E010EF912E10911F014116A2
:1004B000142D18F4113020F005C000234AF002C0BA
:1004C000002332F420930701309308019092090130
:1004D000089500910E010015E9F100910A0111271C
:1004E00007FD1095000F111F3091260130FD05C04A
:1004F000343089F0159507950EC0A12E902EA59445
:100500009794090D1A1D353031F015950795333044
:1005100011F0159507952FEF0038120744F020E0F1
:100520000F3712070CF405C00FE710E002C000E817
:100530001FEF232D00233AF0201B18F0213008F084
:1005400007C021E005C00195200F08F001C02FEF82
:1005500020930C01089500910E010015D9F110911E
:100560000801209109013091270130FD05C0343088
:1005700089F0259517950EC0A22E912EA5949794DB
:10058000190D2A1D353031F025951795333011F0AE
:10059000259517950FEF1030200744F000E01F3F1E
:1005A00020070CF405C01FEF20E002C010E02FEF81
:1005B00000910C0122233AF0011B18F0013008F0E1
:1005C00008C001E006C010951395010F08F001C0A6
:1005D0000FEF402E089507EC00937C0000917A0005
:1005E0000068006400937A0020917A0026FDF3CF22
:1005F000009178001091790020917A002F77209354
:100600007A0024EB2093210121E02093220121E0B4
:100610002093200124EB31E0220F331F0217130730
:10062000C8F0209321013093220122E02093200181
:1006300024EB31E0922EA32E220F331F290D3A1DF9
:100640000217130738F0209321013093220123E091
:1006500020932001089507EC00937C0000917A001C
:100660000068006400937A00089520917A0026FDC6
:10067000FCCF009178001091790020917A002F77BB
:1006800020937A000F3F23E0120778F42091210194
:10069000309122010217130740F400911F0100233B
:1006A00059F00A9500931F0107C000911F010F3FE9
:1006B00019F0039500931F01401608F4042D502EE5
:1006C000089574FD02E375FD00E576FD00E577FD14
:1006D00008E2172F107F112399F020912B0123306E
:1006E00061F0102F169520FD01C0169522FD02C065
:1006F000011B03C0010F08F40FEF202E402E502ED7
:100700000895C8EBDBE0C0931501D09316012FEFDD
:100710003FE1209313013093140120930F01309394
:1007200010013695279520931101309312011FEF88
:10073000109304010FEF009303010895C091150178
:10074000D091160104C0C0910F01D0911001F8940E
:100750000091840010918500C00FD11FD0938900B3
:10076000C09388007894716020910101309102015A
:100770000093010110930201021B130B209103014E
:1007800030910401E901D695C795D695C7952C1BE4
:100790003D0B200F311F209303013093040108F01B
:1007A00008951FEF109304010FEF009303010895C4
:1007B00070FDFECFC0911101D0911201F89400910B
:1007C0008400109185000C0F1D1F10938900009369
:1007D00088007894716008950091030110910401DC
:1007E00016950795169507951695079516950795ED
:1007F0000550100918F00530100510F405E0112718
:10080000009313011093140100930F011093100132
:10081000169507950093110110931201089570FD2C
:10082000FECFC0910301D0910401F894009184009F
:10083000109185000C0F1D1F1093890000938800F4
:10084000789471600895789470FF089582FD01C0D6
:1008500004C080FDF8CF7894089506E0252D2095FA
:100860002295269527702395F8940A95F1F710B7ED
:1008700015FDE9CF2A95D9F778940895789470FFFB
:10088000089582FD01C004C080FFF8CF78940895D8
:1008900006E0252D20952295269527702395F8941E
:1008A0000A95F1F710B715FFE9CF2A95D9F7789493
:1008B0000895C0911301D0911401F894009184001F
:1008C000109185000C0F1D1F109389000093880064
:1008D00078947160089570FDFECF0895F894AEE8A5
:1008E000B1E0FD015C98599A00917B000F7B009369
:1008F0007B0078940895F894A5E8B1E0FD0129986B
:1009000081FD5D9A00917B00006400937B0003E011
:1009100000937C0078940895F894ACE7B1E0FD0171
:1009200059985B9A00917B00006400937B0002E081
:1009300000937C0078940895F894A3E7B1E0FD015A
:100940005D9881FD2A9A00917B000F7B00937B00CC
:1009500078940895F894AAE6B1E0FD015B985C9A5A
:1009600000917B00006400937B0003E000937C0017
:1009700078940895F894A7E9B1E0FD012A9881FDE3
:10098000299A00917B00006400937B0002E00093B1
:100990007C0078940895F8945C98599A00917B00B3
:1009A0000F7B00937B0078940895F894A2E6B1E061
:1009B000FD01299881FD5D9A00917B000064009300
:1009C0007B0003E000937C0078940895F894599894
:1009D0005B9A00917B00006400937B0002E000932F
:1009E0007C0078940895F894AEE5B1E0FD015D983F
:1009F00081FD2A9A00917B000F7B00937B00789405
:100A00000895F8945B985C9A00917B0000640093D1
:100A10007B0003E000937C0078940895F894A6E6A8
:100A2000B1E0FD012A9881FD299A00917B000064C4
:100A300000937B0002E000937C0078940895ACE57D
:100A4000B1E0FD0105B1097F05B90BB10F7D0BB90F
:100A50000BB1057E0BB90895009115011091160197
:100A6000083E23E0120708F4089500911501109143
:100A700016010550104000931501109316010895BA
:100A800070FDFECF089504E00093260104E000937A
:100A9000270101E00093280103E000932B019064FB
:100AA0009F770895F999FECF11BD22BDF89A00B540
:100AB0000895F999FECF00BD11BD22BDF894FA9AB0
:100AC000F99A7894089518E020E00FEFF2DF19E02A
:100AD00020E00FEFEEDF089518E020E005EAE9DFFF
:100AE00019E020E00AE5E5DF089518E020E0DADF0C
:100AF000053A31F519E020E0D5DF0A3509F510E0B7
:100B000020E0D0DF0093260111E020E0CBDF00934E
:100B1000270112E020E0C6DF0093280115E020E065
:100B2000C1DF00932B0116E020E0BCDF906401FDE3
:100B30009F7B17E020E0B6DF9F7701FD906802C041
:100B4000A2DF01D00895BFDF01E0009323010091EF
:100B50002601009324012CD002E000932301009190
:100B600027010093240124D003E000932301009186
:100B70002801009324011CD004E00093230100917C
:100B80002B010093240114D005E00093230101E020
:100B900096FF02E0009324010BD006E000932301AE
:100BA00001E097FD02E00093240102D095DF089553
:100BB0003091230100912401313051F0323061F045
:100BC000333071F0343081F0353091F03630A1F0AF
:100BD00010E020E06EDF14C011E020E06ADF10C0FA
:100BE00012E020E066DF0CC015E020E062DF08C004
:100BF00016E020E05EDF04C017E020E05ADF00C00E
:100C0000089505E0902EB4DB9A94E9F70895F894DE
:100C1000BBDBBDDBBFDBC1DBA5DBB6DBB8DBBADB37
:100C2000BCDBA0DBB1DBB3DBB5DBB7DB78940895CD
:100C300090902301A0902401F894A6DBA5DBA4DB0F
:100C400091DB9A94D1F7A9DB8DDBAA94E1F7789434
:100C50000895F894A2DB789489DB00911B010130A0
:100C6000C0F7F89491DB7EDB8FDB78947FDB00911B
:100C70001B010A3FB0F3CBDFC4DFC3DF01E0009309
:100C8000230101E00093240100E000932501D0DF5F
:100C900005E0902E6DDB00911B01013040F413DF65
:100CA00087DF1ADFB4DF08E000936000AADF9A94C0
:100CB00089F700912501039500932501033008F47D
:100CC000E6CF9FDF0091240103950093240115E0F6
:100CD00000912301033009F413E000912301053052
:100CE00008F012E0139500912401011708F4CCCF0D
:100CF00088DF87DF009123010395009323010730EC
:100D000008F4BFCF08E0009360007BDFF894A8955B
:100D100004B7007004BF0091600008610093600098
:100D200000E00093600000E80093610001E00093A0
:100D3000610004E00EBF0FEF0DBF81DE00E005B9DA
:100D400006E104B900E008B900E007B900E00BB91A
:100D50000AE30AB90024A0E0B0E00D92AA31E9F755
:100D6000A0E0B1E004E60D920A95E9F768DE02E042
:100D700005BD02E00093810001E00093B10083DE35
:100D8000B4DEF6DA01DBF0DA02DBEEDA03DBECDA12
:100D900001E005BB00936E0003E006BB00936F000B
:100DA00001E007BB0093700000917A0002600160CF
:100DB00000937A0078940FDC0091810097FF006423
:100DC00097FD0F7B0093810000916F0000620093FC
:100DD0006F000027006206BB9D7FCADAC1DA00916E
:100DE0001B010130D8F7C4DA886015E0912EB8DA1B
:100DF00090FFFECF00911B010230B8F3292F2C7316
:100E000030911D0120931D01231779F79A9479F7EA
:100E1000877F0091810097FF006497FD0F7B00930F
:100E200081000027006206BB9D7FF894ADDAACDA42
:100E3000ABDA78949DDA00920D0192DA00911B01F1
:100E40000A3F08F006CF10910D01011710F0009332
:100E50000D01013090F7F894A0DA9FDA9EDA7894C9
:100E600087DA7EDA00911B010130D8F3E8DD222415
:100E70003324442455240FEF00931F0100920501F1
:100E800000920601009207010092080100920901F8
:100E900000920E017727882700921E0100917A00A8
:100EA0000F7700937A0000917B00006400937B0031
:100EB00028DC8460706105DC5DDD50DA0FDD4EDA20
:100EC0004DDA19DD4DDA28DD4BDA4ADA35DD4ADA5A
:100ED00041DD46DA43DA7F7E7062F3DB4BDD2EDCE8
:100EE0007BDCBADDCDDDFADC29DC76DCB5DDC8DD06
:100EF00002DD24DC71DCB0DDC3DD0EDD1FDC6CDC6B
:100F0000ABDDBEDD19DD1ADC67DCA6DDB9DD22DD77
:100F100015DC62DCA1DD0091150110911601083E7F
:100F200023E0120710F0ACDDD9CF7F7D7064C9DB00
:100F300002E000930001A4DD1DDD00DC4DDC8CDD52
:100F40009FDDCCDCFBDB48DC87DD9ADDD4DCF6DB27
:100F500043DC82DD95DDE0DCF1DB3EDC7DDD90DD38
:100F6000EBDCECDB39DC78DD8BDDF4DCE7DB34DC7F
:100F700073DD009100010A9521F00093000180DDEE
:100F8000DBCF7F7B70689DDB7BDDF4DCDCDB10DCA2
:100F900023DC45DC01E00093000155DC70FF97C0C5
:100FA00088DC99DC9BDCCFDB03DC16DC38DC66DC20
:100FB00070FF8DC07EDC8FDC9EDCC5DBF9DB0CDCDA
:100FC0002EDC41DC70FF83C074DC85DCA5DCBBDB80
:100FD000EFDB02DC24DC52DC70FF79C06ADC7BDCF6
:100FE000ABDCB1DBE5DBF8DB1ADC2DDC70FF6FC0BE
:100FF00060DC71DCAFDCA7DBDBDBEEDB10DC3EDCD6
:1010000070FF65C056DC67DCB5DC9DDBD1DBE4DB63
:1010100006DC009100010A9519F000930001BDCF94
:10102000F8948B7F0BB1057E0BB95C9AA6E6B1E014
:10103000FD01789408DC70FF4AC03BDCC6D94BDC6C
:10104000AADC81DBB5DBC8DBEADB18DC70FF3FC064
:1010500030DCE9D940DCA9DC76DBAADBBDDBDFDBF9
:10106000F2DB70FF34C025DCFFD935DCAFDC6BDB95
:101070009FDBB2DBD4DB02DC70FF29C01ADC29DA8B
:101080002ADCB1DC60DB94DBA7DBC9DBDCDB70FFD7
:101090001EC00FDC60DA1FDCB4DC55DB89DB9CDBB7
:1010A000BEDBECDBD8DA70FF12C003DCDEDA13DC67
:1010B000B5DC49DB7DDB90DBB2DB7F7700911E0185
:1010C000013028F40091040107FD09F4B3CFB7DC27
:0A10D000222433244424552488CE42
:00000001FF

272
Atmel/Hex files/WalkeraWST10LT.tail.hex

@ -1,272 +0,0 @@
:020000020000FC
:1000000085C613C0000000000000000000000000D2
:10001000000027C10BC0FFC0000001C100000000AC
:10002000ABC0000000000000000018951FB6409112
:1000300086005091870091FD29C06091810097FF53
:100040006F7B97FD6064609381009260C3B097FD01
:10005000C094C0FE03C0742E852E8AC060918100BA
:1000600097FF606497FD6F7B6093810066276062F5
:1000700066BB9D7F40E050E0C3B097FDC094C0FCDC
:100080006DC050931C0140931B0168C060918100BA
:1000900097FF606497FD6F7B609381009D7F83FF76
:1000A0003EC06091810097FF6F7B97FD6064609315
:1000B00081006627606266BB92604093190150938D
:1000C0001A0160911701B0901801461B5B09B02C12
:1000D000443B60E0560720F466276062B62E17C0E6
:1000E000483661E0560720F466276061B62E0FC0DF
:1000F000403D62E0560720F466276860B62E07C0D0
:10010000403A65E0560718F466276460B62E4091C1
:10011000190150911A014093170150931801471982
:10012000580995FD09C094FD09C05695479593FD62
:1001300005C05695479502C0440F551F4A3F5005CC
:1001400008F04AEF50911B0150931C0140931B0192
:1001500083FF04C06CE3609596239B2940E2D42E74
:10016000916083FD05C050916F005F7D50936F00DB
:1001700050E1E52E1FBE18951FB6DD2011F0DA9470
:1001800021C040E050E063B197FD609560FD4AEF0B
:100190006091810097FF606497FD6F7B60938100A1
:1001A0006627606266BB9D7F63B197FD609560FDC9
:1001B0005AEF451731F750E2D52E40931C0140937A
:1001C0001B019160EE2011F0EA9408C050916F007D
:1001D000506250936F005527506256BB90FF19C074
:1001E00050911C0140911B0195FD450F95FD4795D0
:1001F0009E7F50912A01451710F440912A01572FF4
:10020000507F552331F4242E40912801433008F0CB
:10021000422C1FBE18951FB67E7F1FBE18951FB6B5
:1002200052E040911B01415018F000921E0109C09C
:1002300040911E014F3F29F040911E01439540938C
:100240001E0160912801623011F420900D013214DA
:1002500031F010F03A9401C033945A9591F71FBED3
:1002600018951FB6601429F06092B20066241FBE74
:10027000189581FF0994452D089496FF440F10F0BE
:10028000642E40E04093B20050B78D7F652D6A3FE9
:1002900088F445B1497F45B94BB14F7D4BB982FFD9
:1002A00009C042E04A95F1F74BB14A614BB9816010
:1002B00055FF8E7F1FBE1895826042C05D982A9AB6
:1002C00082603EC029985D9A82603AC02A98299A35
:1002D000826036C04FE059985B984A95E1F75D9887
:1002E0002A9A82602DC04FE059985C984A95E1F7B0
:1002F0005D982A9A826024C04FE05C9859984A958C
:10030000E1F729985D9A82601BC04FE05C985B988A
:100310004A95E1F729985D9A826012C04FE05B9898
:100320005C984A95E1F72A98299A826009C04FE0C3
:100330005B9859984A95E1F72A98299A826000C0FB
:10034000452D4095089496FF440F10F0642E40E030
:100350004093B2001FBE18950000089521E00AC026
:1003600023E008C02AE006C02EE104C024E602C053
:1003700028EC00C014E000ECEFDF0A95E9F71A95CD
:10038000D1F72A95B9F7089535E120E509C032E1A2
:1003900024E606C03FE028E703C03CE02CE800C0AC
:1003A0005C9A06E90A95F1F70CE02A9AD5DF0A95DE
:1003B000E9F72A9810E4032FCFDF0A95E9F71A9599
:1003C000D1F72A9569F75C980895009128010330C8
:1003D00008F028C0009103011091040122E00038C8
:1003E000120770F0422C0092050100920601009263
:1003F0000701009208010092090100920E0112C04B
:10040000232D2095221F221F322F279531703395DF
:100410002E7F20543009209305013093060101E01E
:1004200000930E01089500910E010015E1F0009176
:100430000501109106012091030130910401021B76
:10044000130B2FEF0038120744F020E00F3712078C
:100450000CF405C00FE710E002C000E81FEF0093A6
:100460000A0110930B01089500910E01001581F10E
:1004700020910701309108019090090100910A0133
:1004800010910B01200F311F911E10EF91164CF0AF
:100490001FE091160CF409C02FEF3FEF1FE0912EE3
:1004A00004C020E030E010EF912E10911F014116A2
:1004B000142D18F4113020F005C000234AF002C0BA
:1004C000002332F420930701309308019092090130
:1004D000089500910E010015E9F100910A0111271C
:1004E00007FD1095000F111F3091260130FD05C04A
:1004F000343089F0159507950EC0A12E902EA59445
:100500009794090D1A1D353031F015950795333044
:1005100011F0159507952FEF0038120744F020E0F1
:100520000F3712070CF405C00FE710E002C000E817
:100530001FEF232D00233AF0201B18F0213008F084
:1005400007C021E005C00195200F08F001C02FEF82
:1005500020930C01089500910E010015D9F110911E
:100560000801209109013091270130FD05C0343088
:1005700089F0259517950EC0A22E912EA5949794DB
:10058000190D2A1D353031F025951795333011F0AE
:10059000259517950FEF1030200744F000E01F3F1E
:1005A00020070CF405C01FEF20E002C010E02FEF81
:1005B00000910C0122233AF0011B18F0013008F0E1
:1005C00008C001E006C010951395010F08F001C0A6
:1005D0000FEF402E089507EC00937C0000917A0005
:1005E0000068006400937A0020917A0026FDF3CF22
:1005F000009178001091790020917A002F77209354
:100600007A0024EB2093210121E02093220121E0B4
:100610002093200124EB31E0220F331F0217130730
:10062000C8F0209321013093220122E02093200181
:1006300024EB31E0922EA32E220F331F290D3A1DF9
:100640000217130738F0209321013093220123E091
:1006500020932001089507EC00937C0000917A001C
:100660000068006400937A00089520917A0026FDC6
:10067000FCCF009178001091790020917A002F77BB
:1006800020937A000F3F23E0120778F42091210194
:10069000309122010217130740F400911F0100233B
:1006A00059F00A9500931F0107C000911F010F3FE9
:1006B00019F0039500931F01401608F4042D502EE5
:1006C000089574FD02E375FD00E576FD00E577FD14
:1006D00008E2172F107F112399F020912B0123306E
:1006E00061F0102F169520FD01C0169522FD02C065
:1006F000011B03C0010F08F40FEF202E402E502ED7
:100700000895C8EBDBE0C0931501D09316012FEFDD
:100710003FE1209313013093140120930F01309394
:1007200010013695279520931101309312011FEF88
:10073000109304010FEF009303010895C091150178
:10074000D091160104C0C0910F01D0911001F8940E
:100750000091840010918500C00FD11FD0938900B3
:10076000C09388007894716020910101309102015A
:100770000093010110930201021B130B209103014E
:1007800030910401E901D695C795D695C7952C1BE4
:100790003D0B200F311F209303013093040108F01B
:1007A00008951FEF109304010FEF009303010895C4
:1007B00070FDFECFC0911101D0911201F89400910B
:1007C0008400109185000C0F1D1F10938900009369
:1007D00088007894716008950091030110910401DC
:1007E00016950795169507951695079516950795ED
:1007F0000550100918F00530100510F405E0112718
:10080000009313011093140100930F011093100132
:10081000169507950093110110931201089570FD2C
:10082000FECFC0910301D0910401F894009184009F
:10083000109185000C0F1D1F1093890000938800F4
:10084000789471600895789470FF089582FD01C0D6
:1008500004C080FDF8CF7894089506E0252D2095FA
:100860002295269527702395F8940A95F1F710B7ED
:1008700015FDE9CF2A95D9F778940895789470FFFB
:10088000089582FD01C004C080FFF8CF78940895D8
:1008900006E0252D20952295269527702395F8941E
:1008A0000A95F1F710B715FFE9CF2A95D9F7789493
:1008B0000895C0911301D0911401F894009184001F
:1008C000109185000C0F1D1F109389000093880064
:1008D00078947160089570FDFECF0895F894AEE8A5
:1008E000B1E0FD015C98599A00917B000F7B009369
:1008F0007B0078940895F894A5E8B1E0FD0129986B
:1009000081FD5D9A00917B00006400937B0003E011
:1009100000937C0078940895F894ACE7B1E0FD0171
:1009200059985B9A00917B00006400937B0002E081
:1009300000937C0078940895F894A3E7B1E0FD015A
:100940005D9881FD2A9A00917B000F7B00937B00CC
:1009500078940895F894AAE6B1E0FD015B985C9A5A
:1009600000917B00006400937B0003E000937C0017
:1009700078940895F894A7E9B1E0FD012A9881FDE3
:10098000299A00917B00006400937B0002E00093B1
:100990007C0078940895F8945C98599A00917B00B3
:1009A0000F7B00937B0078940895F894A2E6B1E061
:1009B000FD01299881FD5D9A00917B000064009300
:1009C0007B0003E000937C0078940895F894599894
:1009D0005B9A00917B00006400937B0002E000932F
:1009E0007C0078940895F894AEE5B1E0FD015D983F
:1009F00081FD2A9A00917B000F7B00937B00789405
:100A00000895F8945B985C9A00917B0000640093D1
:100A10007B0003E000937C0078940895F894A6E6A8
:100A2000B1E0FD012A9881FD299A00917B000064C4
:100A300000937B0002E000937C0078940895ACE57D
:100A4000B1E0FD0105B1097F05B90BB10F7D0BB90F
:100A50000BB1057E0BB90895009115011091160197
:100A6000083E23E0120708F4089500911501109143
:100A700016010550104000931501109316010895BA
:100A800070FDFECF089504E00093260104E000937A
:100A9000270101E00093280103E000932B019064FB
:100AA0009F770895F999FECF11BD22BDF89A00B540
:100AB0000895F999FECF00BD11BD22BDF894FA9AB0
:100AC000F99A7894089518E020E00FEFF2DF19E02A
:100AD00020E00FEFEEDF089518E020E005EAE9DFFF
:100AE00019E020E00AE5E5DF089518E020E0DADF0C
:100AF000053A31F519E020E0D5DF0A3509F510E0B7
:100B000020E0D0DF0093260111E020E0CBDF00934E
:100B1000270112E020E0C6DF0093280115E020E065
:100B2000C1DF00932B0116E020E0BCDF906401FDE3
:100B30009F7B17E020E0B6DF9F7701FD906802C041
:100B4000A2DF01D00895BFDF01E0009323010091EF
:100B50002601009324012CD002E000932301009190
:100B600027010093240124D003E000932301009186
:100B70002801009324011CD004E00093230100917C
:100B80002B010093240114D005E00093230101E020
:100B900096FF02E0009324010BD006E000932301AE
:100BA00001E097FD02E00093240102D095DF089553
:100BB0003091230100912401313051F0323061F045
:100BC000333071F0343081F0353091F03630A1F0AF
:100BD00010E020E06EDF14C011E020E06ADF10C0FA
:100BE00012E020E066DF0CC015E020E062DF08C004
:100BF00016E020E05EDF04C017E020E05ADF00C00E
:100C0000089505E0902EB4DB9A94E9F70895F894DE
:100C1000BBDBBDDBBFDBC1DBA5DBB6DBB8DBBADB37
:100C2000BCDBA0DBB1DBB3DBB5DBB7DB78940895CD
:100C300090902301A0902401F894A6DBA5DBA4DB0F
:100C400091DB9A94D1F7A9DB8DDBAA94E1F7789434
:100C50000895F894A2DB789489DB00911B010130A0
:100C6000C0F7F89491DB7EDB8FDB78947FDB00911B
:100C70001B010A3FB0F3CBDFC4DFC3DF01E0009309
:100C8000230101E00093240100E000932501D0DF5F
:100C900005E0902E6DDB00911B01013040F413DF65
:100CA00087DF1ADFB4DF08E000936000AADF9A94C0
:100CB00089F700912501039500932501033008F47D
:100CC000E6CF9FDF0091240103950093240115E0F6
:100CD00000912301033009F413E000912301053052
:100CE00008F012E0139500912401011708F4CCCF0D
:100CF00088DF87DF009123010395009323010730EC
:100D000008F4BFCF08E0009360007BDFF894A8955B
:100D100004B7007004BF0091600008610093600098
:100D200000E00093600000E80093610001E00093A0
:100D3000610004E00EBF0FEF0DBF81DE00E005B9DA
:100D400006E104B900E008B900E007B900E00BB91A
:100D50000AE30AB90024A0E0B0E00D92AA31E9F755
:100D6000A0E0B1E004E60D920A95E9F768DE02E042
:100D700005BD02E00093810001E00093B10083DE35
:100D8000B4DEF6DA01DBF0DA02DBEEDA03DBECDA12
:100D900001E005BB00936E0003E006BB00936F000B
:100DA00001E007BB0093700000917A0002600160CF
:100DB00000937A0078940FDC0091810097FF006423
:100DC00097FD0F7B0093810000916F0000620093FC
:100DD0006F000027006206BB9D7FCADAC1DA00916E
:100DE0001B010130D8F7C4DA886015E0912EB8DA1B
:100DF00090FFFECF00911B010230B8F3292F2C7316
:100E000030911D0120931D01231779F79A9479F7EA
:100E1000877F0091810097FF006497FD0F7B00930F
:100E200081000027006206BB9D7FF894ADDAACDA42
:100E3000ABDA78949DDA00920D0192DA00911B01F1
:100E40000A3F08F006CF10910D01011710F0009332
:100E50000D01013090F7F894A0DA9FDA9EDA7894C9
:100E600087DA7EDA00911B010130D8F3E8DD222415
:100E70003324442455240FEF00931F0100920501F1
:100E800000920601009207010092080100920901F8
:100E900000920E017727882700921E0100917A00A8
:100EA0000F7700937A0000917B00006400937B0031
:100EB00028DC8460706105DC5DDD50DA0FDD4EDA20
:100EC0004DDA19DD4DDA28DD4BDA4ADA35DD4ADA5A
:100ED00041DD46DA43DA7F7E7062F3DB4BDD2EDCE8
:100EE0007BDCBADDCDDDFADC29DC76DCB5DDC8DD06
:100EF00002DD24DC71DCB0DDC3DD0EDD1FDC6CDC6B
:100F0000ABDDBEDD19DD1ADC67DCA6DDB9DD22DD77
:100F100015DC62DCA1DD0091150110911601083E7F
:100F200023E0120710F0ACDDD9CF7F7D7064C9DB00
:100F300002E000930001A4DD1DDD00DC4DDC8CDD52
:100F40009FDDCCDCFBDB48DC87DD9ADDD4DCF6DB27
:100F500043DC82DD95DDE0DCF1DB3EDC7DDD90DD38
:100F6000EBDCECDB39DC78DD8BDDF4DCE7DB34DC7F
:100F700073DD009100010A9521F00093000180DDEE
:100F8000DBCF7F7B70689DDB7BDDF4DCDCDB10DCA2
:100F900023DC45DC01E00093000155DC70FF97C0C5
:100FA00088DC99DC9BDCCFDB03DC16DC38DC66DC20
:100FB00070FF8DC07EDC8FDC9EDCC5DBF9DB0CDCDA
:100FC0002EDC41DC70FF83C074DC85DCA5DCBBDB80
:100FD000EFDB02DC24DC52DC70FF79C06ADC7BDCF6
:100FE000ABDCB1DBE5DBF8DB1ADC2DDC70FF6FC0BE
:100FF00060DC71DCAFDCA7DBDBDBEEDB10DC3EDCD6
:1010000070FF65C056DC67DCB5DC9DDBD1DBE4DB63
:1010100006DC009100010A9519F000930001BDCF94
:10102000F8948B7F0BB1057E0BB95C9AA6E6B1E014
:10103000FD01789408DC70FF4AC03BDCC6D94BDC6C
:10104000AADC81DBB5DBC8DBEADB18DC70FF3FC064
:1010500030DCE9D940DCA9DC76DBAADBBDDBDFDBF9
:10106000F2DB70FF34C025DCFFD935DCAFDC6BDB95
:101070009FDBB2DBD4DB02DC70FF29C01ADC29DA8B
:101080002ADCB1DC60DB94DBA7DBC9DBDCDB70FFD7
:101090001EC00FDC60DA1FDCB4DC55DB89DB9CDBB7
:1010A000BEDBECDBD8DA70FF12C003DCDEDA13DC67
:1010B000B5DC49DB7DDB90DBB2DB7F7700911E0185
:1010C000013028F40091040107FD09F4B3CFB7DC27
:0A10D000222433244424552488CE42
:00000001FF

21
Atmel/Makefile

@ -1,21 +0,0 @@
AVRASM:=wine "avrasm2/avrasm2.exe"
ASMFLAGS = -fI
ESCS := WalkeraWST10LT Feigao6 HC5A1SA48V HC5A1SA8
MAIN_FW := $(addsuffix .main.hex, $(ESCS))
TAIL_FW := $(addsuffix .tail.hex, $(ESCS))
FW = $(MAIN_FW) $(TAIL_FW)
all: $(FW)
$(MAIN_FW) : %.main.hex : %.inc BLHeli.asm
$(AVRASM) $(ASMFLAGS) -o $@ -i main.inc -i $< BLHeli.asm
$(TAIL_FW) : %.tail.hex : %.inc BLHeli.asm
$(AVRASM) $(ASMFLAGS) -o $@ -i tail.inc -i $< BLHeli.asm
clean:
rm -rf *.hex *.lst *.map *.obj

390
Atmel/WalkeraWST10LT.inc

@ -1,390 +0,0 @@
;**** **** **** **** ****
;
; BLHeli program for controlling brushless motors in helicopters
;
; Copyright 2011, 2012 Steffen Skaug
; This program is distributed under the terms of the GNU General Public License
;
; This file is part of BLHeli.
;
; BLHeli is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; BLHeli is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>.
;
;**** **** **** **** ****
;*********************
; Device Atmega88P(A)
;*********************
.include "m88Pdef.inc"
.equ ICP = 1 ; Choose input pin. Set to 0 for INT0 (pin32) and 1 for ICP1 (pin12)
;**** **** **** **** ****
; Fuses must be set to external oscillator 8.0- MHz
;**** **** **** **** ****
;**** **** **** **** ****
; Constant definitions
;**** **** **** **** ****
.equ ADC_LIMIT_L = 180 ; Power supply measurement ADC value for which main motor power is limited (low byte)
.equ ADC_LIMIT_H = 1 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs)
;*********************
; PORT D definitions *
;*********************
.equ Mux_B = 7 ;i Phase B input
.equ Comp_Com = 6 ;i Comparator common input (AIN0)
.equ BnFET = 5 ;o
.equ BpFET = 4 ;o
.equ CpFET = 3 ;o
.equ Rcp_In = 2 ;i RC pulse input
.equ ApFET = 1 ;o
;.equ = 0 ;i
.equ INIT_PD = 0
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET)+(1<<BnFET)
.MACRO Read_Rcp_Int
in @0, PIND
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Read_Rcp_Icp_Int
in @0, PINB
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
com @0 ; Yes - invert
.ENDMACRO
.MACRO Rcp_Int_Enable
ldi @0, (1<<INT0) ; Enable ext0int
out EIMSK, @0
.ENDMACRO
.MACRO Rcp_Int_Disable
ldi @0, 0 ; Disable ext0int
out EIMSK, @0
.ENDMACRO
.MACRO Rcp_Int_First
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sts EICRA, @0
.ENDMACRO
.MACRO Rcp_Int_Second
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive?
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative?
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising
sts EICRA, @0
.ENDMACRO
.MACRO Clear_Int_Flag
clr @0
sbr @0, (1<<INTF0) ; Clear ext0int flag
out EIFR, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Enable
lds @0, TIMSK1
sbr @0, (1<<ICIE1) ; Enable icp1int
sts TIMSK1, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Disable
lds @0, TIMSK1
cbr @0, (1<<ICIE1) ; Disable icp1int
sts TIMSK1, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_First
lds @0, TCCR1B
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge
sts TCCR1B, @0
.ENDMACRO
.MACRO Rcp_Icp_Int_Second
lds @0, TCCR1B
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge
sts TCCR1B, @0
.ENDMACRO
.MACRO Clear_Icp_Int_Flag
clr @0
sbr @0, (1<<ICF1) ; Clear icp1int flag
out TIFR1, @0
.ENDMACRO
.MACRO ApFET_on
sbi PORTD,1
.ENDMACRO
.MACRO ApFET_off
cbi PORTD,1
.ENDMACRO
.MACRO CpFET_on
sbi PORTD,3
.ENDMACRO
.MACRO CpFET_off
cbi PORTD,3
.ENDMACRO
.MACRO BpFET_on
sbi PORTD,4
.ENDMACRO
.MACRO BpFET_off
cbi PORTD,4
.ENDMACRO
.MACRO All_pFETs_Off
in @0, PORTD
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
.MACRO All_pFETs_On
in @0, PORTD
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET)
out PORTD, @0
.ENDMACRO
;*********************
; PORT C definitions *
;*********************
;.equ = 7 ; ADC7
;.equ = 6 ; ADC6
;.equ = 5 ; ADC5
;.equ = 4 ; ADC4
.equ Mux_C = 3 ; Phase C input
.equ Mux_A = 2 ; Phase A input
;.equ = 1 ; ADC1
;.equ = 0 ; ADC0
.equ INIT_PC = 0
.equ DIR_PC = 0
.MACRO Comp_Init
lds @0, ADCSRA ; Disable ADC
cbr @0, (1<<ADEN)
sts ADCSRA, @0
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
.ENDMACRO
.MACRO Set_Comp_Phase_A
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
ldi @0, Mux_A ; Set comparator multiplexer to phase A
sts ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_C
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable
sbr @0, (1<<ACME)
sts ADCSRB, @0
ldi @0, Mux_C ; Set comparator multiplexer to phase C
sts ADMUX, @0
.ENDMACRO
.MACRO Set_Comp_Phase_B
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Disable
cbr @0, (1<<ACME)
sts ADCSRB, @0
.ENDMACRO
.MACRO Read_Comp_Out
in @0, ACSR ; Read comparator output
.ENDMACRO
;*********************
; PORT B definitions *
;*********************
;.equ = 7
;.equ = 6
;.equ = 5 (sck stk200 interface)
.equ DebugPin = 4 ;(miso stk200 interface)
;.equ = 3 (mosi stk200 interface)
.equ AnFET = 2
.equ CnFET = 1
.equ Rcp_Icp_In = 0
.equ INIT_PB = 0
.equ DIR_PB = (1<<DebugPin)+(1<<AnFET)+(1<<CnFET)
.MACRO AnFET_on
sbi PORTB,2
.ENDMACRO
.MACRO AnFET_off
cbi PORTB,2
.ENDMACRO
.MACRO CnFET_on
sbi PORTB,1
.ENDMACRO
.MACRO CnFET_off
cbi PORTB,1
.ENDMACRO
.MACRO BnFET_on
sbi PORTD,5
.ENDMACRO
.MACRO BnFET_off
cbi PORTD,5
.ENDMACRO
.MACRO All_nFETs_Off
in @0, PORTB
cbr @0, (1<<AnFET)+(1<<CnFET)
out PORTB, @0
in @0, PORTD
cbr @0, (1<<BnFET)
out PORTD, @0
.ENDMACRO
;**********************
; MCU specific macros *
;**********************
.MACRO Disable_Watchdog
cli ; Disable interrupts
wdr ; Reset watchdog timer
in @0, MCUSR ; Clear WDRF in MCUSR
andi @0, (0xff & (0<<WDRF))
out MCUSR, @0
lds @0, WDTCSR ; Write logical one to WDCE and WDE
ori @0, (1<<WDCE) | (1<<WDE)
sts WDTCSR, @0
ldi @0, (0<<WDE) ; Turn off WDT
sts WDTCSR, @0
.ENDMACRO
.MACRO Enable_Watchdog
ldi @0, (1<<WDE) ; Turn on WDT
sts WDTCSR, @0
.ENDMACRO
.MACRO Initialize_MCU
ldi @0, (1<<CLKPCE) ; Set clock prescaler change enable
sts CLKPR, @0
ldi @0, (1<<CLKPS0) ; Change clock prescaler (to divide by 2)
sts CLKPR, @0
.ENDMACRO
.MACRO Interrupt_Table_Definition
rjmp reset
rjmp ext_int0 ; ext_int0
nop ; ext_int1
nop ; pci0_int
nop ; pci1_int
nop ; pci2_int
nop ; wdt_int
nop ; t2oca_int
nop ; t2ocb_int
rjmp t2ovfl_int; t2ovfl_int
rjmp icp1_int ; icp1_int
rjmp t1oca_int ; t1oca_int
nop ; t1ocb_int
rjmp t1ovfl_int; t1ovfl_int
nop ; t0oca_int
nop ; t0ocb_int
rjmp t0ovfl_int; t0ovfl_int
nop ; spi_int
nop ; urxc
nop ; udre
nop ; utxc
; nop ; adc_int
; nop ; eep_int
; nop ; aci_int
; nop ; wire2_int
; nop ; spmc_int
.ENDMACRO
.MACRO Initialize_Interrupts
ldi Temp1, (1<<TOIE0)
out TIFR0, Temp1 ; Clear interrupts
sts TIMSK0, Temp1 ; Enable interrupts
ldi Temp1, (1<<TOIE1)+(1<<OCIE1A)
out TIFR1, Temp1 ; Clear interrupts
sts TIMSK1, Temp1 ; Enable interrupts
ldi Temp1, (1<<TOIE2)
out TIFR2, Temp1 ; Clear interrupts
sts TIMSK2, Temp1 ; Enable interrupts
.ENDMACRO
.MACRO Initialize_Adc
lds Temp1, ADCSRA ; Set ADCSRA register (1MHz clock)
sbr Temp1, (1<<ADPS1)
sbr Temp1, (1<<ADPS0)
sts ADCSRA, Temp1
.ENDMACRO
.MACRO Start_Adc
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0)
sts ADMUX, Temp1 ; Set ADMUX register (1.1V reference, left adj result, input 7)
lds @0, ADCSRA
sbr @0, (1<<ADEN) ; Enable ADC
sbr @0, (1<<ADSC) ; Start ADC conversion
sts ADCSRA, @0
.ENDMACRO
.MACRO Get_Adc_Status
lds @0, ADCSRA
.ENDMACRO
.MACRO Read_Adc_Result
lds @0, ADCL
lds @1, ADCH
.ENDMACRO
.MACRO Stop_Adc
lds @0, ADCSRA
cbr @0, (1<<ADEN) ; Disable ADC
sts ADCSRA, @0
.ENDMACRO
.MACRO Set_Timer0_CS0
out TCCR0B, @0
.ENDMACRO
.MACRO Set_Timer1_CS1
sts TCCR1B, @0
.ENDMACRO
.MACRO Set_Timer2_CS2
sts TCCR2B, @0
.ENDMACRO
.MACRO Read_TCNT1L
lds @0, TCNT1L
.ENDMACRO
.MACRO Read_TCNT1H
lds @0, TCNT1H
.ENDMACRO
.MACRO Read_ICR1L
lds @0, ICR1L
.ENDMACRO
.MACRO Read_ICR1H
lds @0, ICR1H
.ENDMACRO
.MACRO Set_OCR1AL
sts OCR1AL, @0
.ENDMACRO
.MACRO Set_OCR1AH
sts OCR1AH, @0
.ENDMACRO
.MACRO Set_TCNT2
sts TCNT2, @0
.ENDMACRO
.MACRO Check_Eeprom_Ready
sbic EECR, EEPE
.ENDMACRO
.MACRO Set_Eeprom_Address
out EEARL, @0
out EEARH, @1
.ENDMACRO
.MACRO Start_Eeprom_Write
sbi EECR, EEMPE
sbi EECR, EEPE
.ENDMACRO

958
Atmel/m48def.inc

@ -1,958 +0,0 @@
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
;***** Created: 2009-11-03 14:40 ******* Source: ATmega48.xml ************
;*************************************************************************
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y
;*
;* Number : AVR000
;* File Name : "m48def.inc"
;* Title : Register/Bit Definitions for the ATmega48
;* Date : 2009-11-03
;* Version : 2.35
;* Support E-mail : avr@atmel.com
;* Target MCU : ATmega48
;*
;* DESCRIPTION
;* When including this file in the assembly program file, all I/O register
;* names and I/O register bit names appearing in the data book can be used.
;* In addition, the six registers forming the three data pointers X, Y and
;* Z have been assigned names XL - ZH. Highest RAM address for Internal
;* SRAM is also defined
;*
;* The Register names are represented by their hexadecimal address.
;*
;* The Register Bit names are represented by their bit number (0-7).
;*
;* Please observe the difference in using the bit names with instructions
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc"
;* (skip if bit in register set/cleared). The following example illustrates
;* this:
;*
;* in r16,PORTB ;read PORTB latch
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#)
;* out PORTB,r16 ;output to PORTB
;*
;* in r16,TIFR ;read the Timer Interrupt Flag Register
;* sbrc r16,TOV0 ;test the overflow flag (use bit#)
;* rjmp TOV0_is_set ;jump if set
;* ... ;otherwise do something else
;*************************************************************************
#ifndef _M48DEF_INC_
#define _M48DEF_INC_
#pragma partinc 0
; ***** SPECIFY DEVICE ***************************************************
.device ATmega48
#pragma AVRPART ADMIN PART_NAME ATmega48
.equ SIGNATURE_000 = 0x1e
.equ SIGNATURE_001 = 0x92
.equ SIGNATURE_002 = 0x05
#pragma AVRPART CORE CORE_VERSION V2E
; ***** I/O REGISTER DEFINITIONS *****************************************
; NOTE:
; Definitions marked "MEMORY MAPPED"are extended I/O ports
; and cannot be used with IN/OUT instructions
.equ UDR0 = 0xc6 ; MEMORY MAPPED
.equ UBRR0L = 0xc4 ; MEMORY MAPPED
.equ UBRR0H = 0xc5 ; MEMORY MAPPED
.equ UCSR0C = 0xc2 ; MEMORY MAPPED
.equ UCSR0B = 0xc1 ; MEMORY MAPPED
.equ UCSR0A = 0xc0 ; MEMORY MAPPED
.equ TWAMR = 0xbd ; MEMORY MAPPED
.equ TWCR = 0xbc ; MEMORY MAPPED
.equ TWDR = 0xbb ; MEMORY MAPPED
.equ TWAR = 0xba ; MEMORY MAPPED
.equ TWSR = 0xb9 ; MEMORY MAPPED
.equ TWBR = 0xb8 ; MEMORY MAPPED
.equ ASSR = 0xb6 ; MEMORY MAPPED
.equ OCR2B = 0xb4 ; MEMORY MAPPED
.equ OCR2A = 0xb3 ; MEMORY MAPPED
.equ TCNT2 = 0xb2 ; MEMORY MAPPED
.equ TCCR2B = 0xb1 ; MEMORY MAPPED
.equ TCCR2A = 0xb0 ; MEMORY MAPPED
.equ OCR1BL = 0x8a ; MEMORY MAPPED
.equ OCR1BH = 0x8b ; MEMORY MAPPED
.equ OCR1AL = 0x88 ; MEMORY MAPPED
.equ OCR1AH = 0x89 ; MEMORY MAPPED
.equ ICR1L = 0x86 ; MEMORY MAPPED
.equ ICR1H = 0x87 ; MEMORY MAPPED
.equ TCNT1L = 0x84 ; MEMORY MAPPED
.equ TCNT1H = 0x85 ; MEMORY MAPPED
.equ TCCR1C = 0x82 ; MEMORY MAPPED
.equ TCCR1B = 0x81 ; MEMORY MAPPED
.equ TCCR1A = 0x80 ; MEMORY MAPPED
.equ DIDR1 = 0x7f ; MEMORY MAPPED
.equ DIDR0 = 0x7e ; MEMORY MAPPED
.equ ADMUX = 0x7c ; MEMORY MAPPED
.equ ADCSRB = 0x7b ; MEMORY MAPPED
.equ ADCSRA = 0x7a ; MEMORY MAPPED
.equ ADCH = 0x79 ; MEMORY MAPPED
.equ ADCL = 0x78 ; MEMORY MAPPED
.equ TIMSK2 = 0x70 ; MEMORY MAPPED
.equ TIMSK1 = 0x6f ; MEMORY MAPPED
.equ TIMSK0 = 0x6e ; MEMORY MAPPED
.equ PCMSK1 = 0x6c ; MEMORY MAPPED
.equ PCMSK2 = 0x6d ; MEMORY MAPPED
.equ PCMSK0 = 0x6b ; MEMORY MAPPED
.equ EICRA = 0x69 ; MEMORY MAPPED
.equ PCICR = 0x68 ; MEMORY MAPPED
.equ OSCCAL = 0x66 ; MEMORY MAPPED
.equ PRR = 0x64 ; MEMORY MAPPED
.equ CLKPR = 0x61 ; MEMORY MAPPED
.equ WDTCSR = 0x60 ; MEMORY MAPPED
.equ SREG = 0x3f
.equ SPL = 0x3d
.equ SPH = 0x3e
.equ SPMCSR = 0x37
.equ MCUCR = 0x35
.equ MCUSR = 0x34
.equ SMCR = 0x33
.equ ACSR = 0x30
.equ SPDR = 0x2e
.equ SPSR = 0x2d
.equ SPCR = 0x2c
.equ GPIOR2 = 0x2b
.equ GPIOR1 = 0x2a
.equ OCR0B = 0x28
.equ OCR0A = 0x27
.equ TCNT0 = 0x26
.equ TCCR0B = 0x25
.equ TCCR0A = 0x24
.equ GTCCR = 0x23
.equ EEARL = 0x21
.equ EEDR = 0x20
.equ EECR = 0x1f
.equ GPIOR0 = 0x1e
.equ EIMSK = 0x1d
.equ EIFR = 0x1c
.equ PCIFR = 0x1b
.equ TIFR2 = 0x17
.equ TIFR1 = 0x16
.equ TIFR0 = 0x15
.equ PORTD = 0x0b
.equ DDRD = 0x0a
.equ PIND = 0x09
.equ PORTC = 0x08
.equ DDRC = 0x07
.equ PINC = 0x06
.equ PORTB = 0x05
.equ DDRB = 0x04
.equ PINB = 0x03
; ***** BIT DEFINITIONS **************************************************
; ***** USART0 ***********************
; UDR0 - USART I/O Data Register
.equ UDR0_0 = 0 ; USART I/O Data Register bit 0
.equ UDR0_1 = 1 ; USART I/O Data Register bit 1
.equ UDR0_2 = 2 ; USART I/O Data Register bit 2
.equ UDR0_3 = 3 ; USART I/O Data Register bit 3
.equ UDR0_4 = 4 ; USART I/O Data Register bit 4
.equ UDR0_5 = 5 ; USART I/O Data Register bit 5
.equ UDR0_6 = 6 ; USART I/O Data Register bit 6
.equ UDR0_7 = 7 ; USART I/O Data Register bit 7
; UCSR0A - USART Control and Status Register A
.equ MPCM0 = 0 ; Multi-processor Communication Mode
.equ U2X0 = 1 ; Double the USART transmission speed
.equ UPE0 = 2 ; Parity Error
.equ DOR0 = 3 ; Data overRun
.equ FE0 = 4 ; Framing Error
.equ UDRE0 = 5 ; USART Data Register Empty
.equ TXC0 = 6 ; USART Transmitt Complete
.equ RXC0 = 7 ; USART Receive Complete
; UCSR0B - USART Control and Status Register B
.equ TXB80 = 0 ; Transmit Data Bit 8
.equ RXB80 = 1 ; Receive Data Bit 8
.equ UCSZ02 = 2 ; Character Size
.equ TXEN0 = 3 ; Transmitter Enable
.equ RXEN0 = 4 ; Receiver Enable
.equ UDRIE0 = 5 ; USART Data register Empty Interrupt Enable
.equ TXCIE0 = 6 ; TX Complete Interrupt Enable
.equ RXCIE0 = 7 ; RX Complete Interrupt Enable
; UCSR0C - USART Control and Status Register C
.equ UCPOL0 = 0 ; Clock Polarity
.equ UCSZ00 = 1 ; Character Size
.equ UCPHA0 = UCSZ00 ; For compatibility
.equ UCSZ01 = 2 ; Character Size
.equ UDORD0 = UCSZ01 ; For compatibility
.equ USBS0 = 3 ; Stop Bit Select
.equ UPM00 = 4 ; Parity Mode Bit 0
.equ UPM01 = 5 ; Parity Mode Bit 1
.equ UMSEL00 = 6 ; USART Mode Select
.equ UMSEL0 = UMSEL00 ; For compatibility
.equ UMSEL01 = 7 ; USART Mode Select
.equ UMSEL1 = UMSEL01 ; For compatibility
; UBRR0H - USART Baud Rate Register High Byte
.equ UBRR8 = 0 ; USART Baud Rate Register bit 8
.equ UBRR9 = 1 ; USART Baud Rate Register bit 9
.equ UBRR10 = 2 ; USART Baud Rate Register bit 10
.equ UBRR11 = 3 ; USART Baud Rate Register bit 11
; UBRR0L - USART Baud Rate Register Low Byte
.equ _UBRR0 = 0 ; USART Baud Rate Register bit 0
.equ _UBRR1 = 1 ; USART Baud Rate Register bit 1
.equ UBRR2 = 2 ; USART Baud Rate Register bit 2
.equ UBRR3 = 3 ; USART Baud Rate Register bit 3
.equ UBRR4 = 4 ; USART Baud Rate Register bit 4
.equ UBRR5 = 5 ; USART Baud Rate Register bit 5
.equ UBRR6 = 6 ; USART Baud Rate Register bit 6
.equ UBRR7 = 7 ; USART Baud Rate Register bit 7
; ***** TWI **************************
; TWAMR - TWI (Slave) Address Mask Register
.equ TWAM0 = 1 ;
.equ TWAMR0 = TWAM0 ; For compatibility
.equ TWAM1 = 2 ;
.equ TWAMR1 = TWAM1 ; For compatibility
.equ TWAM2 = 3 ;
.equ TWAMR2 = TWAM2 ; For compatibility
.equ TWAM3 = 4 ;
.equ TWAMR3 = TWAM3 ; For compatibility
.equ TWAM4 = 5 ;
.equ TWAMR4 = TWAM4 ; For compatibility
.equ TWAM5 = 6 ;
.equ TWAMR5 = TWAM5 ; For compatibility
.equ TWAM6 = 7 ;
.equ TWAMR6 = TWAM6 ; For compatibility
; TWBR - TWI Bit Rate register
.equ TWBR0 = 0 ;
.equ TWBR1 = 1 ;
.equ TWBR2 = 2 ;
.equ TWBR3 = 3 ;
.equ TWBR4 = 4 ;
.equ TWBR5 = 5 ;
.equ TWBR6 = 6 ;
.equ TWBR7 = 7 ;
; TWCR - TWI Control Register
.equ TWIE = 0 ; TWI Interrupt Enable
.equ TWEN = 2 ; TWI Enable Bit
.equ TWWC = 3 ; TWI Write Collition Flag
.equ TWSTO = 4 ; TWI Stop Condition Bit
.equ TWSTA = 5 ; TWI Start Condition Bit
.equ TWEA = 6 ; TWI Enable Acknowledge Bit
.equ TWINT = 7 ; TWI Interrupt Flag
; TWSR - TWI Status Register
.equ TWPS0 = 0 ; TWI Prescaler
.equ TWPS1 = 1 ; TWI Prescaler
.equ TWS3 = 3 ; TWI Status
.equ TWS4 = 4 ; TWI Status
.equ TWS5 = 5 ; TWI Status
.equ TWS6 = 6 ; TWI Status
.equ TWS7 = 7 ; TWI Status
; TWDR - TWI Data register
.equ TWD0 = 0 ; TWI Data Register Bit 0
.equ TWD1 = 1 ; TWI Data Register Bit 1
.equ TWD2 = 2 ; TWI Data Register Bit 2
.equ TWD3 = 3 ; TWI Data Register Bit 3
.equ TWD4 = 4 ; TWI Data Register Bit 4
.equ TWD5 = 5 ; TWI Data Register Bit 5
.equ TWD6 = 6 ; TWI Data Register Bit 6
.equ TWD7 = 7 ; TWI Data Register Bit 7
; TWAR - TWI (Slave) Address register
.equ TWGCE = 0 ; TWI General Call Recognition Enable Bit
.equ TWA0 = 1 ; TWI (Slave) Address register Bit 0
.equ TWA1 = 2 ; TWI (Slave) Address register Bit 1
.equ TWA2 = 3 ; TWI (Slave) Address register Bit 2
.equ TWA3 = 4 ; TWI (Slave) Address register Bit 3
.equ TWA4 = 5 ; TWI (Slave) Address register Bit 4
.equ TWA5 = 6 ; TWI (Slave) Address register Bit 5
.equ TWA6 = 7 ; TWI (Slave) Address register Bit 6
; ***** TIMER_COUNTER_1 **************
; TIMSK1 - Timer/Counter Interrupt Mask Register
.equ TOIE1 = 0 ; Timer/Counter1 Overflow Interrupt Enable
.equ OCIE1A = 1 ; Timer/Counter1 Output CompareA Match Interrupt Enable
.equ OCIE1B = 2 ; Timer/Counter1 Output CompareB Match Interrupt Enable
.equ ICIE1 = 5 ; Timer/Counter1 Input Capture Interrupt Enable
; TIFR1 - Timer/Counter Interrupt Flag register
.equ TOV1 = 0 ; Timer/Counter1 Overflow Flag
.equ OCF1A = 1 ; Output Compare Flag 1A
.equ OCF1B = 2 ; Output Compare Flag 1B
.equ ICF1 = 5 ; Input Capture Flag 1
; TCCR1A - Timer/Counter1 Control Register A
.equ WGM10 = 0 ; Waveform Generation Mode
.equ WGM11 = 1 ; Waveform Generation Mode
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1
; TCCR1B - Timer/Counter1 Control Register B
.equ CS10 = 0 ; Prescaler source of Timer/Counter 1
.equ CS11 = 1 ; Prescaler source of Timer/Counter 1
.equ CS12 = 2 ; Prescaler source of Timer/Counter 1
.equ WGM12 = 3 ; Waveform Generation Mode
.equ WGM13 = 4 ; Waveform Generation Mode
.equ ICES1 = 6 ; Input Capture 1 Edge Select
.equ ICNC1 = 7 ; Input Capture 1 Noise Canceler
; TCCR1C - Timer/Counter1 Control Register C
.equ FOC1B = 6 ;
.equ FOC1A = 7 ;
; GTCCR - General Timer/Counter Control Register
.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0
.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** TIMER_COUNTER_2 **************
; TIMSK2 - Timer/Counter Interrupt Mask register
.equ TOIE2 = 0 ; Timer/Counter2 Overflow Interrupt Enable
.equ TOIE2A = TOIE2 ; For compatibility
.equ OCIE2A = 1 ; Timer/Counter2 Output Compare Match A Interrupt Enable
.equ OCIE2B = 2 ; Timer/Counter2 Output Compare Match B Interrupt Enable
; TIFR2 - Timer/Counter Interrupt Flag Register
.equ TOV2 = 0 ; Timer/Counter2 Overflow Flag
.equ OCF2A = 1 ; Output Compare Flag 2A
.equ OCF2B = 2 ; Output Compare Flag 2B
; TCCR2A - Timer/Counter2 Control Register A
.equ WGM20 = 0 ; Waveform Genration Mode
.equ WGM21 = 1 ; Waveform Genration Mode
.equ COM2B0 = 4 ; Compare Output Mode bit 0
.equ COM2B1 = 5 ; Compare Output Mode bit 1
.equ COM2A0 = 6 ; Compare Output Mode bit 1
.equ COM2A1 = 7 ; Compare Output Mode bit 1
; TCCR2B - Timer/Counter2 Control Register B
.equ CS20 = 0 ; Clock Select bit 0
.equ CS21 = 1 ; Clock Select bit 1
.equ CS22 = 2 ; Clock Select bit 2
.equ WGM22 = 3 ; Waveform Generation Mode
.equ FOC2B = 6 ; Force Output Compare B
.equ FOC2A = 7 ; Force Output Compare A
; TCNT2 - Timer/Counter2
.equ TCNT2_0 = 0 ; Timer/Counter 2 bit 0
.equ TCNT2_1 = 1 ; Timer/Counter 2 bit 1
.equ TCNT2_2 = 2 ; Timer/Counter 2 bit 2
.equ TCNT2_3 = 3 ; Timer/Counter 2 bit 3
.equ TCNT2_4 = 4 ; Timer/Counter 2 bit 4
.equ TCNT2_5 = 5 ; Timer/Counter 2 bit 5
.equ TCNT2_6 = 6 ; Timer/Counter 2 bit 6
.equ TCNT2_7 = 7 ; Timer/Counter 2 bit 7
; OCR2A - Timer/Counter2 Output Compare Register A
.equ OCR2A_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0
.equ OCR2A_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1
.equ OCR2A_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2
.equ OCR2A_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3
.equ OCR2A_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4
.equ OCR2A_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5
.equ OCR2A_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6
.equ OCR2A_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7
; OCR2B - Timer/Counter2 Output Compare Register B
.equ OCR2B_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0
.equ OCR2B_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1
.equ OCR2B_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2
.equ OCR2B_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3
.equ OCR2B_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4
.equ OCR2B_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5
.equ OCR2B_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6
.equ OCR2B_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7
; ASSR - Asynchronous Status Register
.equ TCR2BUB = 0 ; Timer/Counter Control Register2 Update Busy
.equ TCR2AUB = 1 ; Timer/Counter Control Register2 Update Busy
.equ OCR2BUB = 2 ; Output Compare Register 2 Update Busy
.equ OCR2AUB = 3 ; Output Compare Register2 Update Busy
.equ TCN2UB = 4 ; Timer/Counter2 Update Busy
.equ AS2 = 5 ; Asynchronous Timer/Counter2
.equ EXCLK = 6 ; Enable External Clock Input
; GTCCR - General Timer Counter Control register
.equ PSRASY = 1 ; Prescaler Reset Timer/Counter2
.equ PSR2 = PSRASY ; For compatibility
;.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** AD_CONVERTER *****************
; ADMUX - The ADC multiplexer Selection Register
.equ MUX0 = 0 ; Analog Channel and Gain Selection Bits
.equ MUX1 = 1 ; Analog Channel and Gain Selection Bits
.equ MUX2 = 2 ; Analog Channel and Gain Selection Bits
.equ MUX3 = 3 ; Analog Channel and Gain Selection Bits
.equ ADLAR = 5 ; Left Adjust Result
.equ REFS0 = 6 ; Reference Selection Bit 0
.equ REFS1 = 7 ; Reference Selection Bit 1
; ADCSRA - The ADC Control and Status register A
.equ ADPS0 = 0 ; ADC Prescaler Select Bits
.equ ADPS1 = 1 ; ADC Prescaler Select Bits
.equ ADPS2 = 2 ; ADC Prescaler Select Bits
.equ ADIE = 3 ; ADC Interrupt Enable
.equ ADIF = 4 ; ADC Interrupt Flag
.equ ADATE = 5 ; ADC Auto Trigger Enable
.equ ADSC = 6 ; ADC Start Conversion
.equ ADEN = 7 ; ADC Enable
; ADCSRB - The ADC Control and Status register B
.equ ADTS0 = 0 ; ADC Auto Trigger Source bit 0
.equ ADTS1 = 1 ; ADC Auto Trigger Source bit 1
.equ ADTS2 = 2 ; ADC Auto Trigger Source bit 2
.equ ACME = 6 ;
; ADCH - ADC Data Register High Byte
.equ ADCH0 = 0 ; ADC Data Register High Byte Bit 0
.equ ADCH1 = 1 ; ADC Data Register High Byte Bit 1
.equ ADCH2 = 2 ; ADC Data Register High Byte Bit 2
.equ ADCH3 = 3 ; ADC Data Register High Byte Bit 3
.equ ADCH4 = 4 ; ADC Data Register High Byte Bit 4
.equ ADCH5 = 5 ; ADC Data Register High Byte Bit 5
.equ ADCH6 = 6 ; ADC Data Register High Byte Bit 6
.equ ADCH7 = 7 ; ADC Data Register High Byte Bit 7
; ADCL - ADC Data Register Low Byte
.equ ADCL0 = 0 ; ADC Data Register Low Byte Bit 0
.equ ADCL1 = 1 ; ADC Data Register Low Byte Bit 1
.equ ADCL2 = 2 ; ADC Data Register Low Byte Bit 2
.equ ADCL3 = 3 ; ADC Data Register Low Byte Bit 3
.equ ADCL4 = 4 ; ADC Data Register Low Byte Bit 4
.equ ADCL5 = 5 ; ADC Data Register Low Byte Bit 5
.equ ADCL6 = 6 ; ADC Data Register Low Byte Bit 6
.equ ADCL7 = 7 ; ADC Data Register Low Byte Bit 7
; DIDR0 - Digital Input Disable Register
.equ ADC0D = 0 ;
.equ ADC1D = 1 ;
.equ ADC2D = 2 ;
.equ ADC3D = 3 ;
.equ ADC4D = 4 ;
.equ ADC5D = 5 ;
; ***** ANALOG_COMPARATOR ************
; ACSR - Analog Comparator Control And Status Register
.equ ACIS0 = 0 ; Analog Comparator Interrupt Mode Select bit 0
.equ ACIS1 = 1 ; Analog Comparator Interrupt Mode Select bit 1
.equ ACIC = 2 ; Analog Comparator Input Capture Enable
.equ ACIE = 3 ; Analog Comparator Interrupt Enable
.equ ACI = 4 ; Analog Comparator Interrupt Flag
.equ ACO = 5 ; Analog Compare Output
.equ ACBG = 6 ; Analog Comparator Bandgap Select
.equ ACD = 7 ; Analog Comparator Disable
; DIDR1 - Digital Input Disable Register 1
.equ AIN0D = 0 ; AIN0 Digital Input Disable
.equ AIN1D = 1 ; AIN1 Digital Input Disable
; ***** PORTB ************************
; PORTB - Port B Data Register
.equ PORTB0 = 0 ; Port B Data Register bit 0
.equ PB0 = 0 ; For compatibility
.equ PORTB1 = 1 ; Port B Data Register bit 1
.equ PB1 = 1 ; For compatibility
.equ PORTB2 = 2 ; Port B Data Register bit 2
.equ PB2 = 2 ; For compatibility
.equ PORTB3 = 3 ; Port B Data Register bit 3
.equ PB3 = 3 ; For compatibility
.equ PORTB4 = 4 ; Port B Data Register bit 4
.equ PB4 = 4 ; For compatibility
.equ PORTB5 = 5 ; Port B Data Register bit 5
.equ PB5 = 5 ; For compatibility
.equ PORTB6 = 6 ; Port B Data Register bit 6
.equ PB6 = 6 ; For compatibility
.equ PORTB7 = 7 ; Port B Data Register bit 7
.equ PB7 = 7 ; For compatibility
; DDRB - Port B Data Direction Register
.equ DDB0 = 0 ; Port B Data Direction Register bit 0
.equ DDB1 = 1 ; Port B Data Direction Register bit 1
.equ DDB2 = 2 ; Port B Data Direction Register bit 2
.equ DDB3 = 3 ; Port B Data Direction Register bit 3
.equ DDB4 = 4 ; Port B Data Direction Register bit 4
.equ DDB5 = 5 ; Port B Data Direction Register bit 5
.equ DDB6 = 6 ; Port B Data Direction Register bit 6
.equ DDB7 = 7 ; Port B Data Direction Register bit 7
; PINB - Port B Input Pins
.equ PINB0 = 0 ; Port B Input Pins bit 0
.equ PINB1 = 1 ; Port B Input Pins bit 1
.equ PINB2 = 2 ; Port B Input Pins bit 2
.equ PINB3 = 3 ; Port B Input Pins bit 3
.equ PINB4 = 4 ; Port B Input Pins bit 4
.equ PINB5 = 5 ; Port B Input Pins bit 5
.equ PINB6 = 6 ; Port B Input Pins bit 6
.equ PINB7 = 7 ; Port B Input Pins bit 7
; ***** PORTC ************************
; PORTC - Port C Data Register
.equ PORTC0 = 0 ; Port C Data Register bit 0
.equ PC0 = 0 ; For compatibility
.equ PORTC1 = 1 ; Port C Data Register bit 1
.equ PC1 = 1 ; For compatibility
.equ PORTC2 = 2 ; Port C Data Register bit 2
.equ PC2 = 2 ; For compatibility
.equ PORTC3 = 3 ; Port C Data Register bit 3
.equ PC3 = 3 ; For compatibility
.equ PORTC4 = 4 ; Port C Data Register bit 4
.equ PC4 = 4 ; For compatibility
.equ PORTC5 = 5 ; Port C Data Register bit 5
.equ PC5 = 5 ; For compatibility
.equ PORTC6 = 6 ; Port C Data Register bit 6
.equ PC6 = 6 ; For compatibility
; DDRC - Port C Data Direction Register
.equ DDC0 = 0 ; Port C Data Direction Register bit 0
.equ DDC1 = 1 ; Port C Data Direction Register bit 1
.equ DDC2 = 2 ; Port C Data Direction Register bit 2
.equ DDC3 = 3 ; Port C Data Direction Register bit 3
.equ DDC4 = 4 ; Port C Data Direction Register bit 4
.equ DDC5 = 5 ; Port C Data Direction Register bit 5
.equ DDC6 = 6 ; Port C Data Direction Register bit 6
; PINC - Port C Input Pins
.equ PINC0 = 0 ; Port C Input Pins bit 0
.equ PINC1 = 1 ; Port C Input Pins bit 1
.equ PINC2 = 2 ; Port C Input Pins bit 2
.equ PINC3 = 3 ; Port C Input Pins bit 3
.equ PINC4 = 4 ; Port C Input Pins bit 4
.equ PINC5 = 5 ; Port C Input Pins bit 5
.equ PINC6 = 6 ; Port C Input Pins bit 6
; ***** PORTD ************************
; PORTD - Port D Data Register
.equ PORTD0 = 0 ; Port D Data Register bit 0
.equ PD0 = 0 ; For compatibility
.equ PORTD1 = 1 ; Port D Data Register bit 1
.equ PD1 = 1 ; For compatibility
.equ PORTD2 = 2 ; Port D Data Register bit 2
.equ PD2 = 2 ; For compatibility
.equ PORTD3 = 3 ; Port D Data Register bit 3
.equ PD3 = 3 ; For compatibility
.equ PORTD4 = 4 ; Port D Data Register bit 4
.equ PD4 = 4 ; For compatibility
.equ PORTD5 = 5 ; Port D Data Register bit 5
.equ PD5 = 5 ; For compatibility
.equ PORTD6 = 6 ; Port D Data Register bit 6
.equ PD6 = 6 ; For compatibility
.equ PORTD7 = 7 ; Port D Data Register bit 7
.equ PD7 = 7 ; For compatibility
; DDRD - Port D Data Direction Register
.equ DDD0 = 0 ; Port D Data Direction Register bit 0
.equ DDD1 = 1 ; Port D Data Direction Register bit 1
.equ DDD2 = 2 ; Port D Data Direction Register bit 2
.equ DDD3 = 3 ; Port D Data Direction Register bit 3
.equ DDD4 = 4 ; Port D Data Direction Register bit 4
.equ DDD5 = 5 ; Port D Data Direction Register bit 5
.equ DDD6 = 6 ; Port D Data Direction Register bit 6
.equ DDD7 = 7 ; Port D Data Direction Register bit 7
; PIND - Port D Input Pins
.equ PIND0 = 0 ; Port D Input Pins bit 0
.equ PIND1 = 1 ; Port D Input Pins bit 1
.equ PIND2 = 2 ; Port D Input Pins bit 2
.equ PIND3 = 3 ; Port D Input Pins bit 3
.equ PIND4 = 4 ; Port D Input Pins bit 4
.equ PIND5 = 5 ; Port D Input Pins bit 5
.equ PIND6 = 6 ; Port D Input Pins bit 6
.equ PIND7 = 7 ; Port D Input Pins bit 7
; ***** TIMER_COUNTER_0 **************
; TIMSK0 - Timer/Counter0 Interrupt Mask Register
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare Match A Interrupt Enable
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare Match B Interrupt Enable
; TIFR0 - Timer/Counter0 Interrupt Flag register
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag
.equ OCF0A = 1 ; Timer/Counter0 Output Compare Flag 0A
.equ OCF0B = 2 ; Timer/Counter0 Output Compare Flag 0B
; TCCR0A - Timer/Counter Control Register A
.equ WGM00 = 0 ; Waveform Generation Mode
.equ WGM01 = 1 ; Waveform Generation Mode
.equ COM0B0 = 4 ; Compare Output Mode, Fast PWm
.equ COM0B1 = 5 ; Compare Output Mode, Fast PWm
.equ COM0A0 = 6 ; Compare Output Mode, Phase Correct PWM Mode
.equ COM0A1 = 7 ; Compare Output Mode, Phase Correct PWM Mode
; TCCR0B - Timer/Counter Control Register B
.equ CS00 = 0 ; Clock Select
.equ CS01 = 1 ; Clock Select
.equ CS02 = 2 ; Clock Select
.equ WGM02 = 3 ;
.equ FOC0B = 6 ; Force Output Compare B
.equ FOC0A = 7 ; Force Output Compare A
; TCNT0 - Timer/Counter0
.equ TCNT0_0 = 0 ;
.equ TCNT0_1 = 1 ;
.equ TCNT0_2 = 2 ;
.equ TCNT0_3 = 3 ;
.equ TCNT0_4 = 4 ;
.equ TCNT0_5 = 5 ;
.equ TCNT0_6 = 6 ;
.equ TCNT0_7 = 7 ;
; OCR0A - Timer/Counter0 Output Compare Register
.equ OCR0A_0 = 0 ;
.equ OCR0A_1 = 1 ;
.equ OCR0A_2 = 2 ;
.equ OCR0A_3 = 3 ;
.equ OCR0A_4 = 4 ;
.equ OCR0A_5 = 5 ;
.equ OCR0A_6 = 6 ;
.equ OCR0A_7 = 7 ;
; OCR0B - Timer/Counter0 Output Compare Register
.equ OCR0B_0 = 0 ;
.equ OCR0B_1 = 1 ;
.equ OCR0B_2 = 2 ;
.equ OCR0B_3 = 3 ;
.equ OCR0B_4 = 4 ;
.equ OCR0B_5 = 5 ;
.equ OCR0B_6 = 6 ;
.equ OCR0B_7 = 7 ;
; GTCCR - General Timer/Counter Control Register
;.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0
.equ PSR10 = PSRSYNC ; For compatibility
;.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** EXTERNAL_INTERRUPT ***********
; EICRA - External Interrupt Control Register
.equ ISC00 = 0 ; External Interrupt Sense Control 0 Bit 0
.equ ISC01 = 1 ; External Interrupt Sense Control 0 Bit 1
.equ ISC10 = 2 ; External Interrupt Sense Control 1 Bit 0
.equ ISC11 = 3 ; External Interrupt Sense Control 1 Bit 1
; EIMSK - External Interrupt Mask Register
.equ INT0 = 0 ; External Interrupt Request 0 Enable
.equ INT1 = 1 ; External Interrupt Request 1 Enable
; EIFR - External Interrupt Flag Register
.equ INTF0 = 0 ; External Interrupt Flag 0
.equ INTF1 = 1 ; External Interrupt Flag 1
; PCICR - Pin Change Interrupt Control Register
.equ PCIE0 = 0 ; Pin Change Interrupt Enable 0
.equ PCIE1 = 1 ; Pin Change Interrupt Enable 1
.equ PCIE2 = 2 ; Pin Change Interrupt Enable 2
; PCMSK2 - Pin Change Mask Register 2
.equ PCINT16 = 0 ; Pin Change Enable Mask 16
.equ PCINT17 = 1 ; Pin Change Enable Mask 17
.equ PCINT18 = 2 ; Pin Change Enable Mask 18
.equ PCINT19 = 3 ; Pin Change Enable Mask 19
.equ PCINT20 = 4 ; Pin Change Enable Mask 20
.equ PCINT21 = 5 ; Pin Change Enable Mask 21
.equ PCINT22 = 6 ; Pin Change Enable Mask 22
.equ PCINT23 = 7 ; Pin Change Enable Mask 23
; PCMSK1 - Pin Change Mask Register 1
.equ PCINT8 = 0 ; Pin Change Enable Mask 8
.equ PCINT9 = 1 ; Pin Change Enable Mask 9
.equ PCINT10 = 2 ; Pin Change Enable Mask 10
.equ PCINT11 = 3 ; Pin Change Enable Mask 11
.equ PCINT12 = 4 ; Pin Change Enable Mask 12
.equ PCINT13 = 5 ; Pin Change Enable Mask 13
.equ PCINT14 = 6 ; Pin Change Enable Mask 14
; PCMSK0 - Pin Change Mask Register 0
.equ PCINT0 = 0 ; Pin Change Enable Mask 0
.equ PCINT1 = 1 ; Pin Change Enable Mask 1
.equ PCINT2 = 2 ; Pin Change Enable Mask 2
.equ PCINT3 = 3 ; Pin Change Enable Mask 3
.equ PCINT4 = 4 ; Pin Change Enable Mask 4
.equ PCINT5 = 5 ; Pin Change Enable Mask 5
.equ PCINT6 = 6 ; Pin Change Enable Mask 6
.equ PCINT7 = 7 ; Pin Change Enable Mask 7
; PCIFR - Pin Change Interrupt Flag Register
.equ PCIF0 = 0 ; Pin Change Interrupt Flag 0
.equ PCIF1 = 1 ; Pin Change Interrupt Flag 1
.equ PCIF2 = 2 ; Pin Change Interrupt Flag 2
; ***** SPI **************************
; SPDR - SPI Data Register
.equ SPDR0 = 0 ; SPI Data Register bit 0
.equ SPDR1 = 1 ; SPI Data Register bit 1
.equ SPDR2 = 2 ; SPI Data Register bit 2
.equ SPDR3 = 3 ; SPI Data Register bit 3
.equ SPDR4 = 4 ; SPI Data Register bit 4
.equ SPDR5 = 5 ; SPI Data Register bit 5
.equ SPDR6 = 6 ; SPI Data Register bit 6
.equ SPDR7 = 7 ; SPI Data Register bit 7
; SPSR - SPI Status Register
.equ SPI2X = 0 ; Double SPI Speed Bit
.equ WCOL = 6 ; Write Collision Flag
.equ SPIF = 7 ; SPI Interrupt Flag
; SPCR - SPI Control Register
.equ SPR0 = 0 ; SPI Clock Rate Select 0
.equ SPR1 = 1 ; SPI Clock Rate Select 1
.equ CPHA = 2 ; Clock Phase
.equ CPOL = 3 ; Clock polarity
.equ MSTR = 4 ; Master/Slave Select
.equ DORD = 5 ; Data Order
.equ SPE = 6 ; SPI Enable
.equ SPIE = 7 ; SPI Interrupt Enable
; ***** CPU **************************
; SREG - Status Register
.equ SREG_C = 0 ; Carry Flag
.equ SREG_Z = 1 ; Zero Flag
.equ SREG_N = 2 ; Negative Flag
.equ SREG_V = 3 ; Two's Complement Overflow Flag
.equ SREG_S = 4 ; Sign Bit
.equ SREG_H = 5 ; Half Carry Flag
.equ SREG_T = 6 ; Bit Copy Storage
.equ SREG_I = 7 ; Global Interrupt Enable
; OSCCAL - Oscillator Calibration Value
.equ CAL0 = 0 ; Oscillator Calibration Value Bit0
.equ CAL1 = 1 ; Oscillator Calibration Value Bit1
.equ CAL2 = 2 ; Oscillator Calibration Value Bit2
.equ CAL3 = 3 ; Oscillator Calibration Value Bit3
.equ CAL4 = 4 ; Oscillator Calibration Value Bit4
.equ CAL5 = 5 ; Oscillator Calibration Value Bit5
.equ CAL6 = 6 ; Oscillator Calibration Value Bit6
.equ CAL7 = 7 ; Oscillator Calibration Value Bit7
; CLKPR - Clock Prescale Register
.equ CLKPS0 = 0 ; Clock Prescaler Select Bit 0
.equ CLKPS1 = 1 ; Clock Prescaler Select Bit 1
.equ CLKPS2 = 2 ; Clock Prescaler Select Bit 2
.equ CLKPS3 = 3 ; Clock Prescaler Select Bit 3
.equ CLKPCE = 7 ; Clock Prescaler Change Enable
; SPMCSR - Store Program Memory Control Register
.equ SELFPRGEN = 0 ; Self Programming Enable
.equ PGERS = 1 ; Page Erase
.equ PGWRT = 2 ; Page Write
.equ BLBSET = 3 ; Boot Lock Bit Set
.equ RWWSRE = 4 ; Read-While-Write section read enable
.equ RWWSB = 6 ; Read-While-Write Section Busy
.equ SPMIE = 7 ; SPM Interrupt Enable
; MCUCR - MCU Control Register
.equ PUD = 4 ;
; MCUSR - MCU Status Register
.equ PORF = 0 ; Power-on reset flag
.equ EXTRF = 1 ; External Reset Flag
.equ EXTREF = EXTRF ; For compatibility
.equ BORF = 2 ; Brown-out Reset Flag
.equ WDRF = 3 ; Watchdog Reset Flag
; SMCR -
.equ SE = 0 ;
.equ SM0 = 1 ;
.equ SM1 = 2 ;
.equ SM2 = 3 ;
; GPIOR2 - General Purpose I/O Register 2
.equ GPIOR20 = 0 ;
.equ GPIOR21 = 1 ;
.equ GPIOR22 = 2 ;
.equ GPIOR23 = 3 ;
.equ GPIOR24 = 4 ;
.equ GPIOR25 = 5 ;
.equ GPIOR26 = 6 ;
.equ GPIOR27 = 7 ;
; GPIOR1 - General Purpose I/O Register 1
.equ GPIOR10 = 0 ;
.equ GPIOR11 = 1 ;
.equ GPIOR12 = 2 ;
.equ GPIOR13 = 3 ;
.equ GPIOR14 = 4 ;
.equ GPIOR15 = 5 ;
.equ GPIOR16 = 6 ;
.equ GPIOR17 = 7 ;
; GPIOR0 - General Purpose I/O Register 0
.equ GPIOR00 = 0 ;
.equ GPIOR01 = 1 ;
.equ GPIOR02 = 2 ;
.equ GPIOR03 = 3 ;
.equ GPIOR04 = 4 ;
.equ GPIOR05 = 5 ;
.equ GPIOR06 = 6 ;
.equ GPIOR07 = 7 ;
; PRR - Power Reduction Register
.equ PRADC = 0 ; Power Reduction ADC
.equ PRUSART0 = 1 ; Power Reduction USART
.equ PRSPI = 2 ; Power Reduction Serial Peripheral Interface
.equ PRTIM1 = 3 ; Power Reduction Timer/Counter1
.equ PRTIM0 = 5 ; Power Reduction Timer/Counter0
.equ PRTIM2 = 6 ; Power Reduction Timer/Counter2
.equ PRTWI = 7 ; Power Reduction TWI
; ***** WATCHDOG *********************
; WDTCSR - Watchdog Timer Control Register
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2
.equ WDE = 3 ; Watch Dog Enable
.equ WDCE = 4 ; Watchdog Change Enable
.equ WDP3 = 5 ; Watchdog Timer Prescaler Bit 3
.equ WDIE = 6 ; Watchdog Timeout Interrupt Enable
.equ WDIF = 7 ; Watchdog Timeout Interrupt Flag
; ***** EEPROM ***********************
; EEARL - EEPROM Address Register Low Byte
.equ EEAR0 = 0 ; EEPROM Read/Write Access Bit 0
.equ EEAR1 = 1 ; EEPROM Read/Write Access Bit 1
.equ EEAR2 = 2 ; EEPROM Read/Write Access Bit 2
.equ EEAR3 = 3 ; EEPROM Read/Write Access Bit 3
.equ EEAR4 = 4 ; EEPROM Read/Write Access Bit 4
.equ EEAR5 = 5 ; EEPROM Read/Write Access Bit 5
.equ EEAR6 = 6 ; EEPROM Read/Write Access Bit 6
.equ EEAR7 = 7 ; EEPROM Read/Write Access Bit 7
; EEDR - EEPROM Data Register
.equ EEDR0 = 0 ; EEPROM Data Register bit 0
.equ EEDR1 = 1 ; EEPROM Data Register bit 1
.equ EEDR2 = 2 ; EEPROM Data Register bit 2
.equ EEDR3 = 3 ; EEPROM Data Register bit 3
.equ EEDR4 = 4 ; EEPROM Data Register bit 4
.equ EEDR5 = 5 ; EEPROM Data Register bit 5
.equ EEDR6 = 6 ; EEPROM Data Register bit 6
.equ EEDR7 = 7 ; EEPROM Data Register bit 7
; EECR - EEPROM Control Register
.equ EERE = 0 ; EEPROM Read Enable
.equ EEPE = 1 ; EEPROM Write Enable
.equ EEWE = EEPE ; For compatibility
.equ EEMPE = 2 ; EEPROM Master Write Enable
.equ EEMWE = EEMPE ; For compatibility
.equ EERIE = 3 ; EEPROM Ready Interrupt Enable
.equ EEPM0 = 4 ; EEPROM Programming Mode Bit 0
.equ EEPM1 = 5 ; EEPROM Programming Mode Bit 1
; ***** LOCKSBITS ********************************************************
.equ LB1 = 0 ; Lockbit
.equ LB2 = 1 ; Lockbit
; ***** FUSES ************************************************************
; LOW fuse bits
.equ CKSEL0 = 0 ; Select Clock Source
.equ CKSEL1 = 1 ; Select Clock Source
.equ CKSEL2 = 2 ; Select Clock Source
.equ CKSEL3 = 3 ; Select Clock Source
.equ SUT0 = 4 ; Select start-up time
.equ SUT1 = 5 ; Select start-up time
.equ CKOUT = 6 ; Clock output
.equ CKDIV8 = 7 ; Divide clock by 8
; HIGH fuse bits
.equ BODLEVEL0 = 0 ; Brown-out Detector trigger level
.equ BODLEVEL1 = 1 ; Brown-out Detector trigger level
.equ BODLEVEL2 = 2 ; Brown-out Detector trigger level
.equ EESAVE = 3 ; EEPROM memory is preserved through chip erase
.equ WDTON = 4 ; Watchdog Timer Always On
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading
.equ DWEN = 6 ; debugWIRE Enable
.equ RSTDISBL = 7 ; External reset disable
; EXTENDED fuse bits
;.equ SELFPRGEN = 0 ; Self Programming Enable
; ***** CPU REGISTER DEFINITIONS *****************************************
.def XH = r27
.def XL = r26
.def YH = r29
.def YL = r28
.def ZH = r31
.def ZL = r30
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ FLASHEND = 0x07ff ; Note: Word address
.equ IOEND = 0x00ff
.equ SRAM_START = 0x0100
.equ SRAM_SIZE = 512
.equ RAMEND = 0x02ff
.equ XRAMEND = 0x0000
.equ E2END = 0x00ff
.equ EEPROMEND = 0x00ff
.equ EEADRBITS = 8
#pragma AVRPART MEMORY PROG_FLASH 4096
#pragma AVRPART MEMORY EEPROM 256
#pragma AVRPART MEMORY INT_SRAM SIZE 512
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100
; ***** BOOTLOADER DECLARATIONS ******************************************
.equ NRWW_START_ADDR = 0x0
.equ NRWW_STOP_ADDR = 0x7ff
.equ RWW_START_ADDR = 0x0
.equ RWW_STOP_ADDR = 0x0
.equ PAGESIZE = 32
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0001 ; External Interrupt Request 0
.equ INT1addr = 0x0002 ; External Interrupt Request 1
.equ PCI0addr = 0x0003 ; Pin Change Interrupt Request 0
.equ PCI1addr = 0x0004 ; Pin Change Interrupt Request 0
.equ PCI2addr = 0x0005 ; Pin Change Interrupt Request 1
.equ WDTaddr = 0x0006 ; Watchdog Time-out Interrupt
.equ OC2Aaddr = 0x0007 ; Timer/Counter2 Compare Match A
.equ OC2Baddr = 0x0008 ; Timer/Counter2 Compare Match A
.equ OVF2addr = 0x0009 ; Timer/Counter2 Overflow
.equ ICP1addr = 0x000a ; Timer/Counter1 Capture Event
.equ OC1Aaddr = 0x000b ; Timer/Counter1 Compare Match A
.equ OC1Baddr = 0x000c ; Timer/Counter1 Compare Match B
.equ OVF1addr = 0x000d ; Timer/Counter1 Overflow
.equ OC0Aaddr = 0x000e ; TimerCounter0 Compare Match A
.equ OC0Baddr = 0x000f ; TimerCounter0 Compare Match B
.equ OVF0addr = 0x0010 ; Timer/Couner0 Overflow
.equ SPIaddr = 0x0011 ; SPI Serial Transfer Complete
.equ URXCaddr = 0x0012 ; USART Rx Complete
.equ UDREaddr = 0x0013 ; USART, Data Register Empty
.equ UTXCaddr = 0x0014 ; USART Tx Complete
.equ ADCCaddr = 0x0015 ; ADC Conversion Complete
.equ ERDYaddr = 0x0016 ; EEPROM Ready
.equ ACIaddr = 0x0017 ; Analog Comparator
.equ TWIaddr = 0x0018 ; Two-wire Serial Interface
.equ SPMRaddr = 0x0019 ; Store Program Memory Read
.equ INT_VECTORS_SIZE = 26 ; size in words
#endif /* _M48DEF_INC_ */
; ***** END OF FILE ******************************************************

976
Atmel/m88Pdef.inc

@ -1,976 +0,0 @@
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
;***** Created: 2009-11-03 14:40 ******* Source: ATmega88P.xml ***********
;*************************************************************************
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y
;*
;* Number : AVR000
;* File Name : "m88Pdef.inc"
;* Title : Register/Bit Definitions for the ATmega88P
;* Date : 2009-11-03
;* Version : 2.35
;* Support E-mail : avr@atmel.com
;* Target MCU : ATmega88P
;*
;* DESCRIPTION
;* When including this file in the assembly program file, all I/O register
;* names and I/O register bit names appearing in the data book can be used.
;* In addition, the six registers forming the three data pointers X, Y and
;* Z have been assigned names XL - ZH. Highest RAM address for Internal
;* SRAM is also defined
;*
;* The Register names are represented by their hexadecimal address.
;*
;* The Register Bit names are represented by their bit number (0-7).
;*
;* Please observe the difference in using the bit names with instructions
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc"
;* (skip if bit in register set/cleared). The following example illustrates
;* this:
;*
;* in r16,PORTB ;read PORTB latch
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#)
;* out PORTB,r16 ;output to PORTB
;*
;* in r16,TIFR ;read the Timer Interrupt Flag Register
;* sbrc r16,TOV0 ;test the overflow flag (use bit#)
;* rjmp TOV0_is_set ;jump if set
;* ... ;otherwise do something else
;*************************************************************************
#ifndef _M88PDEF_INC_
#define _M88PDEF_INC_
#pragma partinc 0
; ***** SPECIFY DEVICE ***************************************************
.device ATmega88P
#pragma AVRPART ADMIN PART_NAME ATmega88P
.equ SIGNATURE_000 = 0x1e
.equ SIGNATURE_001 = 0x93
.equ SIGNATURE_002 = 0x0f
#pragma AVRPART CORE CORE_VERSION V2E
; ***** I/O REGISTER DEFINITIONS *****************************************
; NOTE:
; Definitions marked "MEMORY MAPPED"are extended I/O ports
; and cannot be used with IN/OUT instructions
.equ UDR0 = 0xc6 ; MEMORY MAPPED
.equ UBRR0L = 0xc4 ; MEMORY MAPPED
.equ UBRR0H = 0xc5 ; MEMORY MAPPED
.equ UCSR0C = 0xc2 ; MEMORY MAPPED
.equ UCSR0B = 0xc1 ; MEMORY MAPPED
.equ UCSR0A = 0xc0 ; MEMORY MAPPED
.equ TWAMR = 0xbd ; MEMORY MAPPED
.equ TWCR = 0xbc ; MEMORY MAPPED
.equ TWDR = 0xbb ; MEMORY MAPPED
.equ TWAR = 0xba ; MEMORY MAPPED
.equ TWSR = 0xb9 ; MEMORY MAPPED
.equ TWBR = 0xb8 ; MEMORY MAPPED
.equ ASSR = 0xb6 ; MEMORY MAPPED
.equ OCR2B = 0xb4 ; MEMORY MAPPED
.equ OCR2A = 0xb3 ; MEMORY MAPPED
.equ TCNT2 = 0xb2 ; MEMORY MAPPED
.equ TCCR2B = 0xb1 ; MEMORY MAPPED
.equ TCCR2A = 0xb0 ; MEMORY MAPPED
.equ OCR1BL = 0x8a ; MEMORY MAPPED
.equ OCR1BH = 0x8b ; MEMORY MAPPED
.equ OCR1AL = 0x88 ; MEMORY MAPPED
.equ OCR1AH = 0x89 ; MEMORY MAPPED
.equ ICR1L = 0x86 ; MEMORY MAPPED
.equ ICR1H = 0x87 ; MEMORY MAPPED
.equ TCNT1L = 0x84 ; MEMORY MAPPED
.equ TCNT1H = 0x85 ; MEMORY MAPPED
.equ TCCR1C = 0x82 ; MEMORY MAPPED
.equ TCCR1B = 0x81 ; MEMORY MAPPED
.equ TCCR1A = 0x80 ; MEMORY MAPPED
.equ DIDR1 = 0x7f ; MEMORY MAPPED
.equ DIDR0 = 0x7e ; MEMORY MAPPED
.equ ADMUX = 0x7c ; MEMORY MAPPED
.equ ADCSRB = 0x7b ; MEMORY MAPPED
.equ ADCSRA = 0x7a ; MEMORY MAPPED
.equ ADCH = 0x79 ; MEMORY MAPPED
.equ ADCL = 0x78 ; MEMORY MAPPED
.equ TIMSK2 = 0x70 ; MEMORY MAPPED
.equ TIMSK1 = 0x6f ; MEMORY MAPPED
.equ TIMSK0 = 0x6e ; MEMORY MAPPED
.equ PCMSK1 = 0x6c ; MEMORY MAPPED
.equ PCMSK2 = 0x6d ; MEMORY MAPPED
.equ PCMSK0 = 0x6b ; MEMORY MAPPED
.equ EICRA = 0x69 ; MEMORY MAPPED
.equ PCICR = 0x68 ; MEMORY MAPPED
.equ OSCCAL = 0x66 ; MEMORY MAPPED
.equ PRR = 0x64 ; MEMORY MAPPED
.equ CLKPR = 0x61 ; MEMORY MAPPED
.equ WDTCSR = 0x60 ; MEMORY MAPPED
.equ SREG = 0x3f
.equ SPL = 0x3d
.equ SPH = 0x3e
.equ SPMCSR = 0x37
.equ MCUCR = 0x35
.equ MCUSR = 0x34
.equ SMCR = 0x33
.equ ACSR = 0x30
.equ SPDR = 0x2e
.equ SPSR = 0x2d
.equ SPCR = 0x2c
.equ GPIOR2 = 0x2b
.equ GPIOR1 = 0x2a
.equ OCR0B = 0x28
.equ OCR0A = 0x27
.equ TCNT0 = 0x26
.equ TCCR0B = 0x25
.equ TCCR0A = 0x24
.equ GTCCR = 0x23
.equ EEARH = 0x22
.equ EEARL = 0x21
.equ EEDR = 0x20
.equ EECR = 0x1f
.equ GPIOR0 = 0x1e
.equ EIMSK = 0x1d
.equ EIFR = 0x1c
.equ PCIFR = 0x1b
.equ TIFR2 = 0x17
.equ TIFR1 = 0x16
.equ TIFR0 = 0x15
.equ PORTD = 0x0b
.equ DDRD = 0x0a
.equ PIND = 0x09
.equ PORTC = 0x08
.equ DDRC = 0x07
.equ PINC = 0x06
.equ PORTB = 0x05
.equ DDRB = 0x04
.equ PINB = 0x03
; ***** BIT DEFINITIONS **************************************************
; ***** USART0 ***********************
; UDR0 - USART I/O Data Register
.equ UDR0_0 = 0 ; USART I/O Data Register bit 0
.equ UDR0_1 = 1 ; USART I/O Data Register bit 1
.equ UDR0_2 = 2 ; USART I/O Data Register bit 2
.equ UDR0_3 = 3 ; USART I/O Data Register bit 3
.equ UDR0_4 = 4 ; USART I/O Data Register bit 4
.equ UDR0_5 = 5 ; USART I/O Data Register bit 5
.equ UDR0_6 = 6 ; USART I/O Data Register bit 6
.equ UDR0_7 = 7 ; USART I/O Data Register bit 7
; UCSR0A - USART Control and Status Register A
.equ MPCM0 = 0 ; Multi-processor Communication Mode
.equ U2X0 = 1 ; Double the USART transmission speed
.equ UPE0 = 2 ; Parity Error
.equ DOR0 = 3 ; Data overRun
.equ FE0 = 4 ; Framing Error
.equ UDRE0 = 5 ; USART Data Register Empty
.equ TXC0 = 6 ; USART Transmitt Complete
.equ RXC0 = 7 ; USART Receive Complete
; UCSR0B - USART Control and Status Register B
.equ TXB80 = 0 ; Transmit Data Bit 8
.equ RXB80 = 1 ; Receive Data Bit 8
.equ UCSZ02 = 2 ; Character Size
.equ TXEN0 = 3 ; Transmitter Enable
.equ RXEN0 = 4 ; Receiver Enable
.equ UDRIE0 = 5 ; USART Data register Empty Interrupt Enable
.equ TXCIE0 = 6 ; TX Complete Interrupt Enable
.equ RXCIE0 = 7 ; RX Complete Interrupt Enable
; UCSR0C - USART Control and Status Register C
.equ UCPOL0 = 0 ; Clock Polarity
.equ UCSZ00 = 1 ; Character Size
.equ UCPHA0 = UCSZ00 ; For compatibility
.equ UCSZ01 = 2 ; Character Size
.equ UDORD0 = UCSZ01 ; For compatibility
.equ USBS0 = 3 ; Stop Bit Select
.equ UPM00 = 4 ; Parity Mode Bit 0
.equ UPM01 = 5 ; Parity Mode Bit 1
.equ UMSEL00 = 6 ; USART Mode Select
.equ UMSEL0 = UMSEL00 ; For compatibility
.equ UMSEL01 = 7 ; USART Mode Select
.equ UMSEL1 = UMSEL01 ; For compatibility
; UBRR0H - USART Baud Rate Register High Byte
.equ UBRR8 = 0 ; USART Baud Rate Register bit 8
.equ UBRR9 = 1 ; USART Baud Rate Register bit 9
.equ UBRR10 = 2 ; USART Baud Rate Register bit 10
.equ UBRR11 = 3 ; USART Baud Rate Register bit 11
; UBRR0L - USART Baud Rate Register Low Byte
.equ _UBRR0 = 0 ; USART Baud Rate Register bit 0
.equ _UBRR1 = 1 ; USART Baud Rate Register bit 1
.equ UBRR2 = 2 ; USART Baud Rate Register bit 2
.equ UBRR3 = 3 ; USART Baud Rate Register bit 3
.equ UBRR4 = 4 ; USART Baud Rate Register bit 4
.equ UBRR5 = 5 ; USART Baud Rate Register bit 5
.equ UBRR6 = 6 ; USART Baud Rate Register bit 6
.equ UBRR7 = 7 ; USART Baud Rate Register bit 7
; ***** TWI **************************
; TWAMR - TWI (Slave) Address Mask Register
.equ TWAM0 = 1 ;
.equ TWAMR0 = TWAM0 ; For compatibility
.equ TWAM1 = 2 ;
.equ TWAMR1 = TWAM1 ; For compatibility
.equ TWAM2 = 3 ;
.equ TWAMR2 = TWAM2 ; For compatibility
.equ TWAM3 = 4 ;
.equ TWAMR3 = TWAM3 ; For compatibility
.equ TWAM4 = 5 ;
.equ TWAMR4 = TWAM4 ; For compatibility
.equ TWAM5 = 6 ;
.equ TWAMR5 = TWAM5 ; For compatibility
.equ TWAM6 = 7 ;
.equ TWAMR6 = TWAM6 ; For compatibility
; TWBR - TWI Bit Rate register
.equ TWBR0 = 0 ;
.equ TWBR1 = 1 ;
.equ TWBR2 = 2 ;
.equ TWBR3 = 3 ;
.equ TWBR4 = 4 ;
.equ TWBR5 = 5 ;
.equ TWBR6 = 6 ;
.equ TWBR7 = 7 ;
; TWCR - TWI Control Register
.equ TWIE = 0 ; TWI Interrupt Enable
.equ TWEN = 2 ; TWI Enable Bit
.equ TWWC = 3 ; TWI Write Collition Flag
.equ TWSTO = 4 ; TWI Stop Condition Bit
.equ TWSTA = 5 ; TWI Start Condition Bit
.equ TWEA = 6 ; TWI Enable Acknowledge Bit
.equ TWINT = 7 ; TWI Interrupt Flag
; TWSR - TWI Status Register
.equ TWPS0 = 0 ; TWI Prescaler
.equ TWPS1 = 1 ; TWI Prescaler
.equ TWS3 = 3 ; TWI Status
.equ TWS4 = 4 ; TWI Status
.equ TWS5 = 5 ; TWI Status
.equ TWS6 = 6 ; TWI Status
.equ TWS7 = 7 ; TWI Status
; TWDR - TWI Data register
.equ TWD0 = 0 ; TWI Data Register Bit 0
.equ TWD1 = 1 ; TWI Data Register Bit 1
.equ TWD2 = 2 ; TWI Data Register Bit 2
.equ TWD3 = 3 ; TWI Data Register Bit 3
.equ TWD4 = 4 ; TWI Data Register Bit 4
.equ TWD5 = 5 ; TWI Data Register Bit 5
.equ TWD6 = 6 ; TWI Data Register Bit 6
.equ TWD7 = 7 ; TWI Data Register Bit 7
; TWAR - TWI (Slave) Address register
.equ TWGCE = 0 ; TWI General Call Recognition Enable Bit
.equ TWA0 = 1 ; TWI (Slave) Address register Bit 0
.equ TWA1 = 2 ; TWI (Slave) Address register Bit 1
.equ TWA2 = 3 ; TWI (Slave) Address register Bit 2
.equ TWA3 = 4 ; TWI (Slave) Address register Bit 3
.equ TWA4 = 5 ; TWI (Slave) Address register Bit 4
.equ TWA5 = 6 ; TWI (Slave) Address register Bit 5
.equ TWA6 = 7 ; TWI (Slave) Address register Bit 6
; ***** TIMER_COUNTER_1 **************
; TIMSK1 - Timer/Counter Interrupt Mask Register
.equ TOIE1 = 0 ; Timer/Counter1 Overflow Interrupt Enable
.equ OCIE1A = 1 ; Timer/Counter1 Output CompareA Match Interrupt Enable
.equ OCIE1B = 2 ; Timer/Counter1 Output CompareB Match Interrupt Enable
.equ ICIE1 = 5 ; Timer/Counter1 Input Capture Interrupt Enable
; TIFR1 - Timer/Counter Interrupt Flag register
.equ TOV1 = 0 ; Timer/Counter1 Overflow Flag
.equ OCF1A = 1 ; Output Compare Flag 1A
.equ OCF1B = 2 ; Output Compare Flag 1B
.equ ICF1 = 5 ; Input Capture Flag 1
; TCCR1A - Timer/Counter1 Control Register A
.equ WGM10 = 0 ; Waveform Generation Mode
.equ WGM11 = 1 ; Waveform Generation Mode
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1
; TCCR1B - Timer/Counter1 Control Register B
.equ CS10 = 0 ; Prescaler source of Timer/Counter 1
.equ CS11 = 1 ; Prescaler source of Timer/Counter 1
.equ CS12 = 2 ; Prescaler source of Timer/Counter 1
.equ WGM12 = 3 ; Waveform Generation Mode
.equ WGM13 = 4 ; Waveform Generation Mode
.equ ICES1 = 6 ; Input Capture 1 Edge Select
.equ ICNC1 = 7 ; Input Capture 1 Noise Canceler
; TCCR1C - Timer/Counter1 Control Register C
.equ FOC1B = 6 ;
.equ FOC1A = 7 ;
; GTCCR - General Timer/Counter Control Register
.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0
.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** TIMER_COUNTER_2 **************
; TIMSK2 - Timer/Counter Interrupt Mask register
.equ TOIE2 = 0 ; Timer/Counter2 Overflow Interrupt Enable
.equ TOIE2A = TOIE2 ; For compatibility
.equ OCIE2A = 1 ; Timer/Counter2 Output Compare Match A Interrupt Enable
.equ OCIE2B = 2 ; Timer/Counter2 Output Compare Match B Interrupt Enable
; TIFR2 - Timer/Counter Interrupt Flag Register
.equ TOV2 = 0 ; Timer/Counter2 Overflow Flag
.equ OCF2A = 1 ; Output Compare Flag 2A
.equ OCF2B = 2 ; Output Compare Flag 2B
; TCCR2A - Timer/Counter2 Control Register A
.equ WGM20 = 0 ; Waveform Genration Mode
.equ WGM21 = 1 ; Waveform Genration Mode
.equ COM2B0 = 4 ; Compare Output Mode bit 0
.equ COM2B1 = 5 ; Compare Output Mode bit 1
.equ COM2A0 = 6 ; Compare Output Mode bit 1
.equ COM2A1 = 7 ; Compare Output Mode bit 1
; TCCR2B - Timer/Counter2 Control Register B
.equ CS20 = 0 ; Clock Select bit 0
.equ CS21 = 1 ; Clock Select bit 1
.equ CS22 = 2 ; Clock Select bit 2
.equ WGM22 = 3 ; Waveform Generation Mode
.equ FOC2B = 6 ; Force Output Compare B
.equ FOC2A = 7 ; Force Output Compare A
; TCNT2 - Timer/Counter2
.equ TCNT2_0 = 0 ; Timer/Counter 2 bit 0
.equ TCNT2_1 = 1 ; Timer/Counter 2 bit 1
.equ TCNT2_2 = 2 ; Timer/Counter 2 bit 2
.equ TCNT2_3 = 3 ; Timer/Counter 2 bit 3
.equ TCNT2_4 = 4 ; Timer/Counter 2 bit 4
.equ TCNT2_5 = 5 ; Timer/Counter 2 bit 5
.equ TCNT2_6 = 6 ; Timer/Counter 2 bit 6
.equ TCNT2_7 = 7 ; Timer/Counter 2 bit 7
; OCR2A - Timer/Counter2 Output Compare Register A
.equ OCR2A_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0
.equ OCR2A_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1
.equ OCR2A_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2
.equ OCR2A_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3
.equ OCR2A_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4
.equ OCR2A_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5
.equ OCR2A_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6
.equ OCR2A_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7
; OCR2B - Timer/Counter2 Output Compare Register B
.equ OCR2B_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0
.equ OCR2B_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1
.equ OCR2B_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2
.equ OCR2B_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3
.equ OCR2B_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4
.equ OCR2B_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5
.equ OCR2B_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6
.equ OCR2B_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7
; ASSR - Asynchronous Status Register
.equ TCR2BUB = 0 ; Timer/Counter Control Register2 Update Busy
.equ TCR2AUB = 1 ; Timer/Counter Control Register2 Update Busy
.equ OCR2BUB = 2 ; Output Compare Register 2 Update Busy
.equ OCR2AUB = 3 ; Output Compare Register2 Update Busy
.equ TCN2UB = 4 ; Timer/Counter2 Update Busy
.equ AS2 = 5 ; Asynchronous Timer/Counter2
.equ EXCLK = 6 ; Enable External Clock Input
; GTCCR - General Timer Counter Control register
.equ PSRASY = 1 ; Prescaler Reset Timer/Counter2
.equ PSR2 = PSRASY ; For compatibility
;.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** AD_CONVERTER *****************
; ADMUX - The ADC multiplexer Selection Register
.equ MUX0 = 0 ; Analog Channel and Gain Selection Bits
.equ MUX1 = 1 ; Analog Channel and Gain Selection Bits
.equ MUX2 = 2 ; Analog Channel and Gain Selection Bits
.equ MUX3 = 3 ; Analog Channel and Gain Selection Bits
.equ ADLAR = 5 ; Left Adjust Result
.equ REFS0 = 6 ; Reference Selection Bit 0
.equ REFS1 = 7 ; Reference Selection Bit 1
; ADCSRA - The ADC Control and Status register A
.equ ADPS0 = 0 ; ADC Prescaler Select Bits
.equ ADPS1 = 1 ; ADC Prescaler Select Bits
.equ ADPS2 = 2 ; ADC Prescaler Select Bits
.equ ADIE = 3 ; ADC Interrupt Enable
.equ ADIF = 4 ; ADC Interrupt Flag
.equ ADATE = 5 ; ADC Auto Trigger Enable
.equ ADSC = 6 ; ADC Start Conversion
.equ ADEN = 7 ; ADC Enable
; ADCSRB - The ADC Control and Status register B
.equ ADTS0 = 0 ; ADC Auto Trigger Source bit 0
.equ ADTS1 = 1 ; ADC Auto Trigger Source bit 1
.equ ADTS2 = 2 ; ADC Auto Trigger Source bit 2
.equ ACME = 6 ;
; ADCH - ADC Data Register High Byte
.equ ADCH0 = 0 ; ADC Data Register High Byte Bit 0
.equ ADCH1 = 1 ; ADC Data Register High Byte Bit 1
.equ ADCH2 = 2 ; ADC Data Register High Byte Bit 2
.equ ADCH3 = 3 ; ADC Data Register High Byte Bit 3
.equ ADCH4 = 4 ; ADC Data Register High Byte Bit 4
.equ ADCH5 = 5 ; ADC Data Register High Byte Bit 5
.equ ADCH6 = 6 ; ADC Data Register High Byte Bit 6
.equ ADCH7 = 7 ; ADC Data Register High Byte Bit 7
; ADCL - ADC Data Register Low Byte
.equ ADCL0 = 0 ; ADC Data Register Low Byte Bit 0
.equ ADCL1 = 1 ; ADC Data Register Low Byte Bit 1
.equ ADCL2 = 2 ; ADC Data Register Low Byte Bit 2
.equ ADCL3 = 3 ; ADC Data Register Low Byte Bit 3
.equ ADCL4 = 4 ; ADC Data Register Low Byte Bit 4
.equ ADCL5 = 5 ; ADC Data Register Low Byte Bit 5
.equ ADCL6 = 6 ; ADC Data Register Low Byte Bit 6
.equ ADCL7 = 7 ; ADC Data Register Low Byte Bit 7
; DIDR0 - Digital Input Disable Register
.equ ADC0D = 0 ;
.equ ADC1D = 1 ;
.equ ADC2D = 2 ;
.equ ADC3D = 3 ;
.equ ADC4D = 4 ;
.equ ADC5D = 5 ;
; ***** ANALOG_COMPARATOR ************
; ACSR - Analog Comparator Control And Status Register
.equ ACIS0 = 0 ; Analog Comparator Interrupt Mode Select bit 0
.equ ACIS1 = 1 ; Analog Comparator Interrupt Mode Select bit 1
.equ ACIC = 2 ; Analog Comparator Input Capture Enable
.equ ACIE = 3 ; Analog Comparator Interrupt Enable
.equ ACI = 4 ; Analog Comparator Interrupt Flag
.equ ACO = 5 ; Analog Compare Output
.equ ACBG = 6 ; Analog Comparator Bandgap Select
.equ ACD = 7 ; Analog Comparator Disable
; DIDR1 - Digital Input Disable Register 1
.equ AIN0D = 0 ; AIN0 Digital Input Disable
.equ AIN1D = 1 ; AIN1 Digital Input Disable
; ***** PORTB ************************
; PORTB - Port B Data Register
.equ PORTB0 = 0 ; Port B Data Register bit 0
.equ PB0 = 0 ; For compatibility
.equ PORTB1 = 1 ; Port B Data Register bit 1
.equ PB1 = 1 ; For compatibility
.equ PORTB2 = 2 ; Port B Data Register bit 2
.equ PB2 = 2 ; For compatibility
.equ PORTB3 = 3 ; Port B Data Register bit 3
.equ PB3 = 3 ; For compatibility
.equ PORTB4 = 4 ; Port B Data Register bit 4
.equ PB4 = 4 ; For compatibility
.equ PORTB5 = 5 ; Port B Data Register bit 5
.equ PB5 = 5 ; For compatibility
.equ PORTB6 = 6 ; Port B Data Register bit 6
.equ PB6 = 6 ; For compatibility
.equ PORTB7 = 7 ; Port B Data Register bit 7
.equ PB7 = 7 ; For compatibility
; DDRB - Port B Data Direction Register
.equ DDB0 = 0 ; Port B Data Direction Register bit 0
.equ DDB1 = 1 ; Port B Data Direction Register bit 1
.equ DDB2 = 2 ; Port B Data Direction Register bit 2
.equ DDB3 = 3 ; Port B Data Direction Register bit 3
.equ DDB4 = 4 ; Port B Data Direction Register bit 4
.equ DDB5 = 5 ; Port B Data Direction Register bit 5
.equ DDB6 = 6 ; Port B Data Direction Register bit 6
.equ DDB7 = 7 ; Port B Data Direction Register bit 7
; PINB - Port B Input Pins
.equ PINB0 = 0 ; Port B Input Pins bit 0
.equ PINB1 = 1 ; Port B Input Pins bit 1
.equ PINB2 = 2 ; Port B Input Pins bit 2
.equ PINB3 = 3 ; Port B Input Pins bit 3
.equ PINB4 = 4 ; Port B Input Pins bit 4
.equ PINB5 = 5 ; Port B Input Pins bit 5
.equ PINB6 = 6 ; Port B Input Pins bit 6
.equ PINB7 = 7 ; Port B Input Pins bit 7
; ***** PORTC ************************
; PORTC - Port C Data Register
.equ PORTC0 = 0 ; Port C Data Register bit 0
.equ PC0 = 0 ; For compatibility
.equ PORTC1 = 1 ; Port C Data Register bit 1
.equ PC1 = 1 ; For compatibility
.equ PORTC2 = 2 ; Port C Data Register bit 2
.equ PC2 = 2 ; For compatibility
.equ PORTC3 = 3 ; Port C Data Register bit 3
.equ PC3 = 3 ; For compatibility
.equ PORTC4 = 4 ; Port C Data Register bit 4
.equ PC4 = 4 ; For compatibility
.equ PORTC5 = 5 ; Port C Data Register bit 5
.equ PC5 = 5 ; For compatibility
.equ PORTC6 = 6 ; Port C Data Register bit 6
.equ PC6 = 6 ; For compatibility
; DDRC - Port C Data Direction Register
.equ DDC0 = 0 ; Port C Data Direction Register bit 0
.equ DDC1 = 1 ; Port C Data Direction Register bit 1
.equ DDC2 = 2 ; Port C Data Direction Register bit 2
.equ DDC3 = 3 ; Port C Data Direction Register bit 3
.equ DDC4 = 4 ; Port C Data Direction Register bit 4
.equ DDC5 = 5 ; Port C Data Direction Register bit 5
.equ DDC6 = 6 ; Port C Data Direction Register bit 6
; PINC - Port C Input Pins
.equ PINC0 = 0 ; Port C Input Pins bit 0
.equ PINC1 = 1 ; Port C Input Pins bit 1
.equ PINC2 = 2 ; Port C Input Pins bit 2
.equ PINC3 = 3 ; Port C Input Pins bit 3
.equ PINC4 = 4 ; Port C Input Pins bit 4
.equ PINC5 = 5 ; Port C Input Pins bit 5
.equ PINC6 = 6 ; Port C Input Pins bit 6
; ***** PORTD ************************
; PORTD - Port D Data Register
.equ PORTD0 = 0 ; Port D Data Register bit 0
.equ PD0 = 0 ; For compatibility
.equ PORTD1 = 1 ; Port D Data Register bit 1
.equ PD1 = 1 ; For compatibility
.equ PORTD2 = 2 ; Port D Data Register bit 2
.equ PD2 = 2 ; For compatibility
.equ PORTD3 = 3 ; Port D Data Register bit 3
.equ PD3 = 3 ; For compatibility
.equ PORTD4 = 4 ; Port D Data Register bit 4
.equ PD4 = 4 ; For compatibility
.equ PORTD5 = 5 ; Port D Data Register bit 5
.equ PD5 = 5 ; For compatibility
.equ PORTD6 = 6 ; Port D Data Register bit 6
.equ PD6 = 6 ; For compatibility
.equ PORTD7 = 7 ; Port D Data Register bit 7
.equ PD7 = 7 ; For compatibility
; DDRD - Port D Data Direction Register
.equ DDD0 = 0 ; Port D Data Direction Register bit 0
.equ DDD1 = 1 ; Port D Data Direction Register bit 1
.equ DDD2 = 2 ; Port D Data Direction Register bit 2
.equ DDD3 = 3 ; Port D Data Direction Register bit 3
.equ DDD4 = 4 ; Port D Data Direction Register bit 4
.equ DDD5 = 5 ; Port D Data Direction Register bit 5
.equ DDD6 = 6 ; Port D Data Direction Register bit 6
.equ DDD7 = 7 ; Port D Data Direction Register bit 7
; PIND - Port D Input Pins
.equ PIND0 = 0 ; Port D Input Pins bit 0
.equ PIND1 = 1 ; Port D Input Pins bit 1
.equ PIND2 = 2 ; Port D Input Pins bit 2
.equ PIND3 = 3 ; Port D Input Pins bit 3
.equ PIND4 = 4 ; Port D Input Pins bit 4
.equ PIND5 = 5 ; Port D Input Pins bit 5
.equ PIND6 = 6 ; Port D Input Pins bit 6
.equ PIND7 = 7 ; Port D Input Pins bit 7
; ***** TIMER_COUNTER_0 **************
; TIMSK0 - Timer/Counter0 Interrupt Mask Register
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare Match A Interrupt Enable
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare Match B Interrupt Enable
; TIFR0 - Timer/Counter0 Interrupt Flag register
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag
.equ OCF0A = 1 ; Timer/Counter0 Output Compare Flag 0A
.equ OCF0B = 2 ; Timer/Counter0 Output Compare Flag 0B
; TCCR0A - Timer/Counter Control Register A
.equ WGM00 = 0 ; Waveform Generation Mode
.equ WGM01 = 1 ; Waveform Generation Mode
.equ COM0B0 = 4 ; Compare Output Mode, Fast PWm
.equ COM0B1 = 5 ; Compare Output Mode, Fast PWm
.equ COM0A0 = 6 ; Compare Output Mode, Phase Correct PWM Mode
.equ COM0A1 = 7 ; Compare Output Mode, Phase Correct PWM Mode
; TCCR0B - Timer/Counter Control Register B
.equ CS00 = 0 ; Clock Select
.equ CS01 = 1 ; Clock Select
.equ CS02 = 2 ; Clock Select
.equ WGM02 = 3 ;
.equ FOC0B = 6 ; Force Output Compare B
.equ FOC0A = 7 ; Force Output Compare A
; TCNT0 - Timer/Counter0
.equ TCNT0_0 = 0 ;
.equ TCNT0_1 = 1 ;
.equ TCNT0_2 = 2 ;
.equ TCNT0_3 = 3 ;
.equ TCNT0_4 = 4 ;
.equ TCNT0_5 = 5 ;
.equ TCNT0_6 = 6 ;
.equ TCNT0_7 = 7 ;
; OCR0A - Timer/Counter0 Output Compare Register
.equ OCR0A_0 = 0 ;
.equ OCR0A_1 = 1 ;
.equ OCR0A_2 = 2 ;
.equ OCR0A_3 = 3 ;
.equ OCR0A_4 = 4 ;
.equ OCR0A_5 = 5 ;
.equ OCR0A_6 = 6 ;
.equ OCR0A_7 = 7 ;
; OCR0B - Timer/Counter0 Output Compare Register
.equ OCR0B_0 = 0 ;
.equ OCR0B_1 = 1 ;
.equ OCR0B_2 = 2 ;
.equ OCR0B_3 = 3 ;
.equ OCR0B_4 = 4 ;
.equ OCR0B_5 = 5 ;
.equ OCR0B_6 = 6 ;
.equ OCR0B_7 = 7 ;
; GTCCR - General Timer/Counter Control Register
;.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0
.equ PSR10 = PSRSYNC ; For compatibility
;.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** EXTERNAL_INTERRUPT ***********
; EICRA - External Interrupt Control Register
.equ ISC00 = 0 ; External Interrupt Sense Control 0 Bit 0
.equ ISC01 = 1 ; External Interrupt Sense Control 0 Bit 1
.equ ISC10 = 2 ; External Interrupt Sense Control 1 Bit 0
.equ ISC11 = 3 ; External Interrupt Sense Control 1 Bit 1
; EIMSK - External Interrupt Mask Register
.equ INT0 = 0 ; External Interrupt Request 0 Enable
.equ INT1 = 1 ; External Interrupt Request 1 Enable
; EIFR - External Interrupt Flag Register
.equ INTF0 = 0 ; External Interrupt Flag 0
.equ INTF1 = 1 ; External Interrupt Flag 1
; PCICR - Pin Change Interrupt Control Register
.equ PCIE0 = 0 ; Pin Change Interrupt Enable 0
.equ PCIE1 = 1 ; Pin Change Interrupt Enable 1
.equ PCIE2 = 2 ; Pin Change Interrupt Enable 2
; PCMSK2 - Pin Change Mask Register 2
.equ PCINT16 = 0 ; Pin Change Enable Mask 16
.equ PCINT17 = 1 ; Pin Change Enable Mask 17
.equ PCINT18 = 2 ; Pin Change Enable Mask 18
.equ PCINT19 = 3 ; Pin Change Enable Mask 19
.equ PCINT20 = 4 ; Pin Change Enable Mask 20
.equ PCINT21 = 5 ; Pin Change Enable Mask 21
.equ PCINT22 = 6 ; Pin Change Enable Mask 22
.equ PCINT23 = 7 ; Pin Change Enable Mask 23
; PCMSK1 - Pin Change Mask Register 1
.equ PCINT8 = 0 ; Pin Change Enable Mask 8
.equ PCINT9 = 1 ; Pin Change Enable Mask 9
.equ PCINT10 = 2 ; Pin Change Enable Mask 10
.equ PCINT11 = 3 ; Pin Change Enable Mask 11
.equ PCINT12 = 4 ; Pin Change Enable Mask 12
.equ PCINT13 = 5 ; Pin Change Enable Mask 13
.equ PCINT14 = 6 ; Pin Change Enable Mask 14
; PCMSK0 - Pin Change Mask Register 0
.equ PCINT0 = 0 ; Pin Change Enable Mask 0
.equ PCINT1 = 1 ; Pin Change Enable Mask 1
.equ PCINT2 = 2 ; Pin Change Enable Mask 2
.equ PCINT3 = 3 ; Pin Change Enable Mask 3
.equ PCINT4 = 4 ; Pin Change Enable Mask 4
.equ PCINT5 = 5 ; Pin Change Enable Mask 5
.equ PCINT6 = 6 ; Pin Change Enable Mask 6
.equ PCINT7 = 7 ; Pin Change Enable Mask 7
; PCIFR - Pin Change Interrupt Flag Register
.equ PCIF0 = 0 ; Pin Change Interrupt Flag 0
.equ PCIF1 = 1 ; Pin Change Interrupt Flag 1
.equ PCIF2 = 2 ; Pin Change Interrupt Flag 2
; ***** SPI **************************
; SPDR - SPI Data Register
.equ SPDR0 = 0 ; SPI Data Register bit 0
.equ SPDR1 = 1 ; SPI Data Register bit 1
.equ SPDR2 = 2 ; SPI Data Register bit 2
.equ SPDR3 = 3 ; SPI Data Register bit 3
.equ SPDR4 = 4 ; SPI Data Register bit 4
.equ SPDR5 = 5 ; SPI Data Register bit 5
.equ SPDR6 = 6 ; SPI Data Register bit 6
.equ SPDR7 = 7 ; SPI Data Register bit 7
; SPSR - SPI Status Register
.equ SPI2X = 0 ; Double SPI Speed Bit
.equ WCOL = 6 ; Write Collision Flag
.equ SPIF = 7 ; SPI Interrupt Flag
; SPCR - SPI Control Register
.equ SPR0 = 0 ; SPI Clock Rate Select 0
.equ SPR1 = 1 ; SPI Clock Rate Select 1
.equ CPHA = 2 ; Clock Phase
.equ CPOL = 3 ; Clock polarity
.equ MSTR = 4 ; Master/Slave Select
.equ DORD = 5 ; Data Order
.equ SPE = 6 ; SPI Enable
.equ SPIE = 7 ; SPI Interrupt Enable
; ***** WATCHDOG *********************
; WDTCSR - Watchdog Timer Control Register
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2
.equ WDE = 3 ; Watch Dog Enable
.equ WDCE = 4 ; Watchdog Change Enable
.equ WDP3 = 5 ; Watchdog Timer Prescaler Bit 3
.equ WDIE = 6 ; Watchdog Timeout Interrupt Enable
.equ WDIF = 7 ; Watchdog Timeout Interrupt Flag
; ***** EEPROM ***********************
; EEARL - EEPROM Address Register Low Byte
.equ EEAR0 = 0 ; EEPROM Read/Write Access Bit 0
.equ EEAR1 = 1 ; EEPROM Read/Write Access Bit 1
.equ EEAR2 = 2 ; EEPROM Read/Write Access Bit 2
.equ EEAR3 = 3 ; EEPROM Read/Write Access Bit 3
.equ EEAR4 = 4 ; EEPROM Read/Write Access Bit 4
.equ EEAR5 = 5 ; EEPROM Read/Write Access Bit 5
.equ EEAR6 = 6 ; EEPROM Read/Write Access Bit 6
.equ EEAR7 = 7 ; EEPROM Read/Write Access Bit 7
; EEARH - EEPROM Address Register High Byte
.equ EEAR8 = 0 ; EEPROM Read/Write Access Bit 0
; EEDR - EEPROM Data Register
.equ EEDR0 = 0 ; EEPROM Data Register bit 0
.equ EEDR1 = 1 ; EEPROM Data Register bit 1
.equ EEDR2 = 2 ; EEPROM Data Register bit 2
.equ EEDR3 = 3 ; EEPROM Data Register bit 3
.equ EEDR4 = 4 ; EEPROM Data Register bit 4
.equ EEDR5 = 5 ; EEPROM Data Register bit 5
.equ EEDR6 = 6 ; EEPROM Data Register bit 6
.equ EEDR7 = 7 ; EEPROM Data Register bit 7
; EECR - EEPROM Control Register
.equ EERE = 0 ; EEPROM Read Enable
.equ EEPE = 1 ; EEPROM Write Enable
.equ EEMPE = 2 ; EEPROM Master Write Enable
.equ EERIE = 3 ; EEPROM Ready Interrupt Enable
.equ EEPM0 = 4 ; EEPROM Programming Mode Bit 0
.equ EEPM1 = 5 ; EEPROM Programming Mode Bit 1
; ***** CPU **************************
; SREG - Status Register
.equ SREG_C = 0 ; Carry Flag
.equ SREG_Z = 1 ; Zero Flag
.equ SREG_N = 2 ; Negative Flag
.equ SREG_V = 3 ; Two's Complement Overflow Flag
.equ SREG_S = 4 ; Sign Bit
.equ SREG_H = 5 ; Half Carry Flag
.equ SREG_T = 6 ; Bit Copy Storage
.equ SREG_I = 7 ; Global Interrupt Enable
; OSCCAL - Oscillator Calibration Value
.equ CAL0 = 0 ; Oscillator Calibration Value Bit0
.equ CAL1 = 1 ; Oscillator Calibration Value Bit1
.equ CAL2 = 2 ; Oscillator Calibration Value Bit2
.equ CAL3 = 3 ; Oscillator Calibration Value Bit3
.equ CAL4 = 4 ; Oscillator Calibration Value Bit4
.equ CAL5 = 5 ; Oscillator Calibration Value Bit5
.equ CAL6 = 6 ; Oscillator Calibration Value Bit6
.equ CAL7 = 7 ; Oscillator Calibration Value Bit7
; CLKPR - Clock Prescale Register
.equ CLKPS0 = 0 ; Clock Prescaler Select Bit 0
.equ CLKPS1 = 1 ; Clock Prescaler Select Bit 1
.equ CLKPS2 = 2 ; Clock Prescaler Select Bit 2
.equ CLKPS3 = 3 ; Clock Prescaler Select Bit 3
.equ CLKPCE = 7 ; Clock Prescaler Change Enable
; SPMCSR - Store Program Memory Control and Status Register
.equ SELFPRGEN = 0 ; Self Programming Enable
.equ PGERS = 1 ; Page Erase
.equ PGWRT = 2 ; Page Write
.equ BLBSET = 3 ; Boot Lock Bit Set
.equ RWWSRE = 4 ; Read-While-Write section read enable
.equ RWWSB = 6 ; Read-While-Write Section Busy
.equ SPMIE = 7 ; SPM Interrupt Enable
; MCUCR - MCU Control Register
.equ IVCE = 0 ;
.equ IVSEL = 1 ;
.equ PUD = 4 ;
.equ BODSE = 5 ; BOD Sleep Enable
.equ BODS = 6 ; BOD Sleep
; MCUSR - MCU Status Register
.equ PORF = 0 ; Power-on reset flag
.equ EXTRF = 1 ; External Reset Flag
.equ EXTREF = EXTRF ; For compatibility
.equ BORF = 2 ; Brown-out Reset Flag
.equ WDRF = 3 ; Watchdog Reset Flag
; SMCR - Sleep Mode Control Register
.equ SE = 0 ; Sleep Enable
.equ SM0 = 1 ; Sleep Mode Select Bit 0
.equ SM1 = 2 ; Sleep Mode Select Bit 1
.equ SM2 = 3 ; Sleep Mode Select Bit 2
; GPIOR2 - General Purpose I/O Register 2
.equ GPIOR20 = 0 ;
.equ GPIOR21 = 1 ;
.equ GPIOR22 = 2 ;
.equ GPIOR23 = 3 ;
.equ GPIOR24 = 4 ;
.equ GPIOR25 = 5 ;
.equ GPIOR26 = 6 ;
.equ GPIOR27 = 7 ;
; GPIOR1 - General Purpose I/O Register 1
.equ GPIOR10 = 0 ;
.equ GPIOR11 = 1 ;
.equ GPIOR12 = 2 ;
.equ GPIOR13 = 3 ;
.equ GPIOR14 = 4 ;
.equ GPIOR15 = 5 ;
.equ GPIOR16 = 6 ;
.equ GPIOR17 = 7 ;
; GPIOR0 - General Purpose I/O Register 0
.equ GPIOR00 = 0 ;
.equ GPIOR01 = 1 ;
.equ GPIOR02 = 2 ;
.equ GPIOR03 = 3 ;
.equ GPIOR04 = 4 ;
.equ GPIOR05 = 5 ;
.equ GPIOR06 = 6 ;
.equ GPIOR07 = 7 ;
; PRR - Power Reduction Register
.equ PRADC = 0 ; Power Reduction ADC
.equ PRUSART0 = 1 ; Power Reduction USART
.equ PRSPI = 2 ; Power Reduction Serial Peripheral Interface
.equ PRTIM1 = 3 ; Power Reduction Timer/Counter1
.equ PRTIM0 = 5 ; Power Reduction Timer/Counter0
.equ PRTIM2 = 6 ; Power Reduction Timer/Counter2
.equ PRTWI = 7 ; Power Reduction TWI
; ***** LOCKSBITS ********************************************************
.equ LB1 = 0 ; Lock bit
.equ LB2 = 1 ; Lock bit
.equ BLB01 = 2 ; Boot Lock bit
.equ BLB02 = 3 ; Boot Lock bit
.equ BLB11 = 4 ; Boot lock bit
.equ BLB12 = 5 ; Boot lock bit
; ***** FUSES ************************************************************
; LOW fuse bits
.equ CKSEL0 = 0 ; Select Clock Source
.equ CKSEL1 = 1 ; Select Clock Source
.equ CKSEL2 = 2 ; Select Clock Source
.equ CKSEL3 = 3 ; Select Clock Source
.equ SUT0 = 4 ; Select start-up time
.equ SUT1 = 5 ; Select start-up time
.equ CKOUT = 6 ; Clock output
.equ CKDIV8 = 7 ; Divide clock by 8
; HIGH fuse bits
.equ BODLEVEL0 = 0 ; Brown-out Detector trigger level
.equ BODLEVEL1 = 1 ; Brown-out Detector trigger level
.equ BODLEVEL2 = 2 ; Brown-out Detector trigger level
.equ EESAVE = 3 ; EEPROM memory is preserved through chip erase
.equ WDTON = 4 ; Watchdog Timer Always On
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading
.equ DWEN = 6 ; debugWIRE Enable
.equ RSTDISBL = 7 ; External reset disable
; EXTENDED fuse bits
.equ BOOTRST = 0 ; Select reset vector
.equ BOOTSZ0 = 1 ; Select boot size
.equ BOOTSZ1 = 2 ; Select boot size
; ***** CPU REGISTER DEFINITIONS *****************************************
.def XH = r27
.def XL = r26
.def YH = r29
.def YL = r28
.def ZH = r31
.def ZL = r30
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ FLASHEND = 0x0fff ; Note: Word address
.equ IOEND = 0x00ff
.equ SRAM_START = 0x0100
.equ SRAM_SIZE = 1024
.equ RAMEND = 0x04ff
.equ XRAMEND = 0x0000
.equ E2END = 0x01ff
.equ EEPROMEND = 0x01ff
.equ EEADRBITS = 9
#pragma AVRPART MEMORY PROG_FLASH 8192
#pragma AVRPART MEMORY EEPROM 512
#pragma AVRPART MEMORY INT_SRAM SIZE 1024
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100
; ***** BOOTLOADER DECLARATIONS ******************************************
.equ NRWW_START_ADDR = 0xc00
.equ NRWW_STOP_ADDR = 0xfff
.equ RWW_START_ADDR = 0x0
.equ RWW_STOP_ADDR = 0xbff
.equ PAGESIZE = 32
.equ FIRSTBOOTSTART = 0xf80
.equ SECONDBOOTSTART = 0xf00
.equ THIRDBOOTSTART = 0xe00
.equ FOURTHBOOTSTART = 0xc00
.equ SMALLBOOTSTART = FIRSTBOOTSTART
.equ LARGEBOOTSTART = FOURTHBOOTSTART
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0001 ; External Interrupt Request 0
.equ INT1addr = 0x0002 ; External Interrupt Request 1
.equ PCI0addr = 0x0003 ; Pin Change Interrupt Request 0
.equ PCI1addr = 0x0004 ; Pin Change Interrupt Request 0
.equ PCI2addr = 0x0005 ; Pin Change Interrupt Request 1
.equ WDTaddr = 0x0006 ; Watchdog Time-out Interrupt
.equ OC2Aaddr = 0x0007 ; Timer/Counter2 Compare Match A
.equ OC2Baddr = 0x0008 ; Timer/Counter2 Compare Match A
.equ OVF2addr = 0x0009 ; Timer/Counter2 Overflow
.equ ICP1addr = 0x000a ; Timer/Counter1 Capture Event
.equ OC1Aaddr = 0x000b ; Timer/Counter1 Compare Match A
.equ OC1Baddr = 0x000c ; Timer/Counter1 Compare Match B
.equ OVF1addr = 0x000d ; Timer/Counter1 Overflow
.equ OC0Aaddr = 0x000e ; TimerCounter0 Compare Match A
.equ OC0Baddr = 0x000f ; TimerCounter0 Compare Match B
.equ OVF0addr = 0x0010 ; Timer/Couner0 Overflow
.equ SPIaddr = 0x0011 ; SPI Serial Transfer Complete
.equ URXCaddr = 0x0012 ; USART Rx Complete
.equ UDREaddr = 0x0013 ; USART, Data Register Empty
.equ UTXCaddr = 0x0014 ; USART Tx Complete
.equ ADCCaddr = 0x0015 ; ADC Conversion Complete
.equ ERDYaddr = 0x0016 ; EEPROM Ready
.equ ACIaddr = 0x0017 ; Analog Comparator
.equ TWIaddr = 0x0018 ; Two-wire Serial Interface
.equ SPMRaddr = 0x0019 ; Store Program Memory Read
.equ INT_VECTORS_SIZE = 26 ; size in words
#endif /* _M88PDEF_INC_ */
; ***** END OF FILE ******************************************************

44
Atmel/m8def.inc

@ -1,13 +1,13 @@
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
;***** Created: 2005-01-11 10:31 ******* Source: ATmega8.xml *************
;***** Created: 2009-11-03 14:40 ******* Source: ATmega8.xml *************
;*************************************************************************
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y
;*
;* Number : AVR000
;* File Name : "m8def.inc"
;* Title : Register/Bit Definitions for the ATmega8
;* Date : 2005-01-11
;* Version : 2.14
;* Date : 2009-11-03
;* Version : 2.35
;* Support E-mail : avr@atmel.com
;* Target MCU : ATmega8
;*
@ -37,20 +37,20 @@
;* ... ;otherwise do something else
;*************************************************************************
;.ifndef _M8DEF_INC_
;.define _M8DEF_INC_
#ifndef _M8DEF_INC_
#define _M8DEF_INC_
;.pragma partinc 0
#pragma partinc 0
; ***** SPECIFY DEVICE ***************************************************
.device ATmega8
;.pragma AVRPART ADMIN PART_NAME ATmega8
#pragma AVRPART ADMIN PART_NAME ATmega8
.equ SIGNATURE_000 = 0x1e
.equ SIGNATURE_001 = 0x93
.equ SIGNATURE_002 = 0x07
;.pragma AVRPART CORE CORE_VERSION V2E
#pragma AVRPART CORE CORE_VERSION V2E
; ***** I/O REGISTER DEFINITIONS *****************************************
@ -58,8 +58,8 @@
; Definitions marked "MEMORY MAPPED"are extended I/O ports
; and cannot be used with IN/OUT instructions
.equ SREG = 0x3f
.equ SPH = 0x3e
.equ SPL = 0x3d
.equ SPH = 0x3e
.equ GICR = 0x3b
.equ GIFR = 0x3a
.equ TIMSK = 0x39
@ -74,14 +74,14 @@
.equ SFIOR = 0x30
.equ TCCR1A = 0x2f
.equ TCCR1B = 0x2e
.equ TCNT1H = 0x2d
.equ TCNT1L = 0x2c
.equ OCR1AH = 0x2b
.equ TCNT1H = 0x2d
.equ OCR1AL = 0x2a
.equ OCR1BH = 0x29
.equ OCR1AH = 0x2b
.equ OCR1BL = 0x28
.equ ICR1H = 0x27
.equ OCR1BH = 0x29
.equ ICR1L = 0x26
.equ ICR1H = 0x27
.equ TCCR2 = 0x25
.equ TCNT2 = 0x24
.equ OCR2 = 0x23
@ -89,8 +89,8 @@
.equ WDTCR = 0x21
.equ UBRRH = 0x20
.equ UCSRC = 0x20
.equ EEARH = 0x1f
.equ EEARL = 0x1e
.equ EEARH = 0x1f
.equ EEDR = 0x1d
.equ EECR = 0x1c
.equ PORTB = 0x18
@ -112,8 +112,8 @@
.equ ACSR = 0x08
.equ ADMUX = 0x07
.equ ADCSRA = 0x06
.equ ADCH = 0x05
.equ ADCL = 0x04
.equ ADCH = 0x05
.equ TWDR = 0x03
.equ TWAR = 0x02
.equ TWSR = 0x01
@ -228,7 +228,7 @@
.equ FOC1A = 3 ; Force Output Compare 1A
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0
.equ COM1A0 = 6 ; Compare Ouput Mode 1A, bit 0
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1
; TCCR1B - Timer/Counter1 Control Register B
@ -687,10 +687,10 @@
.equ E2END = 0x01ff
.equ EEPROMEND = 0x01ff
.equ EEADRBITS = 9
;.pragma AVRPART MEMORY PROG_FLASH 8192
;.pragma AVRPART MEMORY EEPROM 512
;.pragma AVRPART MEMORY INT_SRAM SIZE 1024
;.pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60
#pragma AVRPART MEMORY PROG_FLASH 8192
#pragma AVRPART MEMORY EEPROM 512
#pragma AVRPART MEMORY INT_SRAM SIZE 1024
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60
@ -731,8 +731,8 @@
.equ INT_VECTORS_SIZE = 19 ; size in words
;.pragma AVRPART CORE INSTRUCTIONS_NOT_SUPPORTED break
#pragma AVRPART CORE INSTRUCTIONS_NOT_SUPPORTED break
;.endif /* _M8DEF_INC_ */
#endif /* _M8DEF_INC_ */
; ***** END OF FILE ******************************************************

3
Atmel/main.inc

@ -1,3 +0,0 @@
.equ TAIL = 0 ; Choose mode. Set to 0 for main motor and 1 for tail motor

3
Atmel/tail.inc

@ -1,3 +0,0 @@
.equ TAIL = 0 ; Choose mode. Set to 0 for main motor and 1 for tail motor
Loading…
Cancel
Save