~arcachofo/simulide/1.1.0

« back to all changes in this revision

Viewing changes to resources/data/codeeditor/tools/avra/m48def.inc

  • Committer: arcachofo
  • Date: 2021-01-01 14:23:42 UTC
  • Revision ID: arcachofo@simulide.com-20210101142342-ozfljnll44g5lbl3
Initial Commit 0.5.15-RC3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
 
2
;***** Created: 2005-01-11 10:31 ******* Source: ATmega48.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         : "m48def.inc"
 
8
;* Title             : Register/Bit Definitions for the ATmega48
 
9
;* Date              : 2005-01-11
 
10
;* Version           : 2.14
 
11
;* Support E-mail    : avr@atmel.com
 
12
;* Target MCU        : ATmega48
 
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 _M48DEF_INC_
 
41
#define _M48DEF_INC_
 
42
 
 
43
 
 
44
#pragma partinc 0
 
45
 
 
46
; ***** SPECIFY DEVICE ***************************************************
 
47
.device ATmega48
 
48
#pragma AVRPART ADMIN PART_NAME ATmega48
 
49
.equ    SIGNATURE_000   = 0x1e
 
50
.equ    SIGNATURE_001   = 0x92
 
51
.equ    SIGNATURE_002   = 0x05
 
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    UDR0    = 0xc6  ; MEMORY MAPPED
 
61
.equ    UBRR0H  = 0xc5  ; MEMORY MAPPED
 
62
.equ    UBRR0L  = 0xc4  ; MEMORY MAPPED
 
63
.equ    UCSR0C  = 0xc2  ; MEMORY MAPPED
 
64
.equ    UCSR0B  = 0xc1  ; MEMORY MAPPED
 
65
.equ    UCSR0A  = 0xc0  ; MEMORY MAPPED
 
66
.equ    TWAMR   = 0xbd  ; MEMORY MAPPED
 
67
.equ    TWCR    = 0xbc  ; MEMORY MAPPED
 
68
.equ    TWDR    = 0xbb  ; MEMORY MAPPED
 
69
.equ    TWAR    = 0xba  ; MEMORY MAPPED
 
70
.equ    TWSR    = 0xb9  ; MEMORY MAPPED
 
71
.equ    TWBR    = 0xb8  ; MEMORY MAPPED
 
72
.equ    ASSR    = 0xb6  ; MEMORY MAPPED
 
73
.equ    PRR     = 0x64  ; MEMORY MAPPED
 
74
.equ    OCR2B   = 0xb4  ; MEMORY MAPPED
 
75
.equ    OCR2A   = 0xb3  ; MEMORY MAPPED
 
76
.equ    TCNT2   = 0xb2  ; MEMORY MAPPED
 
77
.equ    TCCR2B  = 0xb1  ; MEMORY MAPPED
 
78
.equ    TCCR2A  = 0xb0  ; MEMORY MAPPED
 
79
.equ    OCR1BH  = 0x8b  ; MEMORY MAPPED
 
80
.equ    OCR1BL  = 0x8a  ; MEMORY MAPPED
 
81
.equ    OCR1AH  = 0x89  ; MEMORY MAPPED
 
82
.equ    OCR1AL  = 0x88  ; MEMORY MAPPED
 
83
.equ    ICR1H   = 0x87  ; MEMORY MAPPED
 
84
.equ    ICR1L   = 0x86  ; MEMORY MAPPED
 
85
.equ    TCNT1H  = 0x85  ; MEMORY MAPPED
 
86
.equ    TCNT1L  = 0x84  ; MEMORY MAPPED
 
87
.equ    TCCR1C  = 0x82  ; MEMORY MAPPED
 
88
.equ    TCCR1B  = 0x81  ; MEMORY MAPPED
 
89
.equ    TCCR1A  = 0x80  ; MEMORY MAPPED
 
90
.equ    DIDR1   = 0x7f  ; MEMORY MAPPED
 
91
.equ    DIDR0   = 0x7e  ; MEMORY MAPPED
 
92
.equ    ADMUX   = 0x7c  ; MEMORY MAPPED
 
93
.equ    ADCSRB  = 0x7b  ; MEMORY MAPPED
 
94
.equ    ADCSRA  = 0x7a  ; MEMORY MAPPED
 
95
.equ    ADCH    = 0x79  ; MEMORY MAPPED
 
96
.equ    ADCL    = 0x78  ; MEMORY MAPPED
 
97
.equ    TIMSK2  = 0x70  ; MEMORY MAPPED
 
98
.equ    TIMSK1  = 0x6f  ; MEMORY MAPPED
 
99
.equ    TIMSK0  = 0x6e  ; MEMORY MAPPED
 
100
.equ    PCMSK2  = 0x6d  ; MEMORY MAPPED
 
101
.equ    PCMSK1  = 0x6c  ; MEMORY MAPPED
 
102
.equ    PCMSK0  = 0x6b  ; MEMORY MAPPED
 
103
.equ    EICRA   = 0x69  ; MEMORY MAPPED
 
104
.equ    PCICR   = 0x68  ; MEMORY MAPPED
 
105
.equ    OSCCAL  = 0x66  ; MEMORY MAPPED
 
106
.equ    CLKPR   = 0x61  ; MEMORY MAPPED
 
107
.equ    WDTCSR  = 0x60  ; MEMORY MAPPED
 
108
.equ    SREG    = 0x3f
 
109
.equ    SPH     = 0x3e
 
110
.equ    SPL     = 0x3d
 
111
.equ    SPMCSR  = 0x37
 
112
.equ    MCUCR   = 0x35
 
113
.equ    MCUSR   = 0x34
 
114
.equ    SMCR    = 0x33
 
115
.equ    ACSR    = 0x30
 
116
.equ    SPDR    = 0x2e
 
117
.equ    SPSR    = 0x2d
 
118
.equ    SPCR    = 0x2c
 
119
.equ    GPIOR2  = 0x2b
 
120
.equ    GPIOR1  = 0x2a
 
121
.equ    OCR0B   = 0x28
 
122
.equ    OCR0A   = 0x27
 
123
.equ    TCNT0   = 0x26
 
124
.equ    TCCR0B  = 0x25
 
125
.equ    TCCR0A  = 0x24
 
126
.equ    GTCCR   = 0x23
 
127
.equ    EEARH   = 0x22
 
128
.equ    EEARL   = 0x21
 
129
.equ    EEDR    = 0x20
 
130
.equ    EECR    = 0x1f
 
131
.equ    GPIOR0  = 0x1e
 
132
.equ    EIMSK   = 0x1d
 
133
.equ    EIFR    = 0x1c
 
134
.equ    PCIFR   = 0x1b
 
135
.equ    TIFR2   = 0x17
 
136
.equ    TIFR1   = 0x16
 
137
.equ    TIFR0   = 0x15
 
138
.equ    PORTD   = 0x0b
 
139
.equ    DDRD    = 0x0a
 
140
.equ    PIND    = 0x09
 
141
.equ    PORTC   = 0x08
 
142
.equ    DDRC    = 0x07
 
143
.equ    PINC    = 0x06
 
144
.equ    PORTB   = 0x05
 
145
.equ    DDRB    = 0x04
 
146
.equ    PINB    = 0x03
 
147
 
 
148
 
 
149
; ***** BIT DEFINITIONS **************************************************
 
150
 
 
151
; ***** USART0 ***********************
 
152
; UDR0 - USART I/O Data Register
 
153
.equ    UDR0_0  = 0     ; USART I/O Data Register bit 0
 
154
.equ    UDR0_1  = 1     ; USART I/O Data Register bit 1
 
155
.equ    UDR0_2  = 2     ; USART I/O Data Register bit 2
 
156
.equ    UDR0_3  = 3     ; USART I/O Data Register bit 3
 
157
.equ    UDR0_4  = 4     ; USART I/O Data Register bit 4
 
158
.equ    UDR0_5  = 5     ; USART I/O Data Register bit 5
 
159
.equ    UDR0_6  = 6     ; USART I/O Data Register bit 6
 
160
.equ    UDR0_7  = 7     ; USART I/O Data Register bit 7
 
161
 
 
162
; UCSR0A - USART Control and Status Register A
 
163
.equ    MPCM0   = 0     ; Multi-processor Communication Mode
 
164
.equ    U2X0    = 1     ; Double the USART transmission speed
 
165
.equ    UPE0    = 2     ; Parity Error
 
166
.equ    DOR0    = 3     ; Data overRun
 
167
.equ    FE0     = 4     ; Framing Error
 
168
.equ    UDRE0   = 5     ; USART Data Register Empty
 
169
.equ    TXC0    = 6     ; USART Transmitt Complete
 
170
.equ    RXC0    = 7     ; USART Receive Complete
 
171
 
 
172
; UCSR0B - USART Control and Status Register B
 
173
.equ    TXB80   = 0     ; Transmit Data Bit 8
 
174
.equ    RXB80   = 1     ; Receive Data Bit 8
 
175
.equ    UCSZ02  = 2     ; Character Size
 
176
.equ    TXEN0   = 3     ; Transmitter Enable
 
177
.equ    RXEN0   = 4     ; Receiver Enable
 
178
.equ    UDRIE0  = 5     ; USART Data register Empty Interrupt Enable
 
179
.equ    TXCIE0  = 6     ; TX Complete Interrupt Enable
 
180
.equ    RXCIE0  = 7     ; RX Complete Interrupt Enable
 
181
 
 
182
; UCSR0C - USART Control and Status Register C
 
183
.equ    UCPOL0  = 0     ; Clock Polarity
 
184
.equ    UCSZ00  = 1     ; Character Size
 
185
.equ    UCPHA0  = UCSZ00        ; For compatibility
 
186
.equ    UCSZ01  = 2     ; Character Size
 
187
.equ    UDORD0  = UCSZ01        ; For compatibility
 
188
.equ    USBS0   = 3     ; Stop Bit Select
 
189
.equ    UPM00   = 4     ; Parity Mode Bit 0
 
190
.equ    UPM01   = 5     ; Parity Mode Bit 1
 
191
.equ    UMSEL00 = 6     ; USART Mode Select
 
192
.equ    UMSEL0  = UMSEL00       ; For compatibility
 
193
.equ    UMSEL01 = 7     ; USART Mode Select
 
194
.equ    UMSEL1  = UMSEL01       ; For compatibility
 
195
 
 
196
 
 
197
; ***** TWI **************************
 
198
; TWAMR - TWI (Slave) Address Mask Register
 
199
.equ    TWAM0   = 1     ; 
 
200
.equ    TWAMR0  = TWAM0 ; For compatibility
 
201
.equ    TWAM1   = 2     ; 
 
202
.equ    TWAMR1  = TWAM1 ; For compatibility
 
203
.equ    TWAM2   = 3     ; 
 
204
.equ    TWAMR2  = TWAM2 ; For compatibility
 
205
.equ    TWAM3   = 4     ; 
 
206
.equ    TWAMR3  = TWAM3 ; For compatibility
 
207
.equ    TWAM4   = 5     ; 
 
208
.equ    TWAMR4  = TWAM4 ; For compatibility
 
209
.equ    TWAM5   = 6     ; 
 
210
.equ    TWAMR5  = TWAM5 ; For compatibility
 
211
.equ    TWAM6   = 7     ; 
 
212
.equ    TWAMR6  = TWAM6 ; For compatibility
 
213
 
 
214
; TWBR - TWI Bit Rate register
 
215
.equ    TWBR0   = 0     ; 
 
216
.equ    TWBR1   = 1     ; 
 
217
.equ    TWBR2   = 2     ; 
 
218
.equ    TWBR3   = 3     ; 
 
219
.equ    TWBR4   = 4     ; 
 
220
.equ    TWBR5   = 5     ; 
 
221
.equ    TWBR6   = 6     ; 
 
222
.equ    TWBR7   = 7     ; 
 
223
 
 
224
; TWCR - TWI Control Register
 
225
.equ    TWIE    = 0     ; TWI Interrupt Enable
 
226
.equ    TWEN    = 2     ; TWI Enable Bit
 
227
.equ    TWWC    = 3     ; TWI Write Collition Flag
 
228
.equ    TWSTO   = 4     ; TWI Stop Condition Bit
 
229
.equ    TWSTA   = 5     ; TWI Start Condition Bit
 
230
.equ    TWEA    = 6     ; TWI Enable Acknowledge Bit
 
231
.equ    TWINT   = 7     ; TWI Interrupt Flag
 
232
 
 
233
; TWSR - TWI Status Register
 
234
.equ    TWPS0   = 0     ; TWI Prescaler
 
235
.equ    TWPS1   = 1     ; TWI Prescaler
 
236
.equ    TWS3    = 3     ; TWI Status
 
237
.equ    TWS4    = 4     ; TWI Status
 
238
.equ    TWS5    = 5     ; TWI Status
 
239
.equ    TWS6    = 6     ; TWI Status
 
240
.equ    TWS7    = 7     ; TWI Status
 
241
 
 
242
; TWDR - TWI Data register
 
243
.equ    TWD0    = 0     ; TWI Data Register Bit 0
 
244
.equ    TWD1    = 1     ; TWI Data Register Bit 1
 
245
.equ    TWD2    = 2     ; TWI Data Register Bit 2
 
246
.equ    TWD3    = 3     ; TWI Data Register Bit 3
 
247
.equ    TWD4    = 4     ; TWI Data Register Bit 4
 
248
.equ    TWD5    = 5     ; TWI Data Register Bit 5
 
249
.equ    TWD6    = 6     ; TWI Data Register Bit 6
 
250
.equ    TWD7    = 7     ; TWI Data Register Bit 7
 
251
 
 
252
; TWAR - TWI (Slave) Address register
 
253
.equ    TWGCE   = 0     ; TWI General Call Recognition Enable Bit
 
254
.equ    TWA0    = 1     ; TWI (Slave) Address register Bit 0
 
255
.equ    TWA1    = 2     ; TWI (Slave) Address register Bit 1
 
256
.equ    TWA2    = 3     ; TWI (Slave) Address register Bit 2
 
257
.equ    TWA3    = 4     ; TWI (Slave) Address register Bit 3
 
258
.equ    TWA4    = 5     ; TWI (Slave) Address register Bit 4
 
259
.equ    TWA5    = 6     ; TWI (Slave) Address register Bit 5
 
260
.equ    TWA6    = 7     ; TWI (Slave) Address register Bit 6
 
261
 
 
262
 
 
263
; ***** TIMER_COUNTER_1 **************
 
264
; TIMSK1 - Timer/Counter Interrupt Mask Register
 
265
.equ    TOIE1   = 0     ; Timer/Counter1 Overflow Interrupt Enable
 
266
.equ    OCIE1A  = 1     ; Timer/Counter1 Output CompareA Match Interrupt Enable
 
267
.equ    OCIE1B  = 2     ; Timer/Counter1 Output CompareB Match Interrupt Enable
 
268
.equ    ICIE1   = 5     ; Timer/Counter1 Input Capture Interrupt Enable
 
269
 
 
270
; TIFR1 - Timer/Counter Interrupt Flag register
 
271
.equ    TOV1    = 0     ; Timer/Counter1 Overflow Flag
 
272
.equ    OCF1A   = 1     ; Output Compare Flag 1A
 
273
.equ    OCF1B   = 2     ; Output Compare Flag 1B
 
274
.equ    ICF1    = 5     ; Input Capture Flag 1
 
275
 
 
276
; TCCR1A - Timer/Counter1 Control Register A
 
277
.equ    WGM10   = 0     ; Waveform Generation Mode
 
278
.equ    WGM11   = 1     ; Waveform Generation Mode
 
279
.equ    COM1B0  = 4     ; Compare Output Mode 1B, bit 0
 
280
.equ    COM1B1  = 5     ; Compare Output Mode 1B, bit 1
 
281
.equ    COM1A0  = 6     ; Comparet Ouput Mode 1A, bit 0
 
282
.equ    COM1A1  = 7     ; Compare Output Mode 1A, bit 1
 
283
 
 
284
; TCCR1B - Timer/Counter1 Control Register B
 
285
.equ    CS10    = 0     ; Prescaler source of Timer/Counter 1
 
286
.equ    CS11    = 1     ; Prescaler source of Timer/Counter 1
 
287
.equ    CS12    = 2     ; Prescaler source of Timer/Counter 1
 
288
.equ    WGM12   = 3     ; Waveform Generation Mode
 
289
.equ    WGM13   = 4     ; Waveform Generation Mode
 
290
.equ    ICES1   = 6     ; Input Capture 1 Edge Select
 
291
.equ    ICNC1   = 7     ; Input Capture 1 Noise Canceler
 
292
 
 
293
; TCCR1C - Timer/Counter1 Control Register C
 
294
.equ    FOC1B   = 6     ; 
 
295
.equ    FOC1A   = 7     ; 
 
296
 
 
297
; GTCCR - General Timer/Counter Control Register
 
298
.equ    PSRSYNC = 0     ; Prescaler Reset Timer/Counter1 and Timer/Counter0
 
299
.equ    TSM     = 7     ; Timer/Counter Synchronization Mode
 
300
 
 
301
 
 
302
; ***** TIMER_COUNTER_2 **************
 
303
; TIMSK2 - Timer/Counter Interrupt Mask register
 
304
.equ    TOIE2   = 0     ; Timer/Counter2 Overflow Interrupt Enable
 
305
.equ    TOIE2A  = TOIE2 ; For compatibility
 
306
.equ    OCIE2A  = 1     ; Timer/Counter2 Output Compare Match A Interrupt Enable
 
307
.equ    OCIE2B  = 2     ; Timer/Counter2 Output Compare Match B Interrupt Enable
 
308
 
 
309
; TIFR2 - Timer/Counter Interrupt Flag Register
 
310
.equ    TOV2    = 0     ; Timer/Counter2 Overflow Flag
 
311
.equ    OCF2A   = 1     ; Output Compare Flag 2A
 
312
.equ    OCF2B   = 2     ; Output Compare Flag 2B
 
313
 
 
314
; TCCR2A - Timer/Counter2 Control Register A
 
315
.equ    WGM20   = 0     ; Waveform Genration Mode
 
316
.equ    WGM21   = 1     ; Waveform Genration Mode
 
317
.equ    COM2B0  = 4     ; Compare Output Mode bit 0
 
318
.equ    COM2B1  = 5     ; Compare Output Mode bit 1
 
319
.equ    COM2A0  = 6     ; Compare Output Mode bit 1
 
320
.equ    COM2A1  = 7     ; Compare Output Mode bit 1
 
321
 
 
322
; TCCR2B - Timer/Counter2 Control Register B
 
323
.equ    CS20    = 0     ; Clock Select bit 0
 
324
.equ    CS21    = 1     ; Clock Select bit 1
 
325
.equ    CS22    = 2     ; Clock Select bit 2
 
326
.equ    WGM22   = 3     ; Waveform Generation Mode
 
327
.equ    FOC2B   = 6     ; Force Output Compare B
 
328
.equ    FOC2A   = 7     ; Force Output Compare A
 
329
 
 
330
; TCNT2 - Timer/Counter2
 
331
.equ    TCNT2_0 = 0     ; Timer/Counter 2 bit 0
 
332
.equ    TCNT2_1 = 1     ; Timer/Counter 2 bit 1
 
333
.equ    TCNT2_2 = 2     ; Timer/Counter 2 bit 2
 
334
.equ    TCNT2_3 = 3     ; Timer/Counter 2 bit 3
 
335
.equ    TCNT2_4 = 4     ; Timer/Counter 2 bit 4
 
336
.equ    TCNT2_5 = 5     ; Timer/Counter 2 bit 5
 
337
.equ    TCNT2_6 = 6     ; Timer/Counter 2 bit 6
 
338
.equ    TCNT2_7 = 7     ; Timer/Counter 2 bit 7
 
339
 
 
340
; OCR2A - Timer/Counter2 Output Compare Register A
 
341
.equ    OCR2_0  = 0     ; Timer/Counter2 Output Compare Register Bit 0
 
342
.equ    OCR2_1  = 1     ; Timer/Counter2 Output Compare Register Bit 1
 
343
.equ    OCR2_2  = 2     ; Timer/Counter2 Output Compare Register Bit 2
 
344
.equ    OCR2_3  = 3     ; Timer/Counter2 Output Compare Register Bit 3
 
345
.equ    OCR2_4  = 4     ; Timer/Counter2 Output Compare Register Bit 4
 
346
.equ    OCR2_5  = 5     ; Timer/Counter2 Output Compare Register Bit 5
 
347
.equ    OCR2_6  = 6     ; Timer/Counter2 Output Compare Register Bit 6
 
348
.equ    OCR2_7  = 7     ; Timer/Counter2 Output Compare Register Bit 7
 
349
 
 
350
; OCR2B - Timer/Counter2 Output Compare Register B
 
351
;.equ   OCR2_0  = 0     ; Timer/Counter2 Output Compare Register Bit 0
 
352
;.equ   OCR2_1  = 1     ; Timer/Counter2 Output Compare Register Bit 1
 
353
;.equ   OCR2_2  = 2     ; Timer/Counter2 Output Compare Register Bit 2
 
354
;.equ   OCR2_3  = 3     ; Timer/Counter2 Output Compare Register Bit 3
 
355
;.equ   OCR2_4  = 4     ; Timer/Counter2 Output Compare Register Bit 4
 
356
;.equ   OCR2_5  = 5     ; Timer/Counter2 Output Compare Register Bit 5
 
357
;.equ   OCR2_6  = 6     ; Timer/Counter2 Output Compare Register Bit 6
 
358
;.equ   OCR2_7  = 7     ; Timer/Counter2 Output Compare Register Bit 7
 
359
 
 
360
; ASSR - Asynchronous Status Register
 
361
.equ    TCR2BUB = 0     ; Timer/Counter Control Register2 Update Busy
 
362
.equ    TCR2AUB = 1     ; Timer/Counter Control Register2 Update Busy
 
363
.equ    OCR2BUB = 2     ; Output Compare Register 2 Update Busy
 
364
.equ    OCR2AUB = 3     ; Output Compare Register2 Update Busy
 
365
.equ    TCN2UB  = 4     ; Timer/Counter2 Update Busy
 
366
.equ    AS2     = 5     ; Asynchronous Timer/Counter2
 
367
.equ    EXCLK   = 6     ; Enable External Clock Input
 
368
 
 
369
; GTCCR - General Timer Counter Control register
 
370
.equ    PSRASY  = 1     ; Prescaler Reset Timer/Counter2
 
371
.equ    PSR2    = PSRASY        ; For compatibility
 
372
;.equ   TSM     = 7     ; Timer/Counter Synchronization Mode
 
373
 
 
374
 
 
375
; ***** AD_CONVERTER *****************
 
376
; ADMUX - The ADC multiplexer Selection Register
 
377
.equ    MUX0    = 0     ; Analog Channel and Gain Selection Bits
 
378
.equ    MUX1    = 1     ; Analog Channel and Gain Selection Bits
 
379
.equ    MUX2    = 2     ; Analog Channel and Gain Selection Bits
 
380
.equ    MUX3    = 3     ; Analog Channel and Gain Selection Bits
 
381
.equ    ADLAR   = 5     ; Left Adjust Result
 
382
.equ    REFS0   = 6     ; Reference Selection Bit 0
 
383
.equ    REFS1   = 7     ; Reference Selection Bit 1
 
384
 
 
385
; ADCSRA - The ADC Control and Status register A
 
386
.equ    ADPS0   = 0     ; ADC  Prescaler Select Bits
 
387
.equ    ADPS1   = 1     ; ADC  Prescaler Select Bits
 
388
.equ    ADPS2   = 2     ; ADC  Prescaler Select Bits
 
389
.equ    ADIE    = 3     ; ADC Interrupt Enable
 
390
.equ    ADIF    = 4     ; ADC Interrupt Flag
 
391
.equ    ADATE   = 5     ; ADC  Auto Trigger Enable
 
392
.equ    ADSC    = 6     ; ADC Start Conversion
 
393
.equ    ADEN    = 7     ; ADC Enable
 
394
 
 
395
; ADCSRB - The ADC Control and Status register B
 
396
.equ    ADTS0   = 0     ; ADC Auto Trigger Source bit 0
 
397
.equ    ADTS1   = 1     ; ADC Auto Trigger Source bit 1
 
398
.equ    ADTS2   = 2     ; ADC Auto Trigger Source bit 2
 
399
.equ    ACME    = 6     ; 
 
400
 
 
401
; ADCH - ADC Data Register High Byte
 
402
.equ    ADCH0   = 0     ; ADC Data Register High Byte Bit 0
 
403
.equ    ADCH1   = 1     ; ADC Data Register High Byte Bit 1
 
404
.equ    ADCH2   = 2     ; ADC Data Register High Byte Bit 2
 
405
.equ    ADCH3   = 3     ; ADC Data Register High Byte Bit 3
 
406
.equ    ADCH4   = 4     ; ADC Data Register High Byte Bit 4
 
407
.equ    ADCH5   = 5     ; ADC Data Register High Byte Bit 5
 
408
.equ    ADCH6   = 6     ; ADC Data Register High Byte Bit 6
 
409
.equ    ADCH7   = 7     ; ADC Data Register High Byte Bit 7
 
410
 
 
411
; ADCL - ADC Data Register Low Byte
 
412
.equ    ADCL0   = 0     ; ADC Data Register Low Byte Bit 0
 
413
.equ    ADCL1   = 1     ; ADC Data Register Low Byte Bit 1
 
414
.equ    ADCL2   = 2     ; ADC Data Register Low Byte Bit 2
 
415
.equ    ADCL3   = 3     ; ADC Data Register Low Byte Bit 3
 
416
.equ    ADCL4   = 4     ; ADC Data Register Low Byte Bit 4
 
417
.equ    ADCL5   = 5     ; ADC Data Register Low Byte Bit 5
 
418
.equ    ADCL6   = 6     ; ADC Data Register Low Byte Bit 6
 
419
.equ    ADCL7   = 7     ; ADC Data Register Low Byte Bit 7
 
420
 
 
421
; DIDR0 - Digital Input Disable Register
 
422
.equ    ADC0D   = 0     ; 
 
423
.equ    ADC1D   = 1     ; 
 
424
.equ    ADC2D   = 2     ; 
 
425
.equ    ADC3D   = 3     ; 
 
426
.equ    ADC4D   = 4     ; 
 
427
.equ    ADC5D   = 5     ; 
 
428
 
 
429
 
 
430
; ***** ANALOG_COMPARATOR ************
 
431
; ACSR - Analog Comparator Control And Status Register
 
432
.equ    ACIS0   = 0     ; Analog Comparator Interrupt Mode Select bit 0
 
433
.equ    ACIS1   = 1     ; Analog Comparator Interrupt Mode Select bit 1
 
434
.equ    ACIC    = 2     ; 
 
435
.equ    ACIE    = 3     ; Analog Comparator Interrupt Enable
 
436
.equ    ACI     = 4     ; Analog Comparator Interrupt Flag
 
437
.equ    ACO     = 5     ; Analog Compare Output
 
438
.equ    ACBG    = 6     ; Analog Comparator Bandgap Select
 
439
.equ    ACD     = 7     ; Analog Comparator Disable
 
440
 
 
441
; DIDR1 - Digital Input Disable Register 1
 
442
.equ    AIN0D   = 0     ; AIN0 Digital Input Disable
 
443
.equ    AIN1D   = 1     ; AIN1 Digital Input Disable
 
444
 
 
445
 
 
446
; ***** PORTB ************************
 
447
; PORTB - Port B Data Register
 
448
.equ    PORTB0  = 0     ; Port B Data Register bit 0
 
449
.equ    PB0     = 0     ; For compatibility
 
450
.equ    PORTB1  = 1     ; Port B Data Register bit 1
 
451
.equ    PB1     = 1     ; For compatibility
 
452
.equ    PORTB2  = 2     ; Port B Data Register bit 2
 
453
.equ    PB2     = 2     ; For compatibility
 
454
.equ    PORTB3  = 3     ; Port B Data Register bit 3
 
455
.equ    PB3     = 3     ; For compatibility
 
456
.equ    PORTB4  = 4     ; Port B Data Register bit 4
 
457
.equ    PB4     = 4     ; For compatibility
 
458
.equ    PORTB5  = 5     ; Port B Data Register bit 5
 
459
.equ    PB5     = 5     ; For compatibility
 
460
.equ    PORTB6  = 6     ; Port B Data Register bit 6
 
461
.equ    PB6     = 6     ; For compatibility
 
462
.equ    PORTB7  = 7     ; Port B Data Register bit 7
 
463
.equ    PB7     = 7     ; For compatibility
 
464
 
 
465
; DDRB - Port B Data Direction Register
 
466
.equ    DDB0    = 0     ; Port B Data Direction Register bit 0
 
467
.equ    DDB1    = 1     ; Port B Data Direction Register bit 1
 
468
.equ    DDB2    = 2     ; Port B Data Direction Register bit 2
 
469
.equ    DDB3    = 3     ; Port B Data Direction Register bit 3
 
470
.equ    DDB4    = 4     ; Port B Data Direction Register bit 4
 
471
.equ    DDB5    = 5     ; Port B Data Direction Register bit 5
 
472
.equ    DDB6    = 6     ; Port B Data Direction Register bit 6
 
473
.equ    DDB7    = 7     ; Port B Data Direction Register bit 7
 
474
 
 
475
; PINB - Port B Input Pins
 
476
.equ    PINB0   = 0     ; Port B Input Pins bit 0
 
477
.equ    PINB1   = 1     ; Port B Input Pins bit 1
 
478
.equ    PINB2   = 2     ; Port B Input Pins bit 2
 
479
.equ    PINB3   = 3     ; Port B Input Pins bit 3
 
480
.equ    PINB4   = 4     ; Port B Input Pins bit 4
 
481
.equ    PINB5   = 5     ; Port B Input Pins bit 5
 
482
.equ    PINB6   = 6     ; Port B Input Pins bit 6
 
483
.equ    PINB7   = 7     ; Port B Input Pins bit 7
 
484
 
 
485
 
 
486
; ***** PORTC ************************
 
487
; PORTC - Port C Data Register
 
488
.equ    PORTC0  = 0     ; Port C Data Register bit 0
 
489
.equ    PC0     = 0     ; For compatibility
 
490
.equ    PORTC1  = 1     ; Port C Data Register bit 1
 
491
.equ    PC1     = 1     ; For compatibility
 
492
.equ    PORTC2  = 2     ; Port C Data Register bit 2
 
493
.equ    PC2     = 2     ; For compatibility
 
494
.equ    PORTC3  = 3     ; Port C Data Register bit 3
 
495
.equ    PC3     = 3     ; For compatibility
 
496
.equ    PORTC4  = 4     ; Port C Data Register bit 4
 
497
.equ    PC4     = 4     ; For compatibility
 
498
.equ    PORTC5  = 5     ; Port C Data Register bit 5
 
499
.equ    PC5     = 5     ; For compatibility
 
500
.equ    PORTC6  = 6     ; Port C Data Register bit 6
 
501
.equ    PC6     = 6     ; For compatibility
 
502
 
 
503
; DDRC - Port C Data Direction Register
 
504
.equ    DDC0    = 0     ; Port C Data Direction Register bit 0
 
505
.equ    DDC1    = 1     ; Port C Data Direction Register bit 1
 
506
.equ    DDC2    = 2     ; Port C Data Direction Register bit 2
 
507
.equ    DDC3    = 3     ; Port C Data Direction Register bit 3
 
508
.equ    DDC4    = 4     ; Port C Data Direction Register bit 4
 
509
.equ    DDC5    = 5     ; Port C Data Direction Register bit 5
 
510
.equ    DDC6    = 6     ; Port C Data Direction Register bit 6
 
511
 
 
512
; PINC - Port C Input Pins
 
513
.equ    PINC0   = 0     ; Port C Input Pins bit 0
 
514
.equ    PINC1   = 1     ; Port C Input Pins bit 1
 
515
.equ    PINC2   = 2     ; Port C Input Pins bit 2
 
516
.equ    PINC3   = 3     ; Port C Input Pins bit 3
 
517
.equ    PINC4   = 4     ; Port C Input Pins bit 4
 
518
.equ    PINC5   = 5     ; Port C Input Pins bit 5
 
519
.equ    PINC6   = 6     ; Port C Input Pins bit 6
 
520
 
 
521
 
 
522
; ***** PORTD ************************
 
523
; PORTD - Port D Data Register
 
524
.equ    PORTD0  = 0     ; Port D Data Register bit 0
 
525
.equ    PD0     = 0     ; For compatibility
 
526
.equ    PORTD1  = 1     ; Port D Data Register bit 1
 
527
.equ    PD1     = 1     ; For compatibility
 
528
.equ    PORTD2  = 2     ; Port D Data Register bit 2
 
529
.equ    PD2     = 2     ; For compatibility
 
530
.equ    PORTD3  = 3     ; Port D Data Register bit 3
 
531
.equ    PD3     = 3     ; For compatibility
 
532
.equ    PORTD4  = 4     ; Port D Data Register bit 4
 
533
.equ    PD4     = 4     ; For compatibility
 
534
.equ    PORTD5  = 5     ; Port D Data Register bit 5
 
535
.equ    PD5     = 5     ; For compatibility
 
536
.equ    PORTD6  = 6     ; Port D Data Register bit 6
 
537
.equ    PD6     = 6     ; For compatibility
 
538
.equ    PORTD7  = 7     ; Port D Data Register bit 7
 
539
.equ    PD7     = 7     ; For compatibility
 
540
 
 
541
; DDRD - Port D Data Direction Register
 
542
.equ    DDD0    = 0     ; Port D Data Direction Register bit 0
 
543
.equ    DDD1    = 1     ; Port D Data Direction Register bit 1
 
544
.equ    DDD2    = 2     ; Port D Data Direction Register bit 2
 
545
.equ    DDD3    = 3     ; Port D Data Direction Register bit 3
 
546
.equ    DDD4    = 4     ; Port D Data Direction Register bit 4
 
547
.equ    DDD5    = 5     ; Port D Data Direction Register bit 5
 
548
.equ    DDD6    = 6     ; Port D Data Direction Register bit 6
 
549
.equ    DDD7    = 7     ; Port D Data Direction Register bit 7
 
550
 
 
551
; PIND - Port D Input Pins
 
552
.equ    PIND0   = 0     ; Port D Input Pins bit 0
 
553
.equ    PIND1   = 1     ; Port D Input Pins bit 1
 
554
.equ    PIND2   = 2     ; Port D Input Pins bit 2
 
555
.equ    PIND3   = 3     ; Port D Input Pins bit 3
 
556
.equ    PIND4   = 4     ; Port D Input Pins bit 4
 
557
.equ    PIND5   = 5     ; Port D Input Pins bit 5
 
558
.equ    PIND6   = 6     ; Port D Input Pins bit 6
 
559
.equ    PIND7   = 7     ; Port D Input Pins bit 7
 
560
 
 
561
 
 
562
; ***** TIMER_COUNTER_0 **************
 
563
; TIMSK0 - Timer/Counter0 Interrupt Mask Register
 
564
.equ    TOIE0   = 0     ; Timer/Counter0 Overflow Interrupt Enable
 
565
.equ    OCIE0A  = 1     ; Timer/Counter0 Output Compare Match A Interrupt Enable
 
566
.equ    OCIE0B  = 2     ; Timer/Counter0 Output Compare Match B Interrupt Enable
 
567
 
 
568
; TIFR0 - Timer/Counter0 Interrupt Flag register
 
569
.equ    TOV0    = 0     ; Timer/Counter0 Overflow Flag
 
570
.equ    OCF0A   = 1     ; Timer/Counter0 Output Compare Flag 0A
 
571
.equ    OCF0B   = 2     ; Timer/Counter0 Output Compare Flag 0B
 
572
 
 
573
; TCCR0A - Timer/Counter  Control Register A
 
574
.equ    WGM00   = 0     ; Waveform Generation Mode
 
575
.equ    WGM01   = 1     ; Waveform Generation Mode
 
576
.equ    COM0B0  = 4     ; Compare Output Mode, Fast PWm
 
577
.equ    COM0B1  = 5     ; Compare Output Mode, Fast PWm
 
578
.equ    COM0A0  = 6     ; Compare Output Mode, Phase Correct PWM Mode
 
579
.equ    COM0A1  = 7     ; Compare Output Mode, Phase Correct PWM Mode
 
580
 
 
581
; TCCR0B - Timer/Counter Control Register B
 
582
.equ    CS00    = 0     ; Clock Select
 
583
.equ    CS01    = 1     ; Clock Select
 
584
.equ    CS02    = 2     ; Clock Select
 
585
.equ    WGM02   = 3     ; 
 
586
.equ    FOC0B   = 6     ; Force Output Compare B
 
587
.equ    FOC0A   = 7     ; Force Output Compare A
 
588
 
 
589
; TCNT0 - Timer/Counter0
 
590
.equ    TCNT0_0 = 0     ; 
 
591
.equ    TCNT0_1 = 1     ; 
 
592
.equ    TCNT0_2 = 2     ; 
 
593
.equ    TCNT0_3 = 3     ; 
 
594
.equ    TCNT0_4 = 4     ; 
 
595
.equ    TCNT0_5 = 5     ; 
 
596
.equ    TCNT0_6 = 6     ; 
 
597
.equ    TCNT0_7 = 7     ; 
 
598
 
 
599
; OCR0A - Timer/Counter0 Output Compare Register
 
600
.equ    OCROA_0 = 0     ; 
 
601
.equ    OCROA_1 = 1     ; 
 
602
.equ    OCROA_2 = 2     ; 
 
603
.equ    OCROA_3 = 3     ; 
 
604
.equ    OCROA_4 = 4     ; 
 
605
.equ    OCROA_5 = 5     ; 
 
606
.equ    OCROA_6 = 6     ; 
 
607
.equ    OCROA_7 = 7     ; 
 
608
 
 
609
; OCR0B - Timer/Counter0 Output Compare Register
 
610
.equ    OCR0B_0 = 0     ; 
 
611
.equ    OCR0B_1 = 1     ; 
 
612
.equ    OCR0B_2 = 2     ; 
 
613
.equ    OCR0B_3 = 3     ; 
 
614
.equ    OCR0B_4 = 4     ; 
 
615
.equ    OCR0B_5 = 5     ; 
 
616
.equ    OCR0B_6 = 6     ; 
 
617
.equ    OCR0B_7 = 7     ; 
 
618
 
 
619
; GTCCR - General Timer/Counter Control Register
 
620
;.equ   PSRSYNC = 0     ; Prescaler Reset Timer/Counter1 and Timer/Counter0
 
621
.equ    PSR10   = PSRSYNC       ; For compatibility
 
622
;.equ   TSM     = 7     ; Timer/Counter Synchronization Mode
 
623
 
 
624
 
 
625
; ***** EXTERNAL_INTERRUPT ***********
 
626
; EICRA - External Interrupt Control Register
 
627
.equ    ISC00   = 0     ; External Interrupt Sense Control 0 Bit 0
 
628
.equ    ISC01   = 1     ; External Interrupt Sense Control 0 Bit 1
 
629
.equ    ISC10   = 2     ; External Interrupt Sense Control 1 Bit 0
 
630
.equ    ISC11   = 3     ; External Interrupt Sense Control 1 Bit 1
 
631
 
 
632
; EIMSK - External Interrupt Mask Register
 
633
.equ    INT0    = 0     ; External Interrupt Request 0 Enable
 
634
.equ    INT1    = 1     ; External Interrupt Request 1 Enable
 
635
 
 
636
; EIFR - External Interrupt Flag Register
 
637
.equ    INTF0   = 0     ; External Interrupt Flag 0
 
638
.equ    INTF1   = 1     ; External Interrupt Flag 1
 
639
 
 
640
; PCMSK2 - Pin Change Mask Register 2
 
641
.equ    PCINT16 = 0     ; Pin Change Enable Mask 16
 
642
.equ    PCINT17 = 1     ; Pin Change Enable Mask 17
 
643
.equ    PCINT18 = 2     ; Pin Change Enable Mask 18
 
644
.equ    PCINT19 = 3     ; Pin Change Enable Mask 19
 
645
.equ    PCINT20 = 4     ; Pin Change Enable Mask 20
 
646
.equ    PCINT21 = 5     ; Pin Change Enable Mask 21
 
647
.equ    PCINT22 = 6     ; Pin Change Enable Mask 22
 
648
.equ    PCINT23 = 7     ; Pin Change Enable Mask 23
 
649
 
 
650
; PCMSK1 - Pin Change Mask Register 1
 
651
.equ    PCINT8  = 0     ; Pin Change Enable Mask 8
 
652
.equ    PCINT9  = 1     ; Pin Change Enable Mask 9
 
653
.equ    PCINT10 = 2     ; Pin Change Enable Mask 10
 
654
.equ    PCINT11 = 3     ; Pin Change Enable Mask 11
 
655
.equ    PCINT12 = 4     ; Pin Change Enable Mask 12
 
656
.equ    PCINT13 = 5     ; Pin Change Enable Mask 13
 
657
.equ    PCINT14 = 6     ; Pin Change Enable Mask 14
 
658
 
 
659
; PCMSK0 - Pin Change Mask Register 0
 
660
.equ    PCINT0  = 0     ; Pin Change Enable Mask 0
 
661
.equ    PCINT1  = 1     ; Pin Change Enable Mask 1
 
662
.equ    PCINT2  = 2     ; Pin Change Enable Mask 2
 
663
.equ    PCINT3  = 3     ; Pin Change Enable Mask 3
 
664
.equ    PCINT4  = 4     ; Pin Change Enable Mask 4
 
665
.equ    PCINT5  = 5     ; Pin Change Enable Mask 5
 
666
.equ    PCINT6  = 6     ; Pin Change Enable Mask 6
 
667
.equ    PCINT7  = 7     ; Pin Change Enable Mask 7
 
668
 
 
669
; PCIFR - Pin Change Interrupt Flag Register
 
670
.equ    PCIF0   = 0     ; Pin Change Interrupt Flag 0
 
671
.equ    PCIF1   = 1     ; Pin Change Interrupt Flag 1
 
672
.equ    PCIF2   = 2     ; Pin Change Interrupt Flag 2
 
673
 
 
674
 
 
675
; ***** SPI **************************
 
676
; SPDR - SPI Data Register
 
677
.equ    SPDR0   = 0     ; SPI Data Register bit 0
 
678
.equ    SPDR1   = 1     ; SPI Data Register bit 1
 
679
.equ    SPDR2   = 2     ; SPI Data Register bit 2
 
680
.equ    SPDR3   = 3     ; SPI Data Register bit 3
 
681
.equ    SPDR4   = 4     ; SPI Data Register bit 4
 
682
.equ    SPDR5   = 5     ; SPI Data Register bit 5
 
683
.equ    SPDR6   = 6     ; SPI Data Register bit 6
 
684
.equ    SPDR7   = 7     ; SPI Data Register bit 7
 
685
 
 
686
; SPSR - SPI Status Register
 
687
.equ    SPI2X   = 0     ; Double SPI Speed Bit
 
688
.equ    WCOL    = 6     ; Write Collision Flag
 
689
.equ    SPIF    = 7     ; SPI Interrupt Flag
 
690
 
 
691
; SPCR - SPI Control Register
 
692
.equ    SPR0    = 0     ; SPI Clock Rate Select 0
 
693
.equ    SPR1    = 1     ; SPI Clock Rate Select 1
 
694
.equ    CPHA    = 2     ; Clock Phase
 
695
.equ    CPOL    = 3     ; Clock polarity
 
696
.equ    MSTR    = 4     ; Master/Slave Select
 
697
.equ    DORD    = 5     ; Data Order
 
698
.equ    SPE     = 6     ; SPI Enable
 
699
.equ    SPIE    = 7     ; SPI Interrupt Enable
 
700
 
 
701
 
 
702
; ***** CPU **************************
 
703
; SREG - Status Register
 
704
.equ    SREG_C  = 0     ; Carry Flag
 
705
.equ    SREG_Z  = 1     ; Zero Flag
 
706
.equ    SREG_N  = 2     ; Negative Flag
 
707
.equ    SREG_V  = 3     ; Two's Complement Overflow Flag
 
708
.equ    SREG_S  = 4     ; Sign Bit
 
709
.equ    SREG_H  = 5     ; Half Carry Flag
 
710
.equ    SREG_T  = 6     ; Bit Copy Storage
 
711
.equ    SREG_I  = 7     ; Global Interrupt Enable
 
712
 
 
713
; OSCCAL - Oscillator Calibration Value
 
714
.equ    CAL0    = 0     ; Oscillator Calibration Value Bit0
 
715
.equ    CAL1    = 1     ; Oscillator Calibration Value Bit1
 
716
.equ    CAL2    = 2     ; Oscillator Calibration Value Bit2
 
717
.equ    CAL3    = 3     ; Oscillator Calibration Value Bit3
 
718
.equ    CAL4    = 4     ; Oscillator Calibration Value Bit4
 
719
.equ    CAL5    = 5     ; Oscillator Calibration Value Bit5
 
720
.equ    CAL6    = 6     ; Oscillator Calibration Value Bit6
 
721
.equ    CAL7    = 7     ; Oscillator Calibration Value Bit7
 
722
 
 
723
; CLKPR - Clock Prescale Register
 
724
.equ    CLKPS0  = 0     ; Clock Prescaler Select Bit 0
 
725
.equ    CLKPS1  = 1     ; Clock Prescaler Select Bit 1
 
726
.equ    CLKPS2  = 2     ; Clock Prescaler Select Bit 2
 
727
.equ    CLKPS3  = 3     ; Clock Prescaler Select Bit 3
 
728
.equ    CLKPCE  = 7     ; Clock Prescaler Change Enable
 
729
 
 
730
; SPMCSR - Store Program Memory Control Register
 
731
.equ    SELFPRGEN       = 0     ; Self Programming Enable
 
732
.equ    PGERS   = 1     ; Page Erase
 
733
.equ    PGWRT   = 2     ; Page Write
 
734
.equ    BLBSET  = 3     ; Boot Lock Bit Set
 
735
.equ    RWWSRE  = 4     ; Read-While-Write section read enable
 
736
.equ    RWWSB   = 6     ; Read-While-Write Section Busy
 
737
.equ    SPMIE   = 7     ; SPM Interrupt Enable
 
738
 
 
739
; MCUCR - MCU Control Register
 
740
.equ    IVCE    = 0     ; 
 
741
.equ    PUD     = 4     ; 
 
742
 
 
743
; MCUSR - MCU Status Register
 
744
.equ    PORF    = 0     ; Power-on reset flag
 
745
.equ    EXTRF   = 1     ; External Reset Flag
 
746
.equ    EXTREF  = EXTRF ; For compatibility
 
747
.equ    BORF    = 2     ; Brown-out Reset Flag
 
748
.equ    WDRF    = 3     ; Watchdog Reset Flag
 
749
 
 
750
; SMCR - 
 
751
.equ    SE      = 0     ; 
 
752
.equ    SM0     = 1     ; 
 
753
.equ    SM1     = 2     ; 
 
754
.equ    SM2     = 3     ; 
 
755
 
 
756
; GPIOR2 - General Purpose I/O Register 2
 
757
.equ    GPIOR20 = 0     ; 
 
758
.equ    GPIOR21 = 1     ; 
 
759
.equ    GPIOR22 = 2     ; 
 
760
.equ    GPIOR23 = 3     ; 
 
761
.equ    GPIOR24 = 4     ; 
 
762
.equ    GPIOR25 = 5     ; 
 
763
.equ    GPIOR26 = 6     ; 
 
764
.equ    GPIOR27 = 7     ; 
 
765
 
 
766
; GPIOR1 - General Purpose I/O Register 1
 
767
.equ    GPIOR10 = 0     ; 
 
768
.equ    GPIOR11 = 1     ; 
 
769
.equ    GPIOR12 = 2     ; 
 
770
.equ    GPIOR13 = 3     ; 
 
771
.equ    GPIOR14 = 4     ; 
 
772
.equ    GPIOR15 = 5     ; 
 
773
.equ    GPIOR16 = 6     ; 
 
774
.equ    GPIOR17 = 7     ; 
 
775
 
 
776
; GPIOR0 - General Purpose I/O Register 0
 
777
.equ    GPIOR00 = 0     ; 
 
778
.equ    GPIOR01 = 1     ; 
 
779
.equ    GPIOR02 = 2     ; 
 
780
.equ    GPIOR03 = 3     ; 
 
781
.equ    GPIOR04 = 4     ; 
 
782
.equ    GPIOR05 = 5     ; 
 
783
.equ    GPIOR06 = 6     ; 
 
784
.equ    GPIOR07 = 7     ; 
 
785
 
 
786
; PRR - Power Reduction Register
 
787
.equ    PRADC   = 0     ; Power Reduction ADC
 
788
.equ    PRUSART0        = 1     ; Power Reduction USART
 
789
.equ    PRSPI   = 2     ; Power Reduction Serial Peripheral Interface
 
790
.equ    PRTIM1  = 3     ; Power Reduction Timer/Counter1
 
791
.equ    PRTIM0  = 5     ; Power Reduction Timer/Counter0
 
792
.equ    PRTIM2  = 6     ; Power Reduction Timer/Counter2
 
793
.equ    PRTWI   = 7     ; Power Reduction TWI
 
794
 
 
795
; PCICR - 
 
796
.equ    PCIE0   = 0     ; 
 
797
.equ    PCIE1   = 1     ; 
 
798
.equ    PCIE2   = 2     ; 
 
799
 
 
800
 
 
801
; ***** WATCHDOG *********************
 
802
; WDTCSR - Watchdog Timer Control Register
 
803
.equ    WDP0    = 0     ; Watch Dog Timer Prescaler bit 0
 
804
.equ    WDP1    = 1     ; Watch Dog Timer Prescaler bit 1
 
805
.equ    WDP2    = 2     ; Watch Dog Timer Prescaler bit 2
 
806
.equ    WDE     = 3     ; Watch Dog Enable
 
807
.equ    WDCE    = 4     ; Watchdog Change Enable
 
808
.equ    WDP3    = 5     ; Watchdog Timer Prescaler Bit 3
 
809
.equ    WDIE    = 6     ; Watchdog Timeout Interrupt Enable
 
810
.equ    WDIF    = 7     ; Watchdog Timeout Interrupt Flag
 
811
 
 
812
 
 
813
; ***** EEPROM ***********************
 
814
; EEARL - EEPROM Address Register Low Byte
 
815
.equ    EEAR0   = 0     ; EEPROM Read/Write Access Bit 0
 
816
.equ    EEAR1   = 1     ; EEPROM Read/Write Access Bit 1
 
817
.equ    EEAR2   = 2     ; EEPROM Read/Write Access Bit 2
 
818
.equ    EEAR3   = 3     ; EEPROM Read/Write Access Bit 3
 
819
.equ    EEAR4   = 4     ; EEPROM Read/Write Access Bit 4
 
820
.equ    EEAR5   = 5     ; EEPROM Read/Write Access Bit 5
 
821
.equ    EEAR6   = 6     ; EEPROM Read/Write Access Bit 6
 
822
.equ    EEAR7   = 7     ; EEPROM Read/Write Access Bit 7
 
823
 
 
824
; EEDR - EEPROM Data Register
 
825
.equ    EEDR0   = 0     ; EEPROM Data Register bit 0
 
826
.equ    EEDR1   = 1     ; EEPROM Data Register bit 1
 
827
.equ    EEDR2   = 2     ; EEPROM Data Register bit 2
 
828
.equ    EEDR3   = 3     ; EEPROM Data Register bit 3
 
829
.equ    EEDR4   = 4     ; EEPROM Data Register bit 4
 
830
.equ    EEDR5   = 5     ; EEPROM Data Register bit 5
 
831
.equ    EEDR6   = 6     ; EEPROM Data Register bit 6
 
832
.equ    EEDR7   = 7     ; EEPROM Data Register bit 7
 
833
 
 
834
; EECR - EEPROM Control Register
 
835
.equ    EERE    = 0     ; EEPROM Read Enable
 
836
.equ    EEPE    = 1     ; EEPROM Write Enable
 
837
.equ    EEWE    = EEPE  ; For compatibility
 
838
.equ    EEMPE   = 2     ; EEPROM Master Write Enable
 
839
.equ    EEMWE   = EEMPE ; For compatibility
 
840
.equ    EERIE   = 3     ; EEPROM Ready Interrupt Enable
 
841
.equ    EEPM0   = 4     ; EEPROM Programming Mode Bit 0
 
842
.equ    EEPM1   = 5     ; EEPROM Programming Mode Bit 1
 
843
 
 
844
 
 
845
 
 
846
; ***** LOCKSBITS ********************************************************
 
847
.equ    LB1     = 0     ; Lock bit
 
848
.equ    LB2     = 1     ; Lock bit
 
849
.equ    BLB01   = 2     ; Boot Lock bit
 
850
.equ    BLB02   = 3     ; Boot Lock bit
 
851
.equ    BLB11   = 4     ; Boot lock bit
 
852
.equ    BLB12   = 5     ; Boot lock bit
 
853
 
 
854
 
 
855
; ***** FUSES ************************************************************
 
856
; LOW fuse bits
 
857
.equ    CKSEL0  = 0     ; Select Clock Source
 
858
.equ    CKSEL1  = 1     ; Select Clock Source
 
859
.equ    CKSEL2  = 2     ; Select Clock Source
 
860
.equ    CKSEL3  = 3     ; Select Clock Source
 
861
.equ    SUT0    = 4     ; Select start-up time
 
862
.equ    SUT1    = 5     ; Select start-up time
 
863
.equ    CKOUT   = 6     ; Clock output
 
864
.equ    CKDIV8  = 7     ; Divide clock by 8
 
865
 
 
866
; HIGH fuse bits
 
867
.equ    BODLEVEL0       = 0     ; Brown-out Detector trigger level
 
868
.equ    BODLEVEL1       = 1     ; Brown-out Detector trigger level
 
869
.equ    BODLEVEL2       = 2     ; Brown-out Detector trigger level
 
870
.equ    EESAVE  = 3     ; EEPROM memory is preserved through chip erase
 
871
.equ    WDTON   = 4     ; Watchdog Timer Always On
 
872
.equ    SPIEN   = 5     ; Enable Serial programming and Data Downloading
 
873
.equ    DWEN    = 6     ; debugWIRE Enable
 
874
.equ    RSTDISBL        = 7     ; External reset disable
 
875
 
 
876
; EXTENDED fuse bits
 
877
;.equ   SELFPRGEN       = 0     ; Self Programming Enable
 
878
 
 
879
 
 
880
 
 
881
; ***** CPU REGISTER DEFINITIONS *****************************************
 
882
.def    XH      = r27
 
883
.def    XL      = r26
 
884
.def    YH      = r29
 
885
.def    YL      = r28
 
886
.def    ZH      = r31
 
887
.def    ZL      = r30
 
888
 
 
889
 
 
890
 
 
891
; ***** DATA MEMORY DECLARATIONS *****************************************
 
892
.equ    FLASHEND        = 0x07ff        ; Note: Word address
 
893
.equ    IOEND   = 0x00ff
 
894
.equ    SRAM_START      = 0x0100
 
895
.equ    SRAM_SIZE       = 512
 
896
.equ    RAMEND  = 0x02ff
 
897
.equ    XRAMEND = 0x0000
 
898
.equ    E2END   = 0x00ff
 
899
.equ    EEPROMEND       = 0x00ff
 
900
.equ    EEADRBITS       = 8
 
901
#pragma AVRPART MEMORY PROG_FLASH 4096
 
902
#pragma AVRPART MEMORY EEPROM 256
 
903
#pragma AVRPART MEMORY INT_SRAM SIZE 512
 
904
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100
 
905
 
 
906
 
 
907
 
 
908
; ***** BOOTLOADER DECLARATIONS ******************************************
 
909
.equ    NRWW_START_ADDR = 0x0
 
910
.equ    NRWW_STOP_ADDR  = 0x7ff
 
911
.equ    RWW_START_ADDR  = 0x0
 
912
.equ    RWW_STOP_ADDR   = 0x0
 
913
.equ    PAGESIZE        = 32
 
914
 
 
915
 
 
916
 
 
917
; ***** INTERRUPT VECTORS ************************************************
 
918
.equ    INT0addr        = 0x0001        ; External Interrupt Request 0
 
919
.equ    INT1addr        = 0x0002        ; External Interrupt Request 1
 
920
.equ    PCI0addr        = 0x0003        ; Pin Change Interrupt Request 0
 
921
.equ    PCI1addr        = 0x0004        ; Pin Change Interrupt Request 0
 
922
.equ    PCI2addr        = 0x0005        ; Pin Change Interrupt Request 1
 
923
.equ    WDTaddr = 0x0006        ; Watchdog Time-out Interrupt
 
924
.equ    OC2Aaddr        = 0x0007        ; Timer/Counter2 Compare Match A
 
925
.equ    OC2Baddr        = 0x0008        ; Timer/Counter2 Compare Match A
 
926
.equ    OVF2addr        = 0x0009        ; Timer/Counter2 Overflow
 
927
.equ    ICP1addr        = 0x000a        ; Timer/Counter1 Capture Event
 
928
.equ    OC1Aaddr        = 0x000b        ; Timer/Counter1 Compare Match A
 
929
.equ    OC1Baddr        = 0x000c        ; Timer/Counter1 Compare Match B
 
930
.equ    OVF1addr        = 0x000d        ; Timer/Counter1 Overflow
 
931
.equ    OC0Aaddr        = 0x000e        ; TimerCounter0 Compare Match A
 
932
.equ    OC0Baddr        = 0x001f        ; TimerCounter0 Compare Match B
 
933
.equ    OVF0addr        = 0x0010        ; Timer/Couner0 Overflow
 
934
.equ    SPIaddr = 0x0011        ; SPI Serial Transfer Complete
 
935
.equ    URXCaddr        = 0x0012        ; USART Rx Complete
 
936
.equ    UDREaddr        = 0x0013        ; USART, Data Register Empty
 
937
.equ    UTXCaddr        = 0x0014        ; USART Tx Complete
 
938
.equ    ADCCaddr        = 0x0015        ; ADC Conversion Complete
 
939
.equ    ERDYaddr        = 0x0016        ; EEPROM Ready
 
940
.equ    ACIaddr = 0x0017        ; Analog Comparator
 
941
.equ    TWIaddr = 0x0018        ; Two-wire Serial Interface
 
942
.equ    SPMRaddr        = 0x0019        ; Store Program Memory Read
 
943
 
 
944
.equ    INT_VECTORS_SIZE        = 26    ; size in words
 
945
 
 
946
#endif  /* _M48DEF_INC_ */
 
947
 
 
948
; ***** END OF FILE ******************************************************