Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. ;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
  2. ;***** Created: 2005-01-11 10:30 ******* Source: AT90PWM2.xml ************
  3. ;*************************************************************************
  4. ;* 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
  5. ;*
  6. ;* Number            : AVR000
  7. ;* File Name         : "pwm2def.inc"
  8. ;* Title             : Register/Bit Definitions for the AT90PWM2
  9. ;* Date              : 2005-01-11
  10. ;* Version           : 2.14
  11. ;* Support E-mail    : avr@atmel.com
  12. ;* Target MCU        : AT90PWM2
  13. ;*
  14. ;* DESCRIPTION
  15. ;* When including this file in the assembly program file, all I/O register
  16. ;* names and I/O register bit names appearing in the data book can be used.
  17. ;* In addition, the six registers forming the three data pointers X, Y and
  18. ;* Z have been assigned names XL - ZH. Highest RAM address for Internal
  19. ;* SRAM is also defined
  20. ;*
  21. ;* The Register names are represented by their hexadecimal address.
  22. ;*
  23. ;* The Register Bit names are represented by their bit number (0-7).
  24. ;*
  25. ;* Please observe the difference in using the bit names with instructions
  26. ;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc"
  27. ;* (skip if bit in register set/cleared). The following example illustrates
  28. ;* this:
  29. ;*
  30. ;* in    r16,PORTB             ;read PORTB latch
  31. ;* sbr   r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#)
  32. ;* out   PORTB,r16             ;output to PORTB
  33. ;*
  34. ;* in    r16,TIFR              ;read the Timer Interrupt Flag Register
  35. ;* sbrc  r16,TOV0              ;test the overflow flag (use bit#)
  36. ;* rjmp  TOV0_is_set           ;jump if set
  37. ;* ...                         ;otherwise do something else
  38. ;*************************************************************************
  39.  
  40. #ifndef _PWM2DEF_INC_
  41. #define _PWM2DEF_INC_
  42.  
  43.  
  44. #pragma partinc 0
  45.  
  46. ; ***** SPECIFY DEVICE ***************************************************
  47. .device AT90PWM2
  48. #pragma AVRPART ADMIN PART_NAME AT90PWM2
  49. .equ    SIGNATURE_000   = 0x1e
  50. .equ    SIGNATURE_001   = 0x93
  51. .equ    SIGNATURE_002   = 0x81
  52.  
  53. #pragma AVRPART CORE CORE_VERSION V2E
  54.  
  55.  
  56. ; ***** I/O REGISTER DEFINITIONS *****************************************
  57. ; NOTE:
  58. ; Definitions marked "MEMORY MAPPED"are extended I/O ports
  59. ; and cannot be used with IN/OUT instructions
  60. .equ    PICR2H  = 0xff  ; MEMORY MAPPED
  61. .equ    PICR2L  = 0xfe  ; MEMORY MAPPED
  62. .equ    PFRC2B  = 0xfd  ; MEMORY MAPPED
  63. .equ    PFRC2A  = 0xfc  ; MEMORY MAPPED
  64. .equ    PCTL2   = 0xfb  ; MEMORY MAPPED
  65. .equ    PCNF2   = 0xfa  ; MEMORY MAPPED
  66. .equ    OCR2RBH = 0xf9  ; MEMORY MAPPED
  67. .equ    OCR2RBL = 0xf8  ; MEMORY MAPPED
  68. .equ    OCR2SBH = 0xf7  ; MEMORY MAPPED
  69. .equ    OCR2SBL = 0xf6  ; MEMORY MAPPED
  70. .equ    OCR2RAH = 0xf5  ; MEMORY MAPPED
  71. .equ    OCR2RAL = 0xf4  ; MEMORY MAPPED
  72. .equ    OCR2SAH = 0xf3  ; MEMORY MAPPED
  73. .equ    OCR2SAL = 0xf2  ; MEMORY MAPPED
  74. .equ    POM2    = 0xf1  ; MEMORY MAPPED
  75. .equ    PSOC2   = 0xf0  ; MEMORY MAPPED
  76. .equ    PICR1H  = 0xef  ; MEMORY MAPPED
  77. .equ    PICR1L  = 0xee  ; MEMORY MAPPED
  78. .equ    PFRC1B  = 0xed  ; MEMORY MAPPED
  79. .equ    PFRC1A  = 0xec  ; MEMORY MAPPED
  80. .equ    PCTL1   = 0xeb  ; MEMORY MAPPED
  81. .equ    PCNF1   = 0xea  ; MEMORY MAPPED
  82. .equ    OCR1RBH = 0xe9  ; MEMORY MAPPED
  83. .equ    OCR1RBL = 0xe8  ; MEMORY MAPPED
  84. .equ    OCR1SBH = 0xe7  ; MEMORY MAPPED
  85. .equ    OCR1SBL = 0xe6  ; MEMORY MAPPED
  86. .equ    OCR1RAH = 0xe5  ; MEMORY MAPPED
  87. .equ    OCR1RAL = 0xe4  ; MEMORY MAPPED
  88. .equ    OCR1SAH = 0xe3  ; MEMORY MAPPED
  89. .equ    OCR1SAL = 0xe2  ; MEMORY MAPPED
  90. .equ    PSOC1   = 0xe0  ; MEMORY MAPPED
  91. .equ    PICR0H  = 0xdf  ; MEMORY MAPPED
  92. .equ    PICR0L  = 0xde  ; MEMORY MAPPED
  93. .equ    PFRC0B  = 0xdd  ; MEMORY MAPPED
  94. .equ    PFRC0A  = 0xdc  ; MEMORY MAPPED
  95. .equ    PCTL0   = 0xdb  ; MEMORY MAPPED
  96. .equ    PCNF0   = 0xda  ; MEMORY MAPPED
  97. .equ    OCR0RBH = 0xd9  ; MEMORY MAPPED
  98. .equ    OCR0RBL = 0xd8  ; MEMORY MAPPED
  99. .equ    OCR0SBH = 0xd7  ; MEMORY MAPPED
  100. .equ    OCR0SBL = 0xd6  ; MEMORY MAPPED
  101. .equ    OCR0RAH = 0xd5  ; MEMORY MAPPED
  102. .equ    OCR0RAL = 0xd4  ; MEMORY MAPPED
  103. .equ    OCR0SAH = 0xd3  ; MEMORY MAPPED
  104. .equ    OCR0SAL = 0xd2  ; MEMORY MAPPED
  105. .equ    PSOC0   = 0xd0  ; MEMORY MAPPED
  106. .equ    EUDR    = 0xce  ; MEMORY MAPPED
  107. .equ    MUBRRH  = 0xcd  ; MEMORY MAPPED
  108. .equ    MUBRRL  = 0xcc  ; MEMORY MAPPED
  109. .equ    EUCSRC  = 0xca  ; MEMORY MAPPED
  110. .equ    EUCSRB  = 0xc9  ; MEMORY MAPPED
  111. .equ    EUCSRA  = 0xc8  ; MEMORY MAPPED
  112. .equ    UDR     = 0xc6  ; MEMORY MAPPED
  113. .equ    UBRRH   = 0xc5  ; MEMORY MAPPED
  114. .equ    UBRRL   = 0xc4  ; MEMORY MAPPED
  115. .equ    UCSRC   = 0xc2  ; MEMORY MAPPED
  116. .equ    UCSRB   = 0xc1  ; MEMORY MAPPED
  117. .equ    UCSRA   = 0xc0  ; MEMORY MAPPED
  118. .equ    AC2CON  = 0xaf  ; MEMORY MAPPED
  119. .equ    AC1CON  = 0xae  ; MEMORY MAPPED
  120. .equ    AC0CON  = 0xad  ; MEMORY MAPPED
  121. .equ    DACH    = 0xac  ; MEMORY MAPPED
  122. .equ    DACL    = 0xab  ; MEMORY MAPPED
  123. .equ    DACON   = 0xaa  ; MEMORY MAPPED
  124. .equ    PIM2    = 0xa5  ; MEMORY MAPPED
  125. .equ    PIFR2   = 0xa4  ; MEMORY MAPPED
  126. .equ    PIM1    = 0xa3  ; MEMORY MAPPED
  127. .equ    PIFR1   = 0xa2  ; MEMORY MAPPED
  128. .equ    PIM0    = 0xa1  ; MEMORY MAPPED
  129. .equ    PIFR0   = 0xa0  ; MEMORY MAPPED
  130. .equ    OCR1BH  = 0x8b  ; MEMORY MAPPED
  131. .equ    OCR1BL  = 0x8a  ; MEMORY MAPPED
  132. .equ    OCR1AH  = 0x89  ; MEMORY MAPPED
  133. .equ    OCR1AL  = 0x88  ; MEMORY MAPPED
  134. .equ    ICR1H   = 0x87  ; MEMORY MAPPED
  135. .equ    ICR1L   = 0x86  ; MEMORY MAPPED
  136. .equ    TCNT1H  = 0x85  ; MEMORY MAPPED
  137. .equ    TCNT1L  = 0x84  ; MEMORY MAPPED
  138. .equ    TCCR1C  = 0x82  ; MEMORY MAPPED
  139. .equ    TCCR1B  = 0x81  ; MEMORY MAPPED
  140. .equ    TCCR1A  = 0x80  ; MEMORY MAPPED
  141. .equ    DIDR1   = 0x7f  ; MEMORY MAPPED
  142. .equ    DIDR0   = 0x7e  ; MEMORY MAPPED
  143. .equ    ADMUX   = 0x7c  ; MEMORY MAPPED
  144. .equ    ADCSRB  = 0x7b  ; MEMORY MAPPED
  145. .equ    ADCSRA  = 0x7a  ; MEMORY MAPPED
  146. .equ    ADCH    = 0x79  ; MEMORY MAPPED
  147. .equ    ADCL    = 0x78  ; MEMORY MAPPED
  148. .equ    AMP1CSR = 0x77  ; MEMORY MAPPED
  149. .equ    AMP0CSR = 0x76  ; MEMORY MAPPED
  150. .equ    TIMSK1  = 0x6f  ; MEMORY MAPPED
  151. .equ    TIMSK0  = 0x6e  ; MEMORY MAPPED
  152. .equ    EICRA   = 0x69  ; MEMORY MAPPED
  153. .equ    OSCCAL  = 0x66  ; MEMORY MAPPED
  154. .equ    PRR     = 0x64  ; MEMORY MAPPED
  155. .equ    CLKPR   = 0x61  ; MEMORY MAPPED
  156. .equ    WDTCSR  = 0x60  ; MEMORY MAPPED
  157. .equ    SREG    = 0x3f
  158. .equ    SPH     = 0x3e
  159. .equ    SPL     = 0x3d
  160. .equ    SPMCSR  = 0x37
  161. .equ    MCUCR   = 0x35
  162. .equ    MCUSR   = 0x34
  163. .equ    SMCR    = 0x33
  164. .equ    ACSR    = 0x30
  165. .equ    SPDR    = 0x2e
  166. .equ    SPSR    = 0x2d
  167. .equ    SPCR    = 0x2c
  168. .equ    PLLCSR  = 0x29
  169. .equ    OCR0B   = 0x28
  170. .equ    OCR0A   = 0x27
  171. .equ    TCNT0   = 0x26
  172. .equ    TCCR0B  = 0x25
  173. .equ    TCCR0A  = 0x24
  174. .equ    GTCCR   = 0x23
  175. .equ    EEARH   = 0x22
  176. .equ    EEARL   = 0x21
  177. .equ    EEDR    = 0x20
  178. .equ    EECR    = 0x1f
  179. .equ    GPIOR0  = 0x1e
  180. .equ    EIMSK   = 0x1d
  181. .equ    EIFR    = 0x1c
  182. .equ    GPIOR3  = 0x1b
  183. .equ    GPIOR2  = 0x1a
  184. .equ    GPIOR1  = 0x19
  185. .equ    TIFR1   = 0x16
  186. .equ    TIFR0   = 0x15
  187. .equ    PORTE   = 0x0e
  188. .equ    DDRE    = 0x0d
  189. .equ    PINE    = 0x0c
  190. .equ    PORTD   = 0x0b
  191. .equ    DDRD    = 0x0a
  192. .equ    PIND    = 0x09
  193. .equ    PORTC   = 0x08
  194. .equ    DDRC    = 0x07
  195. .equ    PINC    = 0x06
  196. .equ    PORTB   = 0x05
  197. .equ    DDRB    = 0x04
  198. .equ    PINB    = 0x03
  199.  
  200.  
  201. ; ***** BIT DEFINITIONS **************************************************
  202.  
  203. ; ***** PORTB ************************
  204. ; PORTB - Port B Data Register
  205. .equ    PORTB0  = 0     ; Port B Data Register bit 0
  206. .equ    PB0     = 0     ; For compatibility
  207. .equ    PORTB1  = 1     ; Port B Data Register bit 1
  208. .equ    PB1     = 1     ; For compatibility
  209. .equ    PORTB2  = 2     ; Port B Data Register bit 2
  210. .equ    PB2     = 2     ; For compatibility
  211. .equ    PORTB3  = 3     ; Port B Data Register bit 3
  212. .equ    PB3     = 3     ; For compatibility
  213. .equ    PORTB4  = 4     ; Port B Data Register bit 4
  214. .equ    PB4     = 4     ; For compatibility
  215. .equ    PORTB5  = 5     ; Port B Data Register bit 5
  216. .equ    PB5     = 5     ; For compatibility
  217. .equ    PORTB6  = 6     ; Port B Data Register bit 6
  218. .equ    PB6     = 6     ; For compatibility
  219. .equ    PORTB7  = 7     ; Port B Data Register bit 7
  220. .equ    PB7     = 7     ; For compatibility
  221.  
  222. ; DDRB - Port B Data Direction Register
  223. .equ    DDB0    = 0     ; Port B Data Direction Register bit 0
  224. .equ    DDB1    = 1     ; Port B Data Direction Register bit 1
  225. .equ    DDB2    = 2     ; Port B Data Direction Register bit 2
  226. .equ    DDB3    = 3     ; Port B Data Direction Register bit 3
  227. .equ    DDB4    = 4     ; Port B Data Direction Register bit 4
  228. .equ    DDB5    = 5     ; Port B Data Direction Register bit 5
  229. .equ    DDB6    = 6     ; Port B Data Direction Register bit 6
  230. .equ    DDB7    = 7     ; Port B Data Direction Register bit 7
  231.  
  232. ; PINB - Port B Input Pins
  233. .equ    PINB0   = 0     ; Port B Input Pins bit 0
  234. .equ    PINB1   = 1     ; Port B Input Pins bit 1
  235. .equ    PINB2   = 2     ; Port B Input Pins bit 2
  236. .equ    PINB3   = 3     ; Port B Input Pins bit 3
  237. .equ    PINB4   = 4     ; Port B Input Pins bit 4
  238. .equ    PINB5   = 5     ; Port B Input Pins bit 5
  239. .equ    PINB6   = 6     ; Port B Input Pins bit 6
  240. .equ    PINB7   = 7     ; Port B Input Pins bit 7
  241.  
  242.  
  243. ; ***** PORTD ************************
  244. ; PORTD - Port D Data Register
  245. .equ    PORTD0  = 0     ; Port D Data Register bit 0
  246. .equ    PD0     = 0     ; For compatibility
  247. .equ    PORTD1  = 1     ; Port D Data Register bit 1
  248. .equ    PD1     = 1     ; For compatibility
  249. .equ    PORTD2  = 2     ; Port D Data Register bit 2
  250. .equ    PD2     = 2     ; For compatibility
  251. .equ    PORTD3  = 3     ; Port D Data Register bit 3
  252. .equ    PD3     = 3     ; For compatibility
  253. .equ    PORTD4  = 4     ; Port D Data Register bit 4
  254. .equ    PD4     = 4     ; For compatibility
  255. .equ    PORTD5  = 5     ; Port D Data Register bit 5
  256. .equ    PD5     = 5     ; For compatibility
  257. .equ    PORTD6  = 6     ; Port D Data Register bit 6
  258. .equ    PD6     = 6     ; For compatibility
  259. .equ    PORTD7  = 7     ; Port D Data Register bit 7
  260. .equ    PD7     = 7     ; For compatibility
  261.  
  262. ; DDRD - Port D Data Direction Register
  263. .equ    DDD0    = 0     ; Port D Data Direction Register bit 0
  264. .equ    DDD1    = 1     ; Port D Data Direction Register bit 1
  265. .equ    DDD2    = 2     ; Port D Data Direction Register bit 2
  266. .equ    DDD3    = 3     ; Port D Data Direction Register bit 3
  267. .equ    DDD4    = 4     ; Port D Data Direction Register bit 4
  268. .equ    DDD5    = 5     ; Port D Data Direction Register bit 5
  269. .equ    DDD6    = 6     ; Port D Data Direction Register bit 6
  270. .equ    DDD7    = 7     ; Port D Data Direction Register bit 7
  271.  
  272. ; PIND - Port D Input Pins
  273. .equ    PIND0   = 0     ; Port D Input Pins bit 0
  274. .equ    PIND1   = 1     ; Port D Input Pins bit 1
  275. .equ    PIND2   = 2     ; Port D Input Pins bit 2
  276. .equ    PIND3   = 3     ; Port D Input Pins bit 3
  277. .equ    PIND4   = 4     ; Port D Input Pins bit 4
  278. .equ    PIND5   = 5     ; Port D Input Pins bit 5
  279. .equ    PIND6   = 6     ; Port D Input Pins bit 6
  280. .equ    PIND7   = 7     ; Port D Input Pins bit 7
  281.  
  282.  
  283. ; ***** BOOT_LOAD ********************
  284. ; SPMCSR - Store Program Memory Control Register
  285. .equ    SPMCR   = SPMCSR        ; For compatibility
  286. .equ    SPMEN   = 0     ; Store Program Memory Enable
  287. .equ    PGERS   = 1     ; Page Erase
  288. .equ    PGWRT   = 2     ; Page Write
  289. .equ    BLBSET  = 3     ; Boot Lock Bit Set
  290. .equ    RWWSRE  = 4     ; Read While Write section read enable
  291. .equ    ASRE    = RWWSRE        ; For compatibility
  292. .equ    RWWSB   = 6     ; Read While Write Section Busy
  293. .equ    ASB     = RWWSB ; For compatibility
  294. .equ    SPMIE   = 7     ; SPM Interrupt Enable
  295.  
  296.  
  297. ; ***** EEPROM ***********************
  298. ; EEDR - EEPROM Data Register
  299. .equ    EEDR0   = 0     ; EEPROM Data Register bit 0
  300. .equ    EEDR1   = 1     ; EEPROM Data Register bit 1
  301. .equ    EEDR2   = 2     ; EEPROM Data Register bit 2
  302. .equ    EEDR3   = 3     ; EEPROM Data Register bit 3
  303. .equ    EEDR4   = 4     ; EEPROM Data Register bit 4
  304. .equ    EEDR5   = 5     ; EEPROM Data Register bit 5
  305. .equ    EEDR6   = 6     ; EEPROM Data Register bit 6
  306. .equ    EEDR7   = 7     ; EEPROM Data Register bit 7
  307.  
  308. ; EECR - EEPROM Control Register
  309. .equ    EERE    = 0     ; EEPROM Read Enable
  310. .equ    EEWE    = 1     ; EEPROM Write Enable
  311. .equ    EEMWE   = 2     ; EEPROM Master Write Enable
  312. .equ    EERIE   = 3     ; EEPROM Ready Interrupt Enable
  313.  
  314.  
  315. ; ***** PSC0 *************************
  316. ; PICR0H - PSC 0 Input Capture Register High
  317. .equ    PICR0_8 = 0     ;
  318. .equ    PICR0_9 = 1     ;
  319. .equ    PICR0_10        = 2     ;
  320. .equ    PICR0_11        = 3     ;
  321.  
  322. ; PICR0L - PSC 0 Input Capture Register Low
  323. .equ    PICR0_0 = 0     ;
  324. .equ    PICR0_1 = 1     ;
  325. .equ    PICR0_2 = 2     ;
  326. .equ    PICR0_3 = 3     ;
  327. .equ    PICR0_4 = 4     ;
  328. .equ    PICR0_5 = 5     ;
  329. .equ    PICR0_6 = 6     ;
  330. .equ    PICR0_7 = 7     ;
  331.  
  332. ; PFRC0B - PSC 0 Input B Control
  333. .equ    PRFM0B0 = 0     ; PSC 0 Retrigger and Fault Mode for Part B
  334. .equ    PRFM0B1 = 1     ; PSC 0 Retrigger and Fault Mode for Part B
  335. .equ    PRFM0B2 = 2     ; PSC 0 Retrigger and Fault Mode for Part B
  336. .equ    PRFM0B3 = 3     ; PSC 0 Retrigger and Fault Mode for Part B
  337. .equ    PFLTE0B = 4     ; PSC 0 Filter Enable on Input Part B
  338. .equ    PELEV0B = 5     ; PSC 0 Edge Level Selector on Input Part B
  339. .equ    PISEL0B = 6     ; PSC 0 Input Select for Part B
  340. .equ    PCAE0B  = 7     ; PSC 0 Capture Enable Input Part B
  341.  
  342. ; PFRC0A - PSC 0 Input A Control
  343. .equ    PRFM0A0 = 0     ; PSC 0 Retrigger and Fault Mode for Part A
  344. .equ    PRFM0A1 = 1     ; PSC 0 Retrigger and Fault Mode for Part A
  345. .equ    PRFM0A2 = 2     ; PSC 0 Retrigger and Fault Mode for Part A
  346. .equ    PRFM0A3 = 3     ; PSC 0 Retrigger and Fault Mode for Part A
  347. .equ    PFLTE0A = 4     ; PSC 0 Filter Enable on Input Part A
  348. .equ    PELEV0A = 5     ; PSC 0 Edge Level Selector on Input Part A
  349. .equ    PISEL0A = 6     ; PSC 0 Input Select for Part A
  350. .equ    PCAE0A  = 7     ; PSC 0 Capture Enable Input Part A
  351.  
  352. ; PCTL0 - PSC 0 Control Register
  353. .equ    PRUN0   = 0     ; PSC 0 Run
  354. .equ    PCCYC0  = 1     ; PSC0 Complete Cycle
  355. .equ    PARUN0  = 2     ; PSC0 Auto Run
  356. .equ    PAOC0A  = 3     ; PSC 0 Asynchronous Output Control A
  357. .equ    PAOC0B  = 4     ; PSC 0 Asynchronous Output Control B
  358. .equ    PBFM0   = 5     ; PSC 0 Balance Flank Width Modulation
  359. .equ    PPRE00  = 6     ; PSC 0 Prescaler Select 0
  360. .equ    PPRE01  = 7     ; PSC 0 Prescaler Select 1
  361.  
  362. ; PCNF0 - PSC 0 Configuration Register
  363. .equ    PCLKSEL0        = 1     ; PSC 0 Input Clock Select
  364. .equ    POP0    = 2     ; PSC 0 Output Polarity
  365. .equ    PMODE00 = 3     ; PSC 0 Mode
  366. .equ    PMODE01 = 4     ; PSC 0 Mode
  367. .equ    PLOCK0  = 5     ; PSC 0 Lock
  368. .equ    PALOCK0 = 6     ; PSC 0 Autolock
  369. .equ    PFIFTY0 = 7     ; PSC 0 Fifty
  370.  
  371. ; OCR0RBH - Output Compare RB Register High
  372. .equ    OCR0RB_8        = 0     ;
  373. .equ    OCR0RB_9        = 1     ;
  374. .equ    OCR0RB_00       = 2     ;
  375. .equ    OCR0RB_01       = 3     ;
  376. .equ    OCR0RB_02       = 4     ;
  377. .equ    OCR0RB_03       = 5     ;
  378. .equ    OCR0RB_04       = 6     ;
  379. .equ    OCR0RB_05       = 7     ;
  380.  
  381. ; OCR0RBL - Output Compare RB Register Low
  382. .equ    OCR0RB_0        = 0     ;
  383. .equ    OCR0RB_1        = 1     ;
  384. .equ    OCR0RB_2        = 2     ;
  385. .equ    OCR0RB_3        = 3     ;
  386. .equ    OCR0RB_4        = 4     ;
  387. .equ    OCR0RB_5        = 5     ;
  388. .equ    OCR0RB_6        = 6     ;
  389. .equ    OCR0RB_7        = 7     ;
  390.  
  391. ; OCR0SBH - Output Compare SB Register High
  392. .equ    OCR0SB_8        = 0     ;
  393. .equ    OCR0SB_9        = 1     ;
  394. .equ    OCR0SB_00       = 2     ;
  395. .equ    OCR0SB_01       = 3     ;
  396.  
  397. ; OCR0SBL - Output Compare SB Register Low
  398. .equ    OCR0SB_0        = 0     ;
  399. .equ    OCR0SB_1        = 1     ;
  400. .equ    OCR0SB_2        = 2     ;
  401. .equ    OCR0SB_3        = 3     ;
  402. .equ    OCR0SB_4        = 4     ;
  403. .equ    OCR0SB_5        = 5     ;
  404. .equ    OCR0SB_6        = 6     ;
  405. .equ    OCR0SB_7        = 7     ;
  406.  
  407. ; OCR0RAH - Output Compare RA Register High
  408. .equ    OCR0RA_8        = 0     ;
  409. .equ    OCR0RA_9        = 1     ;
  410. .equ    OCR0RA_00       = 2     ;
  411. .equ    OCR0RA_01       = 3     ;
  412.  
  413. ; OCR0RAL - Output Compare RA Register Low
  414. .equ    OCR0RA_0        = 0     ;
  415. .equ    OCR0RA_1        = 1     ;
  416. .equ    OCR0RA_2        = 2     ;
  417. .equ    OCR0RA_3        = 3     ;
  418. .equ    OCR0RA_4        = 4     ;
  419. .equ    OCR0RA_5        = 5     ;
  420. .equ    OCR0RA_6        = 6     ;
  421. .equ    OCR0RA_7        = 7     ;
  422.  
  423. ; OCR0SAH - Output Compare SA Register High
  424. .equ    OCR0SA_8        = 0     ;
  425. .equ    OCR0SA_9        = 1     ;
  426. .equ    OCR0SA_00       = 2     ;
  427. .equ    OCR0SA_01       = 3     ;
  428.  
  429. ; OCR0SAL - Output Compare SA Register Low
  430. .equ    OCR0SA_0        = 0     ;
  431. .equ    OCR0SA_1        = 1     ;
  432. .equ    OCR0SA_2        = 2     ;
  433. .equ    OCR0SA_3        = 3     ;
  434. .equ    OCR0SA_4        = 4     ;
  435. .equ    OCR0SA_5        = 5     ;
  436. .equ    OCR0SA_6        = 6     ;
  437. .equ    OCR0SA_7        = 7     ;
  438.  
  439. ; PSOC0 - PSC0 Synchro and Output Configuration
  440. .equ    POEN0A  = 0     ; PSCOUT00 Output Enable
  441. .equ    POEN0B  = 2     ; PSCOUT01 Output Enable
  442. .equ    PSYNC00 = 4     ; Synchronization Out for ADC Selection
  443. .equ    PSYNC01 = 5     ; Synchronization Out for ADC Selection
  444.  
  445. ; PIM0 - PSC0 Interrupt Mask Register
  446. .equ    PEOPE0  = 0     ; End of Cycle Interrupt Enable
  447. .equ    PEVE0A  = 3     ; External Event A Interrupt Enable
  448. .equ    PEVE0B  = 4     ; External Event B Interrupt Enable
  449. .equ    PSEIE0  = 5     ; PSC 0 Synchro Error Interrupt Enable
  450.  
  451. ; PIFR0 - PSC0 Interrupt Flag Register
  452. .equ    PEOP0   = 0     ; End of PSC0 Interrupt
  453. .equ    PRN00   = 1     ; Ramp Number
  454. .equ    PRN01   = 2     ; Ramp Number
  455. .equ    PEV0A   = 3     ; External Event A Interrupt
  456. .equ    PEV0B   = 4     ; External Event B Interrupt
  457. .equ    PSEI0   = 5     ; PSC 0 Synchro Error Interrupt
  458.  
  459.  
  460. ; ***** PSC2 *************************
  461. ; PICR2H - PSC 2 Input Capture Register High
  462. .equ    PICR2_8 = 0     ;
  463. .equ    PICR2_9 = 1     ;
  464. .equ    PICR2_10        = 2     ;
  465. .equ    PICR2_11        = 3     ;
  466.  
  467. ; PICR2L - PSC 2 Input Capture Register Low
  468. .equ    PICR2_0 = 0     ;
  469. .equ    PICR2_1 = 1     ;
  470. .equ    PICR2_2 = 2     ;
  471. .equ    PICR2_3 = 3     ;
  472. .equ    PICR2_4 = 4     ;
  473. .equ    PICR2_5 = 5     ;
  474. .equ    PICR2_6 = 6     ;
  475. .equ    PICR2_7 = 7     ;
  476.  
  477. ; PFRC2B - PSC 2 Input B Control
  478. .equ    PRFM2B0 = 0     ; PSC 2 Retrigger and Fault Mode for Part B
  479. .equ    PRFM2B1 = 1     ; PSC 2 Retrigger and Fault Mode for Part B
  480. .equ    PRFM2B2 = 2     ; PSC 2 Retrigger and Fault Mode for Part B
  481. .equ    PRFM2B3 = 3     ; PSC 2 Retrigger and Fault Mode for Part B
  482. .equ    PFLTE2B = 4     ; PSC 2 Filter Enable on Input Part B
  483. .equ    PELEV2B = 5     ; PSC 2 Edge Level Selector on Input Part B
  484. .equ    PISEL2B = 6     ; PSC 2 Input Select for Part B
  485. .equ    PCAE2B  = 7     ; PSC 2 Capture Enable Input Part B
  486.  
  487. ; PFRC2A - PSC 2 Input B Control
  488. .equ    PRFM2A0 = 0     ; PSC 2 Retrigger and Fault Mode for Part A
  489. .equ    PRFM2A1 = 1     ; PSC 2 Retrigger and Fault Mode for Part A
  490. .equ    PRFM2A2 = 2     ; PSC 2 Retrigger and Fault Mode for Part A
  491. .equ    PRFM2A3 = 3     ; PSC 2 Retrigger and Fault Mode for Part A
  492. .equ    PFLTE2A = 4     ; PSC 2 Filter Enable on Input Part A
  493. .equ    PELEV2A = 5     ; PSC 2 Edge Level Selector on Input Part A
  494. .equ    PISEL2A = 6     ; PSC 2 Input Select for Part A
  495. .equ    PCAE2A  = 7     ; PSC 2 Capture Enable Input Part A
  496.  
  497. ; PCTL2 - PSC 2 Control Register
  498. .equ    PRUN2   = 0     ; PSC 2 Run
  499. .equ    PCCYC2  = 1     ; PSC2 Complete Cycle
  500. .equ    PARUN2  = 2     ; PSC2 Auto Run
  501. .equ    PAOC2A  = 3     ; PSC 2 Asynchronous Output Control A
  502. .equ    PAOC2B  = 4     ; PSC 2 Asynchronous Output Control B
  503. .equ    PBFM2   = 5     ; Balance Flank Width Modulation
  504. .equ    PPRE20  = 6     ; PSC 2 Prescaler Select 0
  505. .equ    PPRE21  = 7     ; PSC 2 Prescaler Select 1
  506.  
  507. ; PCNF2 - PSC 2 Configuration Register
  508. .equ    POME2   = 0     ; PSC 2 Output Matrix Enable
  509. .equ    PCLKSEL2        = 1     ; PSC 2 Input Clock Select
  510. .equ    POP2    = 2     ; PSC 2 Output Polarity
  511. .equ    PMODE20 = 3     ; PSC 2 Mode
  512. .equ    PMODE21 = 4     ; PSC 2 Mode
  513. .equ    PLOCK2  = 5     ; PSC 2 Lock
  514. .equ    PALOCK2 = 6     ; PSC 2 Autolock
  515. .equ    PFIFTY2 = 7     ; PSC 2 Fifty
  516.  
  517. ; OCR2RBH - Output Compare RB Register High
  518. .equ    OCR2RB_8        = 0     ;
  519. .equ    OCR2RB_9        = 1     ;
  520. .equ    OCR2RB_10       = 2     ;
  521. .equ    OCR2RB_11       = 3     ;
  522. .equ    OCR2RB_12       = 4     ;
  523. .equ    OCR2RB_13       = 5     ;
  524. .equ    OCR2RB_14       = 6     ;
  525. .equ    OCR2RB_15       = 7     ;
  526.  
  527. ; OCR2RBL - Output Compare RB Register Low
  528. .equ    OCR2RB_0        = 0     ;
  529. .equ    OCR2RB_1        = 1     ;
  530. .equ    OCR2RB_2        = 2     ;
  531. .equ    OCR2RB_3        = 3     ;
  532. .equ    OCR2RB_4        = 4     ;
  533. .equ    OCR2RB_5        = 5     ;
  534. .equ    OCR2RB_6        = 6     ;
  535. .equ    OCR2RB_7        = 7     ;
  536.  
  537. ; OCR2SBH - Output Compare SB Register High
  538. .equ    OCR2SB_8        = 0     ;
  539. .equ    OCR2SB_9        = 1     ;
  540. .equ    OCR2SB_10       = 2     ;
  541. .equ    OCR2SB_11       = 3     ;
  542.  
  543. ; OCR2SBL - Output Compare SB Register Low
  544. .equ    OCR2SB_0        = 0     ;
  545. .equ    OCR2SB_1        = 1     ;
  546. .equ    OCR2SB_2        = 2     ;
  547. .equ    OCR2SB_3        = 3     ;
  548. .equ    OCR2SB_4        = 4     ;
  549. .equ    OCR2SB_5        = 5     ;
  550. .equ    OCR2SB_6        = 6     ;
  551. .equ    OCR2SB_7        = 7     ;
  552.  
  553. ; OCR2RAH - Output Compare RA Register High
  554. .equ    OCR2RA_8        = 0     ;
  555. .equ    OCR2RA_9        = 1     ;
  556. .equ    OCR2RA_10       = 2     ;
  557. .equ    OCR2RA_11       = 3     ;
  558.  
  559. ; OCR2RAL - Output Compare RA Register Low
  560. .equ    OCR2RA_0        = 0     ;
  561. .equ    OCR2RA_1        = 1     ;
  562. .equ    OCR2RA_2        = 2     ;
  563. .equ    OCR2RA_3        = 3     ;
  564. .equ    OCR2RA_4        = 4     ;
  565. .equ    OCR2RA_5        = 5     ;
  566. .equ    OCR2RA_6        = 6     ;
  567. .equ    OCR2RA_7        = 7     ;
  568.  
  569. ; OCR2SAH - Output Compare SA Register High
  570. .equ    OCR2SA_8        = 0     ;
  571. .equ    OCR2SA_9        = 1     ;
  572. .equ    OCR2SA_10       = 2     ;
  573. .equ    OCR2SA_11       = 3     ;
  574.  
  575. ; OCR2SAL - Output Compare SA Register Low
  576. .equ    OCR2SA_0        = 0     ;
  577. .equ    OCR2SA_1        = 1     ;
  578. .equ    OCR2SA_2        = 2     ;
  579. .equ    OCR2SA_3        = 3     ;
  580. .equ    OCR2SA_4        = 4     ;
  581. .equ    OCR2SA_5        = 5     ;
  582. .equ    OCR2SA_6        = 6     ;
  583. .equ    OCR2SA_7        = 7     ;
  584.  
  585. ; POM2 - PSC 2 Output Matrix
  586. .equ    POMV2A0 = 0     ; Output Matrix Output A Ramp 0
  587. .equ    POMV2A1 = 1     ; Output Matrix Output A Ramp 1
  588. .equ    POMV2A2 = 2     ; Output Matrix Output A Ramp 2
  589. .equ    POMV2A3 = 3     ; Output Matrix Output A Ramp 3
  590. .equ    POMV2B0 = 4     ; Output Matrix Output B Ramp 0
  591. .equ    POMV2B1 = 5     ; Output Matrix Output B Ramp 2
  592. .equ    POMV2B2 = 6     ; Output Matrix Output B Ramp 2
  593. .equ    POMV2B3 = 7     ; Output Matrix Output B Ramp 3
  594.  
  595. ; PSOC2 - PSC2 Synchro and Output Configuration
  596. .equ    POEN2A  = 0     ; PSCOUT20 Output Enable
  597. .equ    POEN2C  = 1     ; PSCOUT22 Output Enable
  598. .equ    POEN2B  = 2     ; PSCOUT21 Output Enable
  599. .equ    POEN2D  = 3     ; PSCOUT23 Output Enable
  600. .equ    PSYNC2_0        = 4     ; Synchronization Out for ADC Selection
  601. .equ    PSYNC2_1        = 5     ; Synchronization Out for ADC Selection
  602. .equ    POS22   = 6     ; PSC 2 Output 22 Select
  603. .equ    POS23   = 7     ; PSC 2 Output 23 Select
  604.  
  605. ; PIM2 - PSC2 Interrupt Mask Register
  606. .equ    PEOPE2  = 0     ; End of Cycle Interrupt Enable
  607. .equ    PEVE2A  = 3     ; External Event A Interrupt Enable
  608. .equ    PEVE2B  = 4     ; External Event B Interrupt Enable
  609. .equ    PSEIE2  = 5     ; PSC 2 Synchro Error Interrupt Enable
  610.  
  611. ; PIFR2 - PSC2 Interrupt Flag Register
  612. .equ    PEOP2   = 0     ; End of PSC2 Interrupt
  613. .equ    PRN20   = 1     ; Ramp Number
  614. .equ    PRN21   = 2     ; Ramp Number
  615. .equ    PEV2A   = 3     ; External Event A Interrupt
  616. .equ    PEV2B   = 4     ; External Event B Interrupt
  617. .equ    PSEI2   = 5     ; PSC 2 Synchro Error Interrupt
  618.  
  619.  
  620. ; ***** EUSART ***********************
  621. ; EUDR - EUSART I/O Data Register
  622. .equ    EUDR0   = 0     ; EUSART I/O Data Register bit 0
  623. .equ    EUDR1   = 1     ; EUSART I/O Data Register bit 1
  624. .equ    EUDR2   = 2     ; EUSART I/O Data Register bit 2
  625. .equ    EUDR3   = 3     ; EUSART I/O Data Register bit 3
  626. .equ    EUDR4   = 4     ; EUSART I/O Data Register bit 4
  627. .equ    EUDR5   = 5     ; EUSART I/O Data Register bit 5
  628. .equ    EUDR6   = 6     ; EUSART I/O Data Register bit 6
  629. .equ    EUDR7   = 7     ; EUSART I/O Data Register bit 7
  630.  
  631. ; EUCSRA - EUSART Control and Status Register A
  632. .equ    URxS0   = 0     ; EUSART Control and Status Register A Bit 0
  633. .equ    URxS1   = 1     ; EUSART Control and Status Register A Bit 1
  634. .equ    URxS2   = 2     ; EUSART Control and Status Register A Bit 2
  635. .equ    URxS3   = 3     ; EUSART Control and Status Register A Bit 3
  636. .equ    UTxS0   = 4     ; EUSART Control and Status Register A Bit 4
  637. .equ    UTxS1   = 5     ; EUSART Control and Status Register A Bit 5
  638. .equ    UTxS2   = 6     ; EUSART Control and Status Register A Bit 6
  639. .equ    UTxS3   = 7     ; EUSART Control and Status Register A Bit 7
  640.  
  641. ; EUCSRB - EUSART Control Register B
  642. .equ    BODR    = 0     ; Order Bit
  643. .equ    EMCH    = 1     ; Manchester Mode Bit
  644. .equ    EUSBS   = 3     ; EUSBS Enable Bit
  645. .equ    EUSART  = 4     ; EUSART Enable Bit
  646.  
  647. ; EUCSRC - EUSART Status Register C
  648. .equ    STP0    = 0     ; Stop Bit 0
  649. .equ    STP1    = 1     ; Stop Bit 1
  650. .equ    F1617   = 2     ; F1617 Bit
  651. .equ    FEM     = 3     ; Frame Error Manchester Bit
  652.  
  653. ; MUBRRH - Manchester Receiver Baud Rate Register High Byte
  654. .equ    MUBRR8  = 0     ; Manchester Receiver Baud Rate Register Bit 8
  655. .equ    MUBRR9  = 1     ; Manchester Receiver Baud Rate Register Bit 9
  656. .equ    MUBRR10 = 2     ; Manchester Receiver Baud Rate Register Bit 10
  657. .equ    MUBRR11 = 3     ; Manchester Receiver Baud Rate Register Bit 11
  658. .equ    MUBRR12 = 4     ; Manchester Receiver Baud Rate Register Bit 12
  659. .equ    MUBRR13 = 5     ; Manchester Receiver Baud Rate Register Bit 13
  660. .equ    MUBRR14 = 6     ; Manchester Receiver Baud Rate Register Bit 14
  661. .equ    MUBRR15 = 7     ; Manchester Receiver Baud Rate Register Bit 15
  662.  
  663. ; MUBRRL - Manchester Receiver Baud Rate Register Low Byte
  664. .equ    MUBRR0  = 0     ; Manchester Receiver Baud Rate Register Bit 0
  665. .equ    MUBRR1  = 1     ; Manchester Receiver Baud Rate Register Bit 1
  666. .equ    MUBRR2  = 2     ; Manchester Receiver Baud Rate Register Bit 2
  667. .equ    MUBRR3  = 3     ; Manchester Receiver Baud Rate Register Bit 3
  668. .equ    MUBRR4  = 4     ; Manchester Receiver Baud Rate Register Bit 4
  669. .equ    MUBRR5  = 5     ; Manchester Receiver Baud Rate Register Bit 5
  670. .equ    MUBRR6  = 6     ; Manchester Receiver Baud Rate Register Bit 6
  671. .equ    MUBRR7  = 7     ; Manchester Receiver Baud Rate Register Bit 7
  672.  
  673.  
  674. ; ***** ANALOG_COMPARATOR ************
  675. ; AC0CON - Analog Comparator 0 Control Register
  676. .equ    AC0M0   = 0     ; Analog Comparator 0 Multiplexer Register
  677. .equ    AC0M1   = 1     ; Analog Comparator 0 Multiplexer Regsiter
  678. .equ    AC0M2   = 2     ; Analog Comparator 0 Multiplexer Register
  679. .equ    AC0IS0  = 4     ; Analog Comparator 0 Interrupt Select Bit
  680. .equ    AC0IS1  = 5     ; Analog Comparator 0  Interrupt Select Bit
  681. .equ    AC0IE   = 6     ; Analog Comparator 0 Interrupt Enable Bit
  682. .equ    AC0EN   = 7     ; Analog Comparator 0 Enable Bit
  683.  
  684. ; AC1CON - Analog Comparator 1 Control Register
  685. .equ    AC1M0   = 0     ; Analog Comparator 1 Multiplexer Register
  686. .equ    AC1M1   = 1     ; Analog Comparator 1 Multiplexer Regsiter
  687. .equ    AC1M2   = 2     ; Analog Comparator 1 Multiplexer Register
  688. .equ    AC1ICE  = 3     ; Analog Comparator 1 Interrupt Capture Enable Bit
  689. .equ    AC1IS0  = 4     ; Analog Comparator 1 Interrupt Select Bit
  690. .equ    AC1IS1  = 5     ; Analog Comparator 1  Interrupt Select Bit
  691. .equ    AC1IE   = 6     ; Analog Comparator 1 Interrupt Enable Bit
  692. .equ    AC1EN   = 7     ; Analog Comparator 1 Enable Bit
  693.  
  694. ; AC2CON - Analog Comparator 2 Control Register
  695. .equ    AC2M0   = 0     ; Analog Comparator 2 Multiplexer Register
  696. .equ    AC2M1   = 1     ; Analog Comparator 2 Multiplexer Regsiter
  697. .equ    AC2M2   = 2     ; Analog Comparator 2 Multiplexer Register
  698. .equ    AC2SADE = 3     ; Analog Comparator 2 Start A/D Conversion Enable Bit
  699. .equ    AC2IS0  = 4     ; Analog Comparator 2 Interrupt Select Bit
  700. .equ    AC2IS1  = 5     ; Analog Comparator 2  Interrupt Select Bit
  701. .equ    AC2IE   = 6     ; Analog Comparator 2 Interrupt Enable Bit
  702. .equ    AC2EN   = 7     ; Analog Comparator 2 Enable Bit
  703.  
  704.  
  705. ; ***** DA_CONVERTER *****************
  706. ; DACH - DAC Data Register High Byte
  707. .equ    DACH0   = 0     ; DAC Data Register High Byte Bit 0
  708. .equ    DACH1   = 1     ; DAC Data Register High Byte Bit 1
  709. .equ    DACH2   = 2     ; DAC Data Register High Byte Bit 2
  710. .equ    DACH3   = 3     ; DAC Data Register High Byte Bit 3
  711. .equ    DACH4   = 4     ; DAC Data Register High Byte Bit 4
  712. .equ    DACH5   = 5     ; DAC Data Register High Byte Bit 5
  713. .equ    DACH6   = 6     ; DAC Data Register High Byte Bit 6
  714. .equ    DACH7   = 7     ; DAC Data Register High Byte Bit 7
  715.  
  716. ; DACL - DAC Data Register Low Byte
  717. .equ    DACL1   = 1     ; DAC Data Register Low Byte Bit 1
  718. .equ    DACL2   = 2     ; DAC Data Register Low Byte Bit 2
  719. .equ    DACL3   = 3     ; DAC Data Register Low Byte Bit 3
  720. .equ    DACL4   = 4     ; DAC Data Register Low Byte Bit 4
  721. .equ    DACL5   = 5     ; DAC Data Register Low Byte Bit 5
  722. .equ    DACL6   = 6     ; DAC Data Register Low Byte Bit 6
  723. .equ    DACL7   = 7     ; DAC Data Register Low Byte Bit 7
  724.  
  725. ; DACON - DAC Control Register
  726. .equ    DAEN    = 0     ; DAC Enable Bit
  727. .equ    DAOE    = 1     ; DAC Output Enable Bit
  728. .equ    DALA    = 2     ; DAC Left Adjust
  729. .equ    DATS0   = 4     ; DAC Trigger Selection Bit 0
  730. .equ    DATS1   = 5     ; DAC Trigger Selection Bit 1
  731. .equ    DATS2   = 6     ; DAC Trigger Selection Bit 2
  732. .equ    DAATE   = 7     ; DAC Auto Trigger Enable Bit
  733.  
  734.  
  735. ; ***** CPU **************************
  736. ; SREG - Status Register
  737. .equ    SREG_C  = 0     ; Carry Flag
  738. .equ    SREG_Z  = 1     ; Zero Flag
  739. .equ    SREG_N  = 2     ; Negative Flag
  740. .equ    SREG_V  = 3     ; Two's Complement Overflow Flag
  741. .equ    SREG_S  = 4
  742. .equ    SREG_H  = 5     ; Half Carry Flag
  743. .equ    SREG_T  = 6     ; Bit Copy Storage
  744. .equ    SREG_I  = 7     ; Global Interrupt Enable
  745.  
  746. ; MCUCR - MCU Control Register
  747. .equ    IVCE    = 0     ; Interrupt Vector Change Enable
  748. .equ    IVSEL   = 1     ; Interrupt Vector Select
  749. .equ    PUD     = 4     ; Pull-up disable
  750. .equ    SPIPS   = 7     ; SPI Pin Select
  751.  
  752. ; MCUSR - MCU Status Register
  753. .equ    PORF    = 0     ; Power-on reset flag
  754. .equ    EXTRF   = 1     ; External Reset Flag
  755. .equ    BORF    = 2     ; Brown-out Reset Flag
  756. .equ    WDRF    = 3     ; Watchdog Reset Flag
  757.  
  758. ; OSCCAL - Oscillator Calibration Value
  759. .equ    CAL0    = 0     ; Oscillator Calibration Value Bit0
  760. .equ    CAL1    = 1     ; Oscillator Calibration Value Bit1
  761. .equ    CAL2    = 2     ; Oscillator Calibration Value Bit2
  762. .equ    CAL3    = 3     ; Oscillator Calibration Value Bit3
  763. .equ    CAL4    = 4     ; Oscillator Calibration Value Bit4
  764. .equ    CAL5    = 5     ; Oscillator Calibration Value Bit5
  765. .equ    CAL6    = 6     ; Oscillator Calibration Value Bit6
  766.  
  767. ; CLKPR -
  768. .equ    CLKPS0  = 0     ;
  769. .equ    CLKPS1  = 1     ;
  770. .equ    CLKPS2  = 2     ;
  771. .equ    CLKPS3  = 3     ;
  772. .equ    CPKPCE  = 7     ;
  773.  
  774. ; SMCR - Sleep Mode Control Register
  775. .equ    SE      = 0     ; Sleep Enable
  776. .equ    SM0     = 1     ; Sleep Mode Select bit 0
  777. .equ    SM1     = 2     ; Sleep Mode Select bit 1
  778. .equ    SM2     = 3     ; Sleep Mode Select bit 2
  779.  
  780. ; GPIOR3 - General Purpose IO Register 3
  781. .equ    GPIOR30 = 0     ; General Purpose IO Register 3 bit 0
  782. .equ    GPIOR31 = 1     ; General Purpose IO Register 3 bit 1
  783. .equ    GPIOR32 = 2     ; General Purpose IO Register 3 bit 2
  784. .equ    GPIOR33 = 3     ; General Purpose IO Register 3 bit 3
  785. .equ    GPIOR34 = 4     ; General Purpose IO Register 3 bit 4
  786. .equ    GPIOR35 = 5     ; General Purpose IO Register 3 bit 5
  787. .equ    GPIOR36 = 6     ; General Purpose IO Register 3 bit 6
  788. .equ    GPIOR37 = 7     ; General Purpose IO Register 3 bit 7
  789.  
  790. ; GPIOR2 - General Purpose IO Register 2
  791. .equ    GPIOR20 = 0     ; General Purpose IO Register 2 bit 0
  792. .equ    GPIOR21 = 1     ; General Purpose IO Register 2 bit 1
  793. .equ    GPIOR22 = 2     ; General Purpose IO Register 2 bit 2
  794. .equ    GPIOR23 = 3     ; General Purpose IO Register 2 bit 3
  795. .equ    GPIOR24 = 4     ; General Purpose IO Register 2 bit 4
  796. .equ    GPIOR25 = 5     ; General Purpose IO Register 2 bit 5
  797. .equ    GPIOR26 = 6     ; General Purpose IO Register 2 bit 6
  798. .equ    GPIOR27 = 7     ; General Purpose IO Register 2 bit 7
  799.  
  800. ; GPIOR1 - General Purpose IO Register 1
  801. .equ    GPIOR10 = 0     ; General Purpose IO Register 1 bit 0
  802. .equ    GPIOR11 = 1     ; General Purpose IO Register 1 bit 1
  803. .equ    GPIOR12 = 2     ; General Purpose IO Register 1 bit 2
  804. .equ    GPIOR13 = 3     ; General Purpose IO Register 1 bit 3
  805. .equ    GPIOR14 = 4     ; General Purpose IO Register 1 bit 4
  806. .equ    GPIOR15 = 5     ; General Purpose IO Register 1 bit 5
  807. .equ    GPIOR16 = 6     ; General Purpose IO Register 1 bit 6
  808. .equ    GPIOR17 = 7     ; General Purpose IO Register 1 bit 7
  809.  
  810. ; GPIOR0 - General Purpose IO Register 0
  811. .equ    GPIOR00 = 0     ; General Purpose IO Register 0 bit 0
  812. .equ    GPIOR01 = 1     ; General Purpose IO Register 0 bit 1
  813. .equ    GPIOR02 = 2     ; General Purpose IO Register 0 bit 2
  814. .equ    GPIOR03 = 3     ; General Purpose IO Register 0 bit 3
  815. .equ    GPIOR04 = 4     ; General Purpose IO Register 0 bit 4
  816. .equ    GPIOR05 = 5     ; General Purpose IO Register 0 bit 5
  817. .equ    GPIOR06 = 6     ; General Purpose IO Register 0 bit 6
  818. .equ    GPIOR07 = 7     ; General Purpose IO Register 0 bit 7
  819.  
  820. ; PLLCSR - PLL Control And Status Register
  821. .equ    PLOCK   = 0     ; PLL Lock Detector
  822. .equ    PLLE    = 1     ; PLL Enable
  823. .equ    PCKE    = 2     ; PCK Enable
  824.  
  825.  
  826. ; ***** PORTE ************************
  827. ; PORTE - Port E Data Register
  828. .equ    PORTE0  = 0     ;
  829. .equ    PE0     = 0     ; For compatibility
  830. .equ    PORTE1  = 1     ;
  831. .equ    PE1     = 1     ; For compatibility
  832. .equ    PORTE2  = 2     ;
  833. .equ    PE2     = 2     ; For compatibility
  834.  
  835. ; DDRE - Port E Data Direction Register
  836. .equ    DDE0    = 0     ;
  837. .equ    DDE1    = 1     ;
  838. .equ    DDE2    = 2     ;
  839.  
  840. ; PINE - Port E Input Pins
  841. .equ    PINE0   = 0     ;
  842. .equ    PINE1   = 1     ;
  843. .equ    PINE2   = 2     ;
  844.  
  845.  
  846. ; ***** TIMER_COUNTER_0 **************
  847. ; TIMSK0 - Timer/Counter0 Interrupt Mask Register
  848. .equ    TOIE0   = 0     ; Timer/Counter0 Overflow Interrupt Enable
  849. .equ    OCIE0A  = 1     ; Timer/Counter0 Output Compare Match A Interrupt Enable
  850. .equ    OCIE0B  = 2     ; Timer/Counter0 Output Compare Match B Interrupt Enable
  851.  
  852. ; TIFR0 - Timer/Counter0 Interrupt Flag register
  853. .equ    TOV0    = 0     ; Timer/Counter0 Overflow Flag
  854. .equ    OCF0A   = 1     ; Timer/Counter0 Output Compare Flag 0A
  855. .equ    OCF0B   = 2     ; Timer/Counter0 Output Compare Flag 0B
  856.  
  857. ; TCCR0A - Timer/Counter  Control Register A
  858. .equ    WGM00   = 0     ; Waveform Generation Mode
  859. .equ    WGM01   = 1     ; Waveform Generation Mode
  860. .equ    COM0B0  = 4     ; Compare Output Mode, Fast PWm
  861. .equ    COM0B1  = 5     ; Compare Output Mode, Fast PWm
  862. .equ    COM0A0  = 6     ; Compare Output Mode, Phase Correct PWM Mode
  863. .equ    COM0A1  = 7     ; Compare Output Mode, Phase Correct PWM Mode
  864.  
  865. ; TCCR0B - Timer/Counter Control Register B
  866. .equ    CS00    = 0     ; Clock Select
  867. .equ    CS01    = 1     ; Clock Select
  868. .equ    CS02    = 2     ; Clock Select
  869. .equ    WGM02   = 3     ;
  870. .equ    FOC0B   = 6     ; Force Output Compare B
  871. .equ    FOC0A   = 7     ; Force Output Compare A
  872.  
  873. ; TCNT0 - Timer/Counter0
  874. .equ    TCNT0_0 = 0     ;
  875. .equ    TCNT0_1 = 1     ;
  876. .equ    TCNT0_2 = 2     ;
  877. .equ    TCNT0_3 = 3     ;
  878. .equ    TCNT0_4 = 4     ;
  879. .equ    TCNT0_5 = 5     ;
  880. .equ    TCNT0_6 = 6     ;
  881. .equ    TCNT0_7 = 7     ;
  882.  
  883. ; OCR0A - Timer/Counter0 Output Compare Register
  884. .equ    OCR0_0  = 0     ;
  885. .equ    OCR0_1  = 1     ;
  886. .equ    OCR0_2  = 2     ;
  887. .equ    OCR0_3  = 3     ;
  888. .equ    OCR0_4  = 4     ;
  889. .equ    OCR0_5  = 5     ;
  890. .equ    OCR0_6  = 6     ;
  891. .equ    OCR0_7  = 7     ;
  892.  
  893. ; OCR0B - Timer/Counter0 Output Compare Register
  894. ;.equ   OCR0_0  = 0     ;
  895. ;.equ   OCR0_1  = 1     ;
  896. ;.equ   OCR0_2  = 2     ;
  897. ;.equ   OCR0_3  = 3     ;
  898. ;.equ   OCR0_4  = 4     ;
  899. ;.equ   OCR0_5  = 5     ;
  900. ;.equ   OCR0_6  = 6     ;
  901. ;.equ   OCR0_7  = 7     ;
  902.  
  903. ; GTCCR - General Timer/Counter Control Register
  904. .equ    PSR10   = 0     ; Prescaler Reset Timer/Counter1 and Timer/Counter0
  905. .equ    ICPSEL1 = 6     ; Timer1 Input Capture Selection Bit
  906. .equ    TSM     = 7     ; Timer/Counter Synchronization Mode
  907.  
  908.  
  909. ; ***** TIMER_COUNTER_1 **************
  910. ; TIMSK1 - Timer/Counter Interrupt Mask Register
  911. .equ    TOIE1   = 0     ; Timer/Counter1 Overflow Interrupt Enable
  912. .equ    OCIE1A  = 1     ; Timer/Counter1 Output CompareA Match Interrupt Enable
  913. .equ    OCIE1B  = 2     ; Timer/Counter1 Output CompareB Match Interrupt Enable
  914. .equ    ICIE1   = 5     ; Timer/Counter1 Input Capture Interrupt Enable
  915.  
  916. ; TIFR1 - Timer/Counter Interrupt Flag register
  917. .equ    TOV1    = 0     ; Timer/Counter1 Overflow Flag
  918. .equ    OCF1A   = 1     ; Output Compare Flag 1A
  919. .equ    OCF1B   = 2     ; Output Compare Flag 1B
  920. .equ    ICF1    = 5     ; Input Capture Flag 1
  921.  
  922. ; TCCR1A - Timer/Counter1 Control Register A
  923. .equ    WGM10   = 0     ; Waveform Generation Mode
  924. .equ    WGM11   = 1     ; Waveform Generation Mode
  925. .equ    COM1B0  = 4     ; Compare Output Mode 1B, bit 0
  926. .equ    COM1B1  = 5     ; Compare Output Mode 1B, bit 1
  927. .equ    COM1A0  = 6     ; Comparet Ouput Mode 1A, bit 0
  928. .equ    COM1A1  = 7     ; Compare Output Mode 1A, bit 1
  929.  
  930. ; TCCR1B - Timer/Counter1 Control Register B
  931. .equ    CS10    = 0     ; Prescaler source of Timer/Counter 1
  932. .equ    CS11    = 1     ; Prescaler source of Timer/Counter 1
  933. .equ    CS12    = 2     ; Prescaler source of Timer/Counter 1
  934. .equ    WGM12   = 3     ; Waveform Generation Mode
  935. .equ    WGM13   = 4     ; Waveform Generation Mode
  936. .equ    ICES1   = 6     ; Input Capture 1 Edge Select
  937. .equ    ICNC1   = 7     ; Input Capture 1 Noise Canceler
  938.  
  939. ; TCCR1C - Timer/Counter1 Control Register C
  940. .equ    FOC1B   = 6     ;
  941. .equ    FOC1A   = 7     ;
  942.  
  943. ; GTCCR - General Timer/Counter Control Register
  944. .equ    PSRSYNC = 0     ; Prescaler Reset Timer/Counter1 and Timer/Counter0
  945. ;.equ   TSM     = 7     ; Timer/Counter Synchronization Mode
  946.  
  947.  
  948. ; ***** AD_CONVERTER *****************
  949. ; ADMUX - The ADC multiplexer Selection Register
  950. .equ    MUX0    = 0     ; Analog Channel and Gain Selection Bits
  951. .equ    MUX1    = 1     ; Analog Channel and Gain Selection Bits
  952. .equ    MUX2    = 2     ; Analog Channel and Gain Selection Bits
  953. .equ    MUX3    = 3     ; Analog Channel and Gain Selection Bits
  954. .equ    ADLAR   = 5     ; Left Adjust Result
  955. .equ    REFS0   = 6     ; Reference Selection Bit 0
  956. .equ    REFS1   = 7     ; Reference Selection Bit 1
  957.  
  958. ; ADCSRA - The ADC Control and Status register
  959. .equ    ADPS0   = 0     ; ADC  Prescaler Select Bits
  960. .equ    ADPS1   = 1     ; ADC  Prescaler Select Bits
  961. .equ    ADPS2   = 2     ; ADC  Prescaler Select Bits
  962. .equ    ADIE    = 3     ; ADC Interrupt Enable
  963. .equ    ADIF    = 4     ; ADC Interrupt Flag
  964. .equ    ADATE   = 5     ; ADC Auto Trigger Enable
  965. .equ    ADSC    = 6     ; ADC Start Conversion
  966. .equ    ADEN    = 7     ; ADC Enable
  967.  
  968. ; ADCH - ADC Data Register High Byte
  969. .equ    ADCH0   = 0     ; ADC Data Register High Byte Bit 0
  970. .equ    ADCH1   = 1     ; ADC Data Register High Byte Bit 1
  971. .equ    ADCH2   = 2     ; ADC Data Register High Byte Bit 2
  972. .equ    ADCH3   = 3     ; ADC Data Register High Byte Bit 3
  973. .equ    ADCH4   = 4     ; ADC Data Register High Byte Bit 4
  974. .equ    ADCH5   = 5     ; ADC Data Register High Byte Bit 5
  975. .equ    ADCH6   = 6     ; ADC Data Register High Byte Bit 6
  976. .equ    ADCH7   = 7     ; ADC Data Register High Byte Bit 7
  977.  
  978. ; ADCL - ADC Data Register Low Byte
  979. .equ    ADCL0   = 0     ; ADC Data Register Low Byte Bit 0
  980. .equ    ADCL1   = 1     ; ADC Data Register Low Byte Bit 1
  981. .equ    ADCL2   = 2     ; ADC Data Register Low Byte Bit 2
  982. .equ    ADCL3   = 3     ; ADC Data Register Low Byte Bit 3
  983. .equ    ADCL4   = 4     ; ADC Data Register Low Byte Bit 4
  984. .equ    ADCL5   = 5     ; ADC Data Register Low Byte Bit 5
  985. .equ    ADCL6   = 6     ; ADC Data Register Low Byte Bit 6
  986. .equ    ADCL7   = 7     ; ADC Data Register Low Byte Bit 7
  987.  
  988. ; ADCSRB - ADC Control and Status Register B
  989. .equ    ADTS0   = 0     ; ADC Auto Trigger Source 0
  990. .equ    ADTS1   = 1     ; ADC Auto Trigger Source 1
  991. .equ    ADTS2   = 2     ; ADC Auto Trigger Source 2
  992. .equ    ADASCR  = 3     ;
  993. .equ    ADAP    = 4     ;
  994.  
  995. ; DIDR0 - Digital Input Disable Register 0
  996. .equ    ADC0D   = 0     ; ADC0 Digital input Disable
  997. .equ    ADC1D   = 1     ; ADC1 Digital input Disable
  998. .equ    ADC2D   = 2     ; ADC2 Digital input Disable
  999. .equ    ADC3D   = 3     ; ADC3 Digital input Disable
  1000. .equ    ADC4D   = 4     ; ADC4 Digital input Disable
  1001. .equ    ADC5D   = 5     ; ADC5 Digital input Disable
  1002. .equ    ADC6D   = 6     ; ADC6 Digital input Disable
  1003. .equ    ADC7D   = 7     ; ADC7 Digital input Disable
  1004.  
  1005. ; DIDR1 -
  1006. .equ    ADC8D   = 0     ;
  1007. .equ    ADC9D   = 1     ;
  1008. .equ    ADC10D  = 2     ;
  1009. .equ    AMP0ND  = 3     ;
  1010. .equ    AMP0PD  = 4     ;
  1011. .equ    ACMP0D  = 5     ;
  1012.  
  1013.  
  1014. ; ***** USART ************************
  1015. ; UDR - USART I/O Data Register
  1016. .equ    UDR0    = 0     ; USART I/O Data Register bit 0
  1017. .equ    UDR1    = 1     ; USART I/O Data Register bit 1
  1018. .equ    UDR2    = 2     ; USART I/O Data Register bit 2
  1019. .equ    UDR3    = 3     ; USART I/O Data Register bit 3
  1020. .equ    UDR4    = 4     ; USART I/O Data Register bit 4
  1021. .equ    UDR5    = 5     ; USART I/O Data Register bit 5
  1022. .equ    UDR6    = 6     ; USART I/O Data Register bit 6
  1023. .equ    UDR7    = 7     ; USART I/O Data Register bit 7
  1024.  
  1025. ; UCSRA - USART Control and Status register A
  1026. .equ    MPCM    = 0     ; Multi-processor Communication Mode
  1027. .equ    U2X     = 1     ; Double USART Transmission Bit
  1028. .equ    UPE     = 2     ; USART Parity Error
  1029. .equ    DOR     = 3     ; Data Overrun
  1030. .equ    FE      = 4     ; Framing Error
  1031. .equ    UDRE    = 5     ; USART Data Register Empty
  1032. .equ    TXC     = 6     ; USART Transmitt Complete
  1033. .equ    RXC     = 7     ; USART Receive Complete
  1034.  
  1035. ; UCSRB - USART Control an Status register B
  1036. .equ    TXB8    = 0     ; Transmit Data Bit 8
  1037. .equ    RXB8    = 1     ; Receive Data Bit 8
  1038. .equ    UCSZ2   = 2     ; Character Size
  1039. .equ    TXEN    = 3     ; Transmitter Enable
  1040. .equ    RXEN    = 4     ; Receiver Enable
  1041. .equ    UDRIE   = 5     ; USART Data Register Empty Interrupt Enable
  1042. .equ    TXCIE   = 6     ; TX Complete Interrupt Enable
  1043. .equ    RXCIE   = 7     ; RX Complete Interrupt Enable
  1044.  
  1045. ; UCSRC - USART Control an Status register C
  1046. .equ    UCPOL   = 0     ; Clock Polarity
  1047. .equ    UCSZ0   = 1     ; Character Size Bit 0
  1048. .equ    UCSZ1   = 2     ; Character Size Bit 1
  1049. .equ    USBS    = 3     ; Stop Bit Select
  1050. .equ    UPM0    = 4     ; Parity Mode Bit 0
  1051. .equ    UPM1    = 5     ; Parity Mode Bit 1
  1052. .equ    UMSEL0  = 6     ; USART Mode Select
  1053.  
  1054. ; UBRRH - USART Baud Rate Register High Byte
  1055. .equ    UBRR8   = 0     ; USART Baud Rate Register Bit 8
  1056. .equ    UBRR9   = 1     ; USART Baud Rate Register Bit 9
  1057. .equ    UBRR10  = 2     ; USART Baud Rate Register Bit 10
  1058. .equ    UBRR11  = 3     ; USART Baud Rate Register Bit 11
  1059.  
  1060. ; UBRRL - USART Baud Rate Register Low Byte
  1061. .equ    UBRR0   = 0     ; USART Baud Rate Register bit 0
  1062. .equ    UBRR1   = 1     ; USART Baud Rate Register bit 1
  1063. .equ    UBRR2   = 2     ; USART Baud Rate Register bit 2
  1064. .equ    UBRR3   = 3     ; USART Baud Rate Register bit 3
  1065. .equ    UBRR4   = 4     ; USART Baud Rate Register bit 4
  1066. .equ    UBRR5   = 5     ; USART Baud Rate Register bit 5
  1067. .equ    UBRR6   = 6     ; USART Baud Rate Register bit 6
  1068. .equ    UBRR7   = 7     ; USART Baud Rate Register bit 7
  1069.  
  1070.  
  1071. ; ***** SPI **************************
  1072. ; SPDR - SPI Data Register
  1073. .equ    SPDR0   = 0     ; SPI Data Register bit 0
  1074. .equ    SPDR1   = 1     ; SPI Data Register bit 1
  1075. .equ    SPDR2   = 2     ; SPI Data Register bit 2
  1076. .equ    SPDR3   = 3     ; SPI Data Register bit 3
  1077. .equ    SPDR4   = 4     ; SPI Data Register bit 4
  1078. .equ    SPDR5   = 5     ; SPI Data Register bit 5
  1079. .equ    SPDR6   = 6     ; SPI Data Register bit 6
  1080. .equ    SPDR7   = 7     ; SPI Data Register bit 7
  1081.  
  1082. ; SPSR - SPI Status Register
  1083. .equ    SPI2X   = 0     ; Double SPI Speed Bit
  1084. .equ    WCOL    = 6     ; Write Collision Flag
  1085. .equ    SPIF    = 7     ; SPI Interrupt Flag
  1086.  
  1087. ; SPCR - SPI Control Register
  1088. .equ    SPR0    = 0     ; SPI Clock Rate Select 0
  1089. .equ    SPR1    = 1     ; SPI Clock Rate Select 1
  1090. .equ    CPHA    = 2     ; Clock Phase
  1091. .equ    CPOL    = 3     ; Clock polarity
  1092. .equ    MSTR    = 4     ; Master/Slave Select
  1093. .equ    DORD    = 5     ; Data Order
  1094. .equ    SPE     = 6     ; SPI Enable
  1095. .equ    SPIE    = 7     ; SPI Interrupt Enable
  1096.  
  1097.  
  1098. ; ***** WATCHDOG *********************
  1099. ; WDTCSR - Watchdog Timer Control Register
  1100. .equ    WDP0    = 0     ; Watch Dog Timer Prescaler bit 0
  1101. .equ    WDP1    = 1     ; Watch Dog Timer Prescaler bit 1
  1102. .equ    WDP2    = 2     ; Watch Dog Timer Prescaler bit 2
  1103. .equ    WDE     = 3     ; Watch Dog Enable
  1104. .equ    WDCE    = 4     ; Watchdog Change Enable
  1105. .equ    WDP3    = 5     ; Watchdog Timer Prescaler Bit 3
  1106. .equ    WDIE    = 6     ; Watchdog Timeout Interrupt Enable
  1107. .equ    WDIF    = 7     ; Watchdog Timeout Interrupt Flag
  1108.  
  1109.  
  1110. ; ***** EXTERNAL_INTERRUPT ***********
  1111. ; EICRA - External Interrupt Control Register A
  1112. .equ    ISC00   = 0     ; External Interrupt Sense Control Bit
  1113. .equ    ISC01   = 1     ; External Interrupt Sense Control Bit
  1114. .equ    ISC10   = 2     ; External Interrupt Sense Control Bit
  1115. .equ    ISC11   = 3     ; External Interrupt Sense Control Bit
  1116. .equ    ISC20   = 4     ; External Interrupt Sense Control Bit
  1117. .equ    ISC21   = 5     ; External Interrupt Sense Control Bit
  1118.  
  1119. ; EIMSK - External Interrupt Mask Register
  1120. .equ    INT0    = 0     ; External Interrupt Request 0 Enable
  1121. .equ    INT1    = 1     ; External Interrupt Request 1 Enable
  1122. .equ    INT2    = 2     ; External Interrupt Request 2 Enable
  1123.  
  1124. ; EIFR - External Interrupt Flag Register
  1125. .equ    INTF0   = 0     ; External Interrupt Flag 0
  1126. .equ    INTF1   = 1     ; External Interrupt Flag 1
  1127. .equ    INTF2   = 2     ; External Interrupt Flag 2
  1128.  
  1129.  
  1130.  
  1131. ; ***** LOCKSBITS ********************************************************
  1132. .equ    LB1     = 0     ; Lock bit
  1133. .equ    LB2     = 1     ; Lock bit
  1134. .equ    BLB01   = 2     ; Boot Lock bit
  1135. .equ    BLB02   = 3     ; Boot Lock bit
  1136. .equ    BLB11   = 4     ; Boot lock bit
  1137. .equ    BLB12   = 5     ; Boot lock bit
  1138.  
  1139.  
  1140. ; ***** FUSES ************************************************************
  1141. ; LOW fuse bits
  1142. .equ    CKSEL0  = 0     ; Select Clock Source
  1143. .equ    CKSEL1  = 1     ; Select Clock Source
  1144. .equ    CKSEL2  = 2     ; Select Clock Source
  1145. .equ    CKSEL3  = 3     ; Select Clock Source
  1146. .equ    SUT0    = 4     ; Select start-up time
  1147. .equ    SUT1    = 5     ; Select start-up time
  1148. .equ    CKOUT   = 6     ; Oscillator output option
  1149. .equ    CLKDIV8 = 7     ; Divide clock by 8
  1150.  
  1151. ; HIGH fuse bits
  1152. .equ    BOOTRST = 0     ; Select Reset Vector
  1153. .equ    BOOTSZ0 = 1     ; Select Boot Size
  1154. .equ    BOOTSZ1 = 2     ; Select Boot Size
  1155. .equ    EESAVE  = 3     ; EEPROM memory is preserved through chip erase
  1156. .equ    WDTON   = 4     ; Watchdog timer always on
  1157. .equ    SPIEN   = 5     ; Enable Serial programming and Data Downloading
  1158. .equ    JTAGEN  = 6     ; Enable JTAG
  1159. .equ    OCDEN   = 7     ; Enable OCD
  1160.  
  1161. ; EXTENDED fuse bits
  1162. .equ    TA0SEL  = 0     ; (Reserved to factory tests)
  1163. .equ    BODLEVEL0       = 1     ; Brown-out Detector trigger level
  1164. .equ    BODLEVEL1       = 2     ; Brown-out Detector trigger level
  1165. .equ    BODLEVEL2       = 3     ; Brown out detector trigger level
  1166.  
  1167.  
  1168.  
  1169. ; ***** CPU REGISTER DEFINITIONS *****************************************
  1170. .def    XH      = r27
  1171. .def    XL      = r26
  1172. .def    YH      = r29
  1173. .def    YL      = r28
  1174. .def    ZH      = r31
  1175. .def    ZL      = r30
  1176.  
  1177.  
  1178.  
  1179. ; ***** DATA MEMORY DECLARATIONS *****************************************
  1180. .equ    FLASHEND        = 0x0fff        ; Note: Word address
  1181. .equ    IOEND   = 0x00ff
  1182. .equ    SRAM_START      = 0x0100
  1183. .equ    SRAM_SIZE       = 512
  1184. .equ    RAMEND  = 0x02ff
  1185. .equ    XRAMEND = 0x0000
  1186. .equ    E2END   = 0x01ff
  1187. .equ    EEPROMEND       = 0x01ff
  1188. .equ    EEADRBITS       = 9
  1189. #pragma AVRPART MEMORY PROG_FLASH 8192
  1190. #pragma AVRPART MEMORY EEPROM 512
  1191. #pragma AVRPART MEMORY INT_SRAM SIZE 512
  1192. #pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100
  1193.  
  1194.  
  1195.  
  1196. ; ***** BOOTLOADER DECLARATIONS ******************************************
  1197. .equ    NRWW_START_ADDR = 0xc00
  1198. .equ    NRWW_STOP_ADDR  = 0xfff
  1199. .equ    RWW_START_ADDR  = 0x0
  1200. .equ    RWW_STOP_ADDR   = 0xbff
  1201. .equ    PAGESIZE        = 32
  1202. .equ    FIRSTBOOTSTART  = 0xf80
  1203. .equ    SECONDBOOTSTART = 0xf00
  1204. .equ    THIRDBOOTSTART  = 0xe00
  1205. .equ    FOURTHBOOTSTART = 0xc00
  1206. .equ    SMALLBOOTSTART  = FIRSTBOOTSTART
  1207. .equ    LARGEBOOTSTART  = FOURTHBOOTSTART
  1208.  
  1209.  
  1210.  
  1211. ; ***** INTERRUPT VECTORS ************************************************
  1212. .equ    PSC2_CAPTaddr   = 0x0001        ; PSC2 Capture Event
  1213. .equ    PSC2_ECaddr     = 0x0002        ; PSC2 End Cycle
  1214. .equ    PSC1_CAPTaddr   = 0x0003        ; PSC1 Capture Event
  1215. .equ    PSC1_ECaddr     = 0x0004        ; PSC1 End Cycle
  1216. .equ    PSC0_CAPTaddr   = 0x0005        ; PSC0 Capture Event
  1217. .equ    PSC0_ECaddr     = 0x0006        ; PSC0 End Cycle
  1218. .equ    ACI0addr        = 0x0007        ; Analog Comparator 0
  1219. .equ    ACI1addr        = 0x0008        ; Analog Comparator 1
  1220. .equ    ACI2addr        = 0x0009        ; Analog Comparator 2
  1221. .equ    INT0addr        = 0x000a        ; External Interrupt Request 0
  1222. .equ    ICP1addr        = 0x000b        ; Timer/Counter1 Capture Event
  1223. .equ    OC1Aaddr        = 0x000c        ; Timer/Counter1 Compare Match A
  1224. .equ    OC1Baddr        = 0x000d        ; Timer/Counter Compare Match B
  1225. .equ    OVF1addr        = 0x000f        ; Timer/Counter1 Overflow
  1226. .equ    OC0Aaddr        = 0x0010        ; Timer/Counter0 Compare Match A
  1227. .equ    OVF0addr        = 0x0011        ; Timer/Counter0 Overflow
  1228. .equ    ADCCaddr        = 0x0012        ; ADC Conversion Complete
  1229. .equ    INT1addr        = 0x0013        ; External Interrupt Request 1
  1230. .equ    SPIaddr = 0x0014        ; SPI Serial Transfer Complete
  1231. .equ    URXCaddr        = 0x0015        ; USART, Rx Complete
  1232. .equ    UDREaddr        = 0x0016        ; USART Data Register Empty
  1233. .equ    UTXCaddr        = 0x0017        ; USART, Tx Complete
  1234. .equ    INT2addr        = 0x0018        ; External Interrupt Request 2
  1235. .equ    WDTaddr = 0x0019        ; Watchdog Timeout Interrupt
  1236. .equ    ERDYaddr        = 0x001a        ; EEPROM Ready
  1237. .equ    OC0Baddr        = 0x001b        ; Timer Counter 0 Compare Match B
  1238. .equ    INT3addr        = 0x001c        ; External Interrupt Request 3
  1239. .equ    SPMRaddr        = 0x001f        ; Store Program Memory Read
  1240.  
  1241. .equ    INT_VECTORS_SIZE        = 29    ; size in words
  1242.  
  1243. #endif  /* _PWM2DEF_INC_ */
  1244.  
  1245. ; ***** END OF FILE ******************************************************
  1246.