ATtiny15.atdf 30.4 KB
Newer Older
Petter Breedveld's avatar
Petter Breedveld committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
<?xml version="1.0" encoding="UTF-8"?>
<avr-tools-device-file xmlns:xalan="http://xml.apache.org/xalan" xmlns:NumHelper="NumHelper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schema-version="0.3" xsi:noNamespaceSchemaLocation="../../schema/avr_tools_device_file.xsd">
  <variants>
    <variant tempmin="0" tempmax="0" speedmax="0" package="" ordercode="standard" vccmin="2.7" vccmax="5.5"/>
  </variants>
  <devices>
    <device name="ATtiny15" architecture="AVR8" family="tinyAVR">
      <address-spaces>
        <address-space endianness="little" name="prog" id="prog" start="0x0000" size="0x0400">
          <memory-segment start="0x0000" size="0x0400" type="flash" rw="RW" exec="1" name="FLASH" pagesize="0x00"/>
        </address-space>
        <address-space endianness="little" name="signatures" id="signatures" start="0" size="3">
          <memory-segment start="0" size="3" type="signatures" rw="R" exec="0" name="SIGNATURES"/>
        </address-space>
        <address-space endianness="little" name="fuses" id="fuses" start="0" size="0x0001">
          <memory-segment start="0" size="0x0001" type="fuses" rw="RW" exec="0" name="FUSES"/>
        </address-space>
        <address-space endianness="little" name="lockbits" id="lockbits" start="0" size="0x0001">
          <memory-segment start="0" size="0x0001" type="lockbits" rw="RW" exec="0" name="LOCKBITS"/>
        </address-space>
        <address-space endianness="little" name="data" id="data" start="0x0000" size="0x0060">
          <memory-segment external="false" type="regs" size="0x0020" start="0x0000" name="REGISTERS"/>
          <memory-segment name="MAPPED_IO" start="0x0020" size="0x0040" type="io" external="false"/>
        </address-space>
        <address-space endianness="little" name="eeprom" id="eeprom" start="0x0000" size="0x0040">
          <memory-segment start="0x0000" size="0x0040" type="eeprom" rw="RW" exec="0" name="EEPROM" pagesize="0x02"/>
        </address-space>
        <address-space size="0x40" start="0x00" endianness="little" name="io" id="io"/>
        <address-space endianness="little" name="osccal" id="osccal" start="0" size="1">
          <memory-segment start="0" size="1" type="osccal" rw="R" exec="0" name="OSCCAL"/>
        </address-space>
      </address-spaces>
      <peripherals>
        <module name="ADC">
          <instance name="ADC" caption="Analog-to-Digital Converter">
            <register-group name="ADC" name-in-module="ADC" offset="0x00" address-space="data" caption="Analog-to-Digital Converter"/>
          </instance>
        </module>
        <module name="AC">
          <instance name="AC" caption="Analog Comparator">
            <register-group name="AC" name-in-module="AC" offset="0x00" address-space="data" caption="Analog Comparator"/>
          </instance>
        </module>
        <module name="EEPROM">
          <instance name="EEPROM" caption="EEPROM">
            <register-group name="EEPROM" name-in-module="EEPROM" offset="0x00" address-space="data" caption="EEPROM"/>
          </instance>
        </module>
        <module name="PORT">
          <instance name="PORTB" caption="I/O Port">
            <register-group name="PORTB" name-in-module="PORTB" offset="0x00" address-space="data" caption="I/O Port"/>
          </instance>
        </module>
        <module name="TC8">
          <instance name="TC0" caption="Timer/Counter, 8-bit">
            <register-group name="TC0" name-in-module="TC0" offset="0x00" address-space="data" caption="Timer/Counter, 8-bit"/>
          </instance>
          <instance name="TC1" caption="Timer/Counter, 8-bit">
            <register-group name="TC1" name-in-module="TC1" offset="0x00" address-space="data" caption="Timer/Counter, 8-bit"/>
          </instance>
        </module>
        <module name="WDT">
          <instance name="WDT" caption="Watchdog Timer">
            <register-group name="WDT" name-in-module="WDT" offset="0x00" address-space="data" caption="Watchdog Timer"/>
          </instance>
        </module>
        <module name="CPU">
          <instance name="CPU" caption="CPU Registers">
            <register-group name="CPU" name-in-module="CPU" offset="0x00" address-space="data" caption="CPU Registers"/>
          </instance>
        </module>
        <module name="EXINT">
          <instance name="EXINT" caption="External Interrupts">
            <register-group name="EXINT" name-in-module="EXINT" offset="0x00" address-space="data" caption="External Interrupts"/>
          </instance>
        </module>
        <module name="FUSE">
          <instance name="FUSE" caption="Fuses">
            <register-group name="FUSE" name-in-module="FUSE" offset="0" address-space="fuses" caption="Fuses"/>
          </instance>
        </module>
        <module name="LOCKBIT">
          <instance name="LOCKBIT" caption="Lockbits">
            <register-group name="LOCKBIT" name-in-module="LOCKBIT" offset="0" address-space="lockbits" caption="Lockbits"/>
          </instance>
        </module>
      </peripherals>
      <interrupts>
        <interrupt index="0" name="RESET" caption="External Reset, Power-on Reset and Watchdog Reset"/>
        <interrupt index="1" name="INT0" caption="External Interrupt 0"/>
        <interrupt index="2" name="IO_PINS" caption="External Interrupt Request 0"/>
        <interrupt index="3" name="TIMER1_COMP" caption="Timer/Counter1 Compare Match"/>
        <interrupt index="4" name="TIMER1_OVF" caption="Timer/Counter1 Overflow"/>
        <interrupt index="5" name="TIMER0_OVF" caption="Timer/Counter0 Overflow"/>
        <interrupt index="6" name="EE_RDY" caption="EEPROM Ready"/>
        <interrupt index="7" name="ANA_COMP" caption="Analog Comparator"/>
        <interrupt index="8" name="ADC" caption="ADC Conversion Ready"/>
      </interrupts>
      <interfaces>
        <interface name="ISP" type="isp"/>
        <interface name="HVSP" type="hvsp"/>
      </interfaces>
      <property-groups>
        <property-group name="SIGNATURES">
          <property name="SIGNATURE0" value="0x1e"/>
          <property name="SIGNATURE1" value="0x90"/>
          <property name="SIGNATURE2" value="0x06"/>
        </property-group>
        <property-group name="ISP_INTERFACE">
          <property name="IspEnterProgMode_timeout" value="200"/>
          <property name="IspEnterProgMode_stabDelay" value="100"/>
          <property name="IspEnterProgMode_cmdexeDelay" value="25"/>
          <property name="IspEnterProgMode_synchLoops" value="32"/>
          <property name="IspEnterProgMode_byteDelay" value="0"/>
          <property name="IspEnterProgMode_pollIndex" value="3"/>
          <property name="IspEnterProgMode_pollValue" value="0x53"/>
          <property name="IspLeaveProgMode_preDelay" value="1"/>
          <property name="IspLeaveProgMode_postDelay" value="1"/>
          <property name="IspChipErase_eraseDelay" value="100"/>
          <property name="IspChipErase_pollMethod" value="0"/>
          <property name="IspProgramFlash_mode" value="0x04"/>
          <property name="IspProgramFlash_blockSize" value="128"/>
          <property name="IspProgramFlash_delay" value="10"/>
          <property name="IspProgramFlash_cmd1" value="0x40"/>
          <property name="IspProgramFlash_cmd2" value="0x00"/>
          <property name="IspProgramFlash_cmd3" value="0x20"/>
          <property name="IspProgramFlash_pollVal1" value="0xFF"/>
          <property name="IspProgramFlash_pollVal2" value="0x00"/>
          <property name="IspProgramEeprom_mode" value="0x04"/>
          <property name="IspProgramEeprom_blockSize" value="64"/>
          <property name="IspProgramEeprom_delay" value="20"/>
          <property name="IspProgramEeprom_cmd1" value="0xC0"/>
          <property name="IspProgramEeprom_cmd2" value="0x00"/>
          <property name="IspProgramEeprom_cmd3" value="0xA0"/>
          <property name="IspProgramEeprom_pollVal1" value="0xFF"/>
          <property name="IspProgramEeprom_pollVal2" value="0xFF"/>
          <property name="IspReadFlash_blockSize" value="256"/>
          <property name="IspReadEeprom_blockSize" value="256"/>
          <property name="IspReadFuse_pollIndex" value="4"/>
          <property name="IspReadLock_pollIndex" value="4"/>
          <property name="IspReadSign_pollIndex" value="4"/>
          <property name="IspReadOsccal_pollIndex" value="4"/>
        </property-group>
        <property-group name="HVSP_INTERFACE">
          <property name="HvspControlStack" value="0x4C 0x0C 0x1C 0x2C 0x3C 0x64 0x74 0x00 0x68 0x78 0x68 0x68 0x00 0x00 0x68 0x78 0x78 0x00 0x6D 0x0C 0x80 0x40 0x20 0x10 0x11 0x08 0x04 0x02 0x03 0x08 0x04 0x00"/>
          <property name="HvspEnterProgMode_stabDelay" value="100"/>
          <property name="HvspEnterProgMode_cmdexeDelay" value="5"/>
          <property name="HvspEnterProgMode_synchCycles" value="6"/>
          <property name="HvspEnterProgMode_latchCycles" value="16"/>
          <property name="HvspEnterProgMode_toggleVtg" value="1"/>
          <property name="HvspEnterProgMode_powoffDelay" value="25"/>
          <property name="HvspEnterProgMode_resetDelay1" value="1"/>
          <property name="HvspEnterProgMode_resetDelay2" value="0"/>
          <property name="HvspLeaveProgMode_stabDelay" value="100"/>
          <property name="HvspLeaveProgMode_resetDelay" value="25"/>
          <property name="HvspChipErase_pollTimeout" value="40"/>
          <property name="HvspChipErase_eraseTime" value="0"/>
          <property name="HvspProgramFlash_mode" value="0"/>
          <property name="HvspProgramFlash_blockSize" value="256"/>
          <property name="HvspProgramFlash_pollTimeout" value="5"/>
          <property name="HvspReadFlash_blockSize" value="256"/>
          <property name="HvspProgramEeprom_mode" value="0"/>
          <property name="HvspProgramEeprom_blockSize" value="256"/>
          <property name="HvspProgramEeprom_pollTimeout" value="5"/>
          <property name="HvspReadEeprom_blockSize" value="256"/>
          <property name="HvspProgramFuse_pollTimeout" value="25"/>
          <property name="HvspProgramLock_pollTimeout" value="25"/>
        </property-group>
        <property-group name="ISP_INTERFACE_STK600">
          <property name="IspEnterProgMode_timeout" value="200"/>
          <property name="IspEnterProgMode_stabDelay" value="100"/>
          <property name="IspEnterProgMode_cmdexeDelay" value="25"/>
          <property name="IspEnterProgMode_synchLoops" value="32"/>
          <property name="IspEnterProgMode_byteDelay" value="0"/>
          <property name="IspEnterProgMode_pollIndex" value="3"/>
          <property name="IspEnterProgMode_pollValue" value="0x53"/>
          <property name="IspLeaveProgMode_preDelay" value="1"/>
          <property name="IspLeaveProgMode_postDelay" value="1"/>
          <property name="IspChipErase_eraseDelay" value="100"/>
          <property name="IspChipErase_pollMethod" value="0"/>
          <property name="IspProgramFlash_mode" value="0x04"/>
          <property name="IspProgramFlash_blockSize" value="128"/>
          <property name="IspProgramFlash_delay" value="5"/>
          <property name="IspProgramFlash_cmd1" value="0x40"/>
          <property name="IspProgramFlash_cmd2" value="0x00"/>
          <property name="IspProgramFlash_cmd3" value="0x20"/>
          <property name="IspProgramFlash_pollVal1" value="0xFF"/>
          <property name="IspProgramFlash_pollVal2" value="0x00"/>
          <property name="IspProgramEeprom_mode" value="0x04"/>
          <property name="IspProgramEeprom_blockSize" value="64"/>
          <property name="IspProgramEeprom_delay" value="10"/>
          <property name="IspProgramEeprom_cmd1" value="0xC0"/>
          <property name="IspProgramEeprom_cmd2" value="0x00"/>
          <property name="IspProgramEeprom_cmd3" value="0xA0"/>
          <property name="IspProgramEeprom_pollVal1" value="0xFF"/>
          <property name="IspProgramEeprom_pollVal2" value="0xFF"/>
          <property name="IspReadFlash_blockSize" value="256"/>
          <property name="IspReadEeprom_blockSize" value="256"/>
          <property name="IspReadFuse_pollIndex" value="4"/>
          <property name="IspReadLock_pollIndex" value="4"/>
          <property name="IspReadSign_pollIndex" value="4"/>
          <property name="IspReadOsccal_pollIndex" value="4"/>
        </property-group>
        <property-group name="HVSP_INTERFACE_STK600">
          <property name="HvspControlStack" value="0x4C 0x0C 0x1C 0x2C 0x3C 0x64 0x74 0x00 0x68 0x78 0x68 0x68 0x00 0x00 0x68 0x78 0x78 0x00 0x6D 0x0C 0x80 0x40 0x20 0x10 0x11 0x08 0x04 0x02 0x03 0x08 0x04 0x00"/>
          <property name="HvspEnterProgMode_stabDelay" value="100"/>
          <property name="HvspEnterProgMode_cmdexeDelay" value="5"/>
          <property name="HvspEnterProgMode_synchCycles" value="6"/>
          <property name="HvspEnterProgMode_latchCycles" value="16"/>
          <property name="HvspEnterProgMode_toggleVtg" value="1"/>
          <property name="HvspEnterProgMode_powoffDelay" value="20"/>
          <property name="HvspEnterProgMode_resetDelay1" value="0"/>
          <property name="HvspEnterProgMode_resetDelay2" value="50"/>
          <property name="HvspLeaveProgMode_stabDelay" value="100"/>
          <property name="HvspLeaveProgMode_resetDelay" value="25"/>
          <property name="HvspChipErase_pollTimeout" value="40"/>
          <property name="HvspChipErase_eraseTime" value="0"/>
          <property name="HvspProgramFlash_mode" value="0"/>
          <property name="HvspProgramFlash_blockSize" value="64"/>
          <property name="HvspProgramFlash_pollTimeout" value="5"/>
          <property name="HvspReadFlash_blockSize" value="256"/>
          <property name="HvspProgramEeprom_mode" value="0"/>
          <property name="HvspProgramEeprom_blockSize" value="256"/>
          <property name="HvspProgramEeprom_pollTimeout" value="5"/>
          <property name="HvspReadEeprom_blockSize" value="256"/>
          <property name="HvspProgramFuse_pollTimeout" value="25"/>
          <property name="HvspProgramLock_pollTimeout" value="25"/>
        </property-group>
      </property-groups>
    </device>
  </devices>
  <modules>
    <module caption="Fuses" name="FUSE">
      <register-group caption="Fuses" name="FUSE">
        <register caption="" name="LOW" offset="0x00" size="1" initval="0x5C">
          <bitfield caption="Brown-out Detection Level" mask="0x80" name="BODLEVEL" values="ENUM_BODLEVEL"/>
          <bitfield caption="Brown-out detection enabled" mask="0x40" name="BODEN"/>
          <bitfield caption="Serial program downloading (SPI) enabled" mask="0x20" name="SPIEN"/>
          <bitfield caption="External reset function of PB5 disabled" mask="0x10" name="RSTDISBL"/>
          <bitfield caption="Clock Select" mask="0x03" name="CKSEL" values="ENUM_SUT_CKSEL"/>
        </register>
      </register-group>
      <value-group caption="" name="ENUM_BODLEVEL">
        <value caption="Brown-out detection at VCC=2.7 V" name="2V7" value="0x01"/>
        <value caption="Brown-out detection at VCC=4.0 V" name="4V0" value="0x00"/>
      </value-group>
      <value-group caption="" name="ENUM_SUT_CKSEL">
        <value caption="Very quickly rising power" name="VQUICKPWR" value="0x03"/>
        <value caption="Quickly rising power" name="QUICKPWR" value="0x02"/>
        <value caption="Slowly rising power" name="SLOWPWR" value="0x01"/>
        <value caption="Slowly rising power" name="SLOWPWR" value="0x00"/>
      </value-group>
    </module>
    <module caption="Lockbits" name="LOCKBIT">
      <register-group caption="Lockbits" name="LOCKBIT">
        <register caption="" name="LOCKBIT" offset="0x00" size="1">
          <bitfield caption="Memory Lock" mask="0x06" name="LB" values="ENUM_LB"/>
        </register>
      </register-group>
      <value-group caption="" name="ENUM_LB">
        <value caption="Further programming and verification disabled" name="PROG_VER_DISABLED" value="0x00"/>
        <value caption="Further programming disabled" name="PROG_DISABLED" value="0x01"/>
        <value caption="No memory lock features enabled" name="NO_LOCK" value="0x03"/>
      </value-group>
    </module>
    <module caption="Analog-to-Digital Converter" name="ADC">
      <register-group caption="Analog-to-Digital Converter" name="ADC">
        <register caption="The ADC multiplexer Selection Register" name="ADMUX" offset="0x07" size="1">
          <bitfield caption="Reference Selection Bits" mask="0xC0" name="REFS" values="ANALOG_ADC_V_REF"/>
          <bitfield caption="Left Adjust Result" mask="0x20" name="ADLAR"/>
          <bitfield caption="Analog Channel and Gain Selection Bits" mask="0x07" name="MUX"/>
        </register>
        <register caption="The ADC Control and Status register" name="ADCSR" offset="0x06" size="1">
          <bitfield caption="ADC Enable" mask="0x80" name="ADEN"/>
          <bitfield caption="ADC Start Conversion" mask="0x40" name="ADSC"/>
          <bitfield caption="ADC  Free Running Select" mask="0x20" name="ADFR"/>
          <bitfield caption="ADC Interrupt Flag" mask="0x10" name="ADIF"/>
          <bitfield caption="ADC Interrupt Enable" mask="0x08" name="ADIE"/>
          <bitfield caption="ADC  Prescaler Select Bits" mask="0x07" name="ADPS" values="ANALOG_ADC_PRESCALER"/>
        </register>
        <register caption="ADC Data Register  Bytes" name="ADC" offset="0x04" size="2" mask="0xFFFF"/>
      </register-group>
      <value-group caption="" name="ANALOG_ADC_V_REF">
        <value caption="AVCC" name="VAL_0x00" value="0x00"/>
        <value caption="AREF" name="VAL_0x01" value="0x01"/>
        <value caption="Internal Voltage Referance" name="VAL_0x02" value="0x02"/>
        <value caption="Internal Voltage Reference With External Capacitor at AREF Pin." name="VAL_0x03" value="0x03"/>
      </value-group>
      <value-group caption="" name="ANALOG_ADC_PRESCALER">
        <value caption="2" name="VAL_0x00" value="0x00"/>
        <value caption="2" name="VAL_0x01" value="0x01"/>
        <value caption="4" name="VAL_0x02" value="0x02"/>
        <value caption="8" name="VAL_0x03" value="0x03"/>
        <value caption="16" name="VAL_0x04" value="0x04"/>
        <value caption="32" name="VAL_0x05" value="0x05"/>
        <value caption="64" name="VAL_0x06" value="0x06"/>
        <value caption="128" name="VAL_0x07" value="0x07"/>
      </value-group>
    </module>
    <module caption="Analog Comparator" name="AC">
      <register-group caption="Analog Comparator" name="AC">
        <register caption="Analog Comparator Control And Status Register" name="ACSR" offset="0x08" size="1">
          <bitfield caption="Analog Comparator Disable" mask="0x80" name="ACD"/>
          <bitfield caption="Analog Comparator Bandgap Select" mask="0x40" name="ACBG"/>
          <bitfield caption="Analog Compare Output" mask="0x20" name="ACO"/>
          <bitfield caption="Analog Comparator Interrupt Flag" mask="0x10" name="ACI"/>
          <bitfield caption="Analog Comparator Interrupt Enable" mask="0x08" name="ACIE"/>
          <bitfield caption="Analog Comparator Interrupt Mode Select bits" mask="0x03" name="ACIS" values="ANALOG_COMP_INTERRUPT"/>
        </register>
      </register-group>
      <value-group caption="" name="ANALOG_COMP_INTERRUPT">
        <value caption="Interrupt on Toggle" name="VAL_0x00" value="0x00"/>
        <value caption="Reserved" name="VAL_0x01" value="0x01"/>
        <value caption="Interrupt on Falling Edge" name="VAL_0x02" value="0x02"/>
        <value caption="Interrupt on Rising Edge" name="VAL_0x03" value="0x03"/>
      </value-group>
    </module>
    <module caption="EEPROM" name="EEPROM">
      <register-group caption="EEPROM" name="EEPROM">
        <register caption="EEPROM Read/Write Access" name="EEAR" offset="0x1E" size="1" mask="0x3F"/>
        <register caption="EEPROM Data Register" name="EEDR" offset="0x1D" size="1" mask="0xFF"/>
        <register caption="EEPROM Control Register" name="EECR" offset="0x1C" size="1">
          <bitfield caption="EEProm Ready Interrupt Enable" mask="0x08" name="EERIE"/>
          <bitfield caption="EEPROM Master Write Enable" mask="0x04" name="EEMWE"/>
          <bitfield caption="EEPROM Write Enable" mask="0x02" name="EEWE"/>
          <bitfield caption="EEPROM Read Enable" mask="0x01" name="EERE"/>
        </register>
      </register-group>
    </module>
    <module caption="I/O Port" name="PORT">
      <register-group caption="I/O Port" name="PORTB">
        <register caption="Data Register, Port B" name="PORTB" offset="0x18" size="1" mask="0x1F"/>
        <register caption="Data Direction Register, Port B" name="DDRB" offset="0x17" size="1" mask="0x3F"/>
        <register caption="Input Pins, Port B" name="PINB" offset="0x16" size="1" mask="0x3F"/>
      </register-group>
    </module>
    <module caption="Timer/Counter, 8-bit" name="TC8">
      <register-group caption="Timer/Counter, 8-bit" name="TC0">
        <register caption="Timer/Counter Interrupt Mask Register" name="TIMSK" offset="0x39" size="1">
          <bitfield caption="Timer/Counter0 Overflow Interrupt Enable" mask="0x02" name="TOIE0"/>
        </register>
        <register caption="Timer/Counter Interrupt Flag register" name="TIFR" offset="0x38" size="1">
          <bitfield caption="Timer/Counter0 Overflow Flag" mask="0x02" name="TOV0"/>
        </register>
        <register caption="Timer/Counter0 Control Register" name="TCCR0" offset="0x33" size="1">
          <bitfield caption="Clock Select0 bit 2" mask="0x04" name="CS02" values="CLK_SEL_3BIT_EXT"/>
          <bitfield caption="Clock Select0 bit 1" mask="0x02" name="CS01"/>
          <bitfield caption="Clock Select0 bit 0" mask="0x01" name="CS00"/>
        </register>
        <register caption="Timer Counter 0" name="TCNT0" offset="0x32" size="1" mask="0xFF"/>
      </register-group>
      <register-group caption="Timer/Counter, 8-bit" name="TC1">
        <register caption="Timer/Counter Control Register" name="TCCR1" offset="0x30" size="1">
          <bitfield caption="Clear Timer/Counter on Compare Match" mask="0x80" name="CTC1"/>
          <bitfield caption="Pulse Width Modulator Enable" mask="0x40" name="PWM1"/>
          <bitfield caption="Compare Output Mode, Bits" mask="0x30" name="COM1A" values="CLK_COMP_MATCH_OUT_MODE"/>
          <bitfield caption="Clock Select Bits" mask="0x0F" name="CS1" values="CLK_SEL_4BIT_FAST"/>
        </register>
        <register caption="Timer/Counter Register" name="TCNT1" offset="0x2F" size="1" mask="0xFF"/>
        <register caption="Output Compare Register" name="OCR1A" offset="0x2E" size="1" mask="0xFF"/>
        <register caption="Output Compare Register" name="OCR1B" offset="0x2D" size="1" mask="0xFF"/>
        <register caption="Timer/Counter Interrupt Mask Register" name="TIMSK" offset="0x39" size="1">
          <bitfield caption="OCIE1A: Timer/Counter1 Output Compare Interrupt Enable" mask="0x40" name="OCIE1A"/>
          <bitfield caption="Timer/Counter1 Overflow Interrupt Enable" mask="0x04" name="TOIE1"/>
        </register>
        <register caption="Timer/Counter Interrupt Flag Register" name="TIFR" offset="0x38" size="1">
          <bitfield caption="Timer/Counter1 Output Compare Flag 1A" mask="0x40" name="OCF1A"/>
          <bitfield caption="Timer/Counter1 Overflow Flag" mask="0x04" name="TOV1"/>
        </register>
        <register caption="Special Function IO Register" name="SFIOR" offset="0x2C" size="1">
          <bitfield caption="Force Output Compare 1A" mask="0x04" name="FOC1A"/>
          <bitfield caption="Prescaler Reset Timer/Counter1" mask="0x02" name="PSR1"/>
          <bitfield caption="Prescaler Reset Timer/Counter0" mask="0x01" name="PSR0"/>
        </register>
      </register-group>
      <value-group caption="" name="CLK_SEL_3BIT_EXT">
        <value caption="No Clock Source (Stopped)" name="VAL_0x00" value="0x00"/>
        <value caption="Running, No Prescaling" name="VAL_0x01" value="0x01"/>
        <value caption="Running, CLK/8" name="VAL_0x02" value="0x02"/>
        <value caption="Running, CLK/64" name="VAL_0x03" value="0x03"/>
        <value caption="Running, CLK/256" name="VAL_0x04" value="0x04"/>
        <value caption="Running, CLK/1024" name="VAL_0x05" value="0x05"/>
        <value caption="Running, ExtClk Tx Falling Edge" name="VAL_0x06" value="0x06"/>
        <value caption="Running, ExtClk Tx Rising Edge" name="VAL_0x07" value="0x07"/>
      </value-group>
      <value-group caption="" name="CLK_COMP_MATCH_OUT_MODE">
        <value caption="Disconnected from OCn/PWMn" name="VAL_0x00" value="0x00"/>
        <value caption="Toggle OCn/PWMn output line" name="VAL_0x01" value="0x01"/>
        <value caption="Clear OCn/PWMn output line" name="VAL_0x02" value="0x02"/>
        <value caption="set OCn/PWMn output line" name="VAL_0x03" value="0x03"/>
      </value-group>
      <value-group caption="" name="CLK_SEL_4BIT_FAST">
        <value caption="No Clock Source (Stopped)" name="VAL_0x00" value="0x00"/>
        <value caption="Running, CLK*16" name="VAL_0x01" value="0x01"/>
        <value caption="Running, CLK*8" name="VAL_0x02" value="0x02"/>
        <value caption="Running, CLK*4" name="VAL_0x03" value="0x03"/>
        <value caption="Running, CLK*2" name="VAL_0x04" value="0x04"/>
        <value caption="Running, No Prescaling" name="VAL_0x05" value="0x05"/>
        <value caption="Running, CLK/2" name="VAL_0x06" value="0x06"/>
        <value caption="Running, CLK/4" name="VAL_0x07" value="0x07"/>
        <value caption="Running, CLK/8" name="VAL_0x08" value="0x08"/>
        <value caption="Running, CLK/16" name="VAL_0x09" value="0x09"/>
        <value caption="Running, CLK/32" name="VAL_0x0A" value="0x0A"/>
        <value caption="Running, CLK/64" name="VAL_0x0B" value="0x0B"/>
        <value caption="Running, CLK/128" name="VAL_0x0C" value="0x0C"/>
        <value caption="Running, CLK/256" name="VAL_0x0D" value="0x0D"/>
        <value caption="Running, CLK/512" name="VAL_0x0E" value="0x0E"/>
        <value caption="Running, CLK/1024" name="VAL_0x0F" value="0x0F"/>
      </value-group>
    </module>
    <module caption="Watchdog Timer" name="WDT">
      <register-group caption="Watchdog Timer" name="WDT">
        <register caption="Watchdog Timer Control Register" name="WDTCR" offset="0x21" size="1">
          <bitfield caption="RW" mask="0x10" name="WDTOE"/>
          <bitfield caption="Watch Dog Enable" mask="0x08" name="WDE"/>
          <bitfield caption="Watch Dog Timer Prescaler bits" mask="0x07" name="WDP" values="WDOG_TIMER_PRESCALE_3BITS"/>
        </register>
      </register-group>
      <value-group caption="" name="WDOG_TIMER_PRESCALE_3BITS">
        <value caption="Oscillator Cycles 16K" name="VAL_0x00" value="0x00"/>
        <value caption="Oscillator Cycles 32K" name="VAL_0x01" value="0x01"/>
        <value caption="Oscillator Cycles 64K" name="VAL_0x02" value="0x02"/>
        <value caption="Oscillator Cycles 128K" name="VAL_0x03" value="0x03"/>
        <value caption="Oscillator Cycles 256K" name="VAL_0x04" value="0x04"/>
        <value caption="Oscillator Cycles 512K" name="VAL_0x05" value="0x05"/>
        <value caption="Oscillator Cycles 1024K" name="VAL_0x06" value="0x06"/>
        <value caption="Oscillator Cycles 2048K" name="VAL_0x07" value="0x07"/>
      </value-group>
    </module>
    <module caption="CPU Registers" name="CPU">
      <register-group caption="CPU Registers" name="CPU">
        <register caption="Status Register" name="SREG" offset="0x3F" size="1">
          <bitfield caption="Global Interrupt Enable" mask="0x80" name="I"/>
          <bitfield caption="Bit Copy Storage" mask="0x40" name="T"/>
          <bitfield caption="Half Carry Flag" mask="0x20" name="H"/>
          <bitfield caption="Sign Bit" mask="0x10" name="S"/>
          <bitfield caption="Two's Complement Overflow Flag" mask="0x08" name="V"/>
          <bitfield caption="Negative Flag" mask="0x04" name="N"/>
          <bitfield caption="Zero Flag" mask="0x02" name="Z"/>
          <bitfield caption="Carry Flag" mask="0x01" name="C"/>
        </register>
        <register caption="MCU Control Register" name="MCUCR" offset="0x35" size="1">
          <bitfield caption="Pull-up Disable" mask="0x40" name="PUD"/>
          <bitfield caption="Sleep Enable" mask="0x20" name="SE"/>
          <bitfield caption="Sleep Mode Select Bits" mask="0x18" name="SM" values="CPU_SLEEP_MODE2"/>
          <bitfield caption="Interrupt Sense Control 0 bits" mask="0x03" name="ISC0" values="INTERRUPT_SENSE_CONTROL2"/>
        </register>
        <register caption="MCU Status register" name="MCUSR" offset="0x34" size="1">
          <bitfield caption="Watchdog Reset Flag" mask="0x08" name="WDRF"/>
          <bitfield caption="Brown-out Reset Flag" mask="0x04" name="BORF"/>
          <bitfield caption="External Reset Flag" mask="0x02" name="EXTRF"/>
          <bitfield caption="Power-On Reset Flag" mask="0x01" name="PORF"/>
        </register>
        <register caption="Status Register" name="OSCCAL" offset="0x31" size="1" mask="0xFF">
          <bitfield caption="Oscillator Calibration " mask="0xFF" name="OSCCAL"/>
        </register>
      </register-group>
      <value-group caption="" name="CPU_SLEEP_MODE2">
        <value caption="Idle" name="IDLE" value="0x00"/>
        <value caption="ADC Noise Reduction (If Available)" name="ADC" value="0x01"/>
        <value caption="Power Down" name="PDOWN" value="0x02"/>
        <value caption="Reserved" name="VAL_0x03" value="0x03"/>
      </value-group>
      <value-group caption="" name="INTERRUPT_SENSE_CONTROL2">
        <value caption="Low Level of INTX" name="VAL_0x00" value="0x00"/>
        <value caption="Any Logical Change in INTX" name="VAL_0x01" value="0x01"/>
        <value caption="Falling Edge of INTX" name="VAL_0x02" value="0x02"/>
        <value caption="Rising Edge of INTX" name="VAL_0x03" value="0x03"/>
      </value-group>
      <value-group caption="Oscillator Calibration Values" name="OSCCAL_VALUE_ADDRESSES">
        <value value="0x00" caption="1.6 MHz" name="1_6_MHz"/>
      </value-group>
      <parameters>
        <param name="CORE_VERSION" value="V0E"/>
      </parameters>
    </module>
    <module caption="External Interrupts" name="EXINT">
      <register-group caption="External Interrupts" name="EXINT">
        <register caption="General Interrupt Mask Register" name="GIMSK" offset="0x3B" size="1">
          <bitfield caption="External Interrupt Request 0 Enable" mask="0x40" name="INT0"/>
          <bitfield caption="Pin Change Interrupt Enable" mask="0x20" name="PCIE"/>
        </register>
        <register caption="General Interrupt Flag register" name="GIFR" offset="0x3A" size="1">
          <bitfield caption="External Interrupt Flag 0" mask="0x40" name="INTF0"/>
          <bitfield caption="Pin Change Interrupt Flag" mask="0x20" name="PCIF"/>
        </register>
      </register-group>
    </module>
  </modules>
</avr-tools-device-file>