Lock-Bits: auf default (0xFF) lassen.
Fuse-Bits: (Zusammenfassung vom Datenblatt)
xfuse - - - - - - - SELFPRG default: 1 1 1 1 1 1 1 1 = 0xFF hfuse DWEN EESAVE SPIEN WDTON BODLEV2 BODLEV1 BODLEV0 RSTDISBL default: 1 1 0 1 1 1 1 1 = 0xDF lfuse CKDIV8 CKOUT SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 default: 0 1 1 0 0 1 0 0 = 0x64Bedeutung der Fuses:
Speicherbelegung:
Der ATtiny2313 hat 2KB Flash, 128Byte EEPROM und 128Byte SRAM.
Beim Ausschalten bleiben die Daten im Flash und EEPROM erhalten,
Daten im RAM gehen verloren.
Programmbereich: Word-weise organisiert (16-Bit Worte)
0000: Application-Flash
03FF: letztes Word im Flash
RAM-Bereich: Byte-weise organisiert
0000: r0
0001: r1
...
001F: r31
0020: IO-Bereich
005F: letztes Byte im IO-Bereich
0060: SRAM
00DF: letztes Byte
EEPROM-Bereich: Byte-weise organisiert
0000:
007F:
Zusammenfassung der Tabelle 11-8: Mode WGM2:1:0 Modus TOP Update TOV-Flag bei 0 0 0 0 normal 0xFF sofort 0xFF 1 0 0 1 PWM 0xFF 0xFF 0x00 2 0 1 0 CTC OCR0A sofort 0xFF (also nie wenn OCRA!=0xFF !!) 3 0 1 1 FastPWM 0xFF 0xFF 0xFF 5 1 0 1 FastPWM OCR0A TOP 0x00 7 1 1 1 FastPWM OCR0A TOP TOP Relevante Register: TIMSK Timer-Interrupt-MaSK (letzte 3 Bits fuer Timer0) Bit 7 6 5 4 3 2 1 0 TOIE1 OCIE1A OCIE1B - ICIE1 OCIE0B TOIE0 OCIE0A TCCR0A Bit 7 6 5 4 3 2 1 0 COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00 TCCR0B Bit 7 6 5 4 3 2 1 0 FOC0A FOC0B - - WGM02 CS02 CS01 CS00 Bedeutung der Bits in TCCR0A/TCCR0B: WGM02-0: Modus (Waveform Generation Mode), siehe obige Tabelle. COM0A1-0/COM0B1-0: Modus fuer PWM-Pins, bei Benutzung PB2 und PD5 im DDRB/DDRD setzen 00 PWM-Pins OC0A (PB2) und OC0B (PD5) nicht verwendet 01 OC0A wechseln wenn OCR0A erreicht wird (nur in FastPWM-Modi?, nur fuer OC0A erlaubt?) 10 OC0A/OC0B setzen wenn TCNT0 bei 0 startet, loeschen wenn OCR0A/OCR0B erreicht, in Modus 1 zusaetzlich noch setzen beim runterzaehlen. 11 OC0A/OC0B loeschen wenn TCNT0 bei 0 startet, setzen wenn OCR0A/OCR0B erreicht, in Modus 1 zusaetzlich noch loeschen beim runterzaehlen. TCNT0 Timer CouNTer 0 Zaehlerwert lesbar und schreibbar OCR0A Output Compare Register timer0 A Vergleichsregister A, wird dauernd mit TCNT0 verglichen OCR0B Output Compare Register timer0 B Vergleichsregister B, wird dauernd mit TCNT0 verglichen
TIMSK Timer-Interrupt-MaSK (letzte 3 Bits fuer Timer0) Bit 7 6 5 4 3 2 1 0 TOIE1 OCIE1A OCIE1B - ICIE1 OCIE0B TOIE0 OCIE0A TOIE1: Timer Overflow Interrupt Enable, Interrupt bei Ueberlauf eingeschaltet OCIE1A/OCIE1B: Output Compare Interrupt Enable ICIE1: Input Capture Interrupt Enable TCCR1A Timer Counter Control Register Bit 7 6 5 4 3 2 1 0 COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10 TCCR1B Bit 7 6 5 4 3 2 1 0 ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10 TCCR1C Bit 7 6 5 4 3 2 1 0 FOC1A FOC1B - - - - - - Bedeutung der Bits in TCCR1A-C: WGM13-0: Modus (Waveform Generation Mode) Auszug aus Tabelle 46: 0 Normal 0xFFFF Immediate MAX 4 CTC OCR1A Immediate MAX 12 CTC ICR1 Immediate MAX 14 Fast PWM ICR1 TOP TOP CS12-0: Vorteiler 0 Timer ausgeschaltet 1 Teiler=1, es wird also F_CPU direkt verwendet 2 Teiler=8 3 Teiler=64 4 Teiler=256 5 Teiler=1024 6 Externer Takt an T1, fallende Flanke 7 Externer Takt an T1, steigende Flanke COM1A1-0/COM1B1-0: Modus fuer PWM-Pins, bei Benutzung PB3 und PB4 im DDRB setzen 00 PWM-Pins OC1A (PB3) und OC1B (PB4) nicht verwendet 01 in PWM-Modus: nur wenn WGM13=1: OC1A wechseln wenn OCR1A==TCNT1, OC1B nicht verwendet in andern Modi: OC1A/OC1B wechseln wenn OCR1A/OCR1B erreicht 10 loeschen von OC1A/OC1B beim raufzaehlen wenn OCR1X erreicht, setzen beim runterzaehlen 11 setzen von OC1A/OC1B beim raufzaehlen wenn OCR1X erreicht, loeschen beim runterzaehlen ICNC1: Input Capture Noise Canceler, Rauschunterdrückung fuer den ICP1-Pin ICES1: Input Capture Edge Select, Flanke vom ICP1-Pin: 0=fallende, 1=steigende Flanke. Wenn ICIE1 in TIMSK gesetzt ist wird dann TCNT1 nach ICR1 kopiert. FOC1A: In nicht-PWM-Modi setzen/loeschen von OC1A (setzen wenn COM1A1/COM1A0 11, loeschen wenn 10) FOC1B: In nicht-PWM-Modi setzen/loeschen von OC1B (setzen wenn COM1B1/COM1B0 11, loeschen wenn 10) TCNT1H Timer CouNTer 1 (Bits 15 bis 8) TCNT1L Timer CouNTer 1 (Bits 7 bis 0) OCR1AH Output Compare Register timer1 A OCR1AL Output Compare Register timer1 A OCR1BH Output Compare Register timer1 B OCR1BL Output Compare Register timer1 B ICR1H Input Capture Register timer1 Wenn ICP1-Pin aktiviert, wird TCNT1 hierher kopiert (siehe ICES1) ICR1L Input Capture Register timer1 Im Datenblatt wird ICP1 manchmal auch als ICPI bezeichnet (Statt ICP1 kann auch der Analog-Comperator verwendet werden, wenn dort das entsprechende Bit gesetzt) TIFR Timer Interrupt Flag Register Bit 7 6 5 4 3 2 1 0 TOV1 OCF1A OCF1B - ICF1 0CF0B TOV0 OCF0A Bei Verwendung von Interruptsubroutinen (ISR) werden diese Flags automatisch gesetzt und geloescht. Somit ist das Register TIFR zum Programmieren nicht wirklich relevant.