<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.57.129.243</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.57.129.243"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/84.57.129.243"/>
	<updated>2026-04-10T21:37:03Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Tutorial_Bestellliste&amp;diff=7854</id>
		<title>AVR-Tutorial Bestellliste</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Tutorial_Bestellliste&amp;diff=7854"/>
		<updated>2005-05-05T15:08:11Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bestellliste für [http://www.mikrocontroller.net/tutorial/ AVR-Tutorial] bei Reichelt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Liste ist allerdings nicht vollständig, da ich noch einige Teile hatte. Sie bezieht sich auf das AVR-Tutorial und den ATmega8 und [[ISP]]-Programmer. Es fehlen ein paar Widerstände und Kondensatoren sowie das LC-Display. Aus meiner Erfahrung heraus ist [http://www.reichelt.de Reichelt] der günstigste Versender mit fairen Versandkosten (3.60 Euro) und nur 10 Euro Mindestbestellsumme (dies soll keine Werbung etc. für Reichelt sein).&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;Bestellnummer               Beschreibung                                 Preis&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 µA 7805          Spannungsregler 1A positiv, TO-220   1                 0.23Euro&lt;br /&gt;
 MAX 232CPE       RS232-Treiber                                          0.75Euro&lt;br /&gt;
 GS 28            IC-Sockel, 28-polig, doppelter Federkontakt 2          0.16Euro&lt;br /&gt;
 H25PR150         Lochrasterplatine, Hartpapier, 150x100mm 2             3.20Euro&lt;br /&gt;
 SPL 20           IC-Fassung, 20-polig, einreihig, RM 2,54, gerade 3     0.78Euro&lt;br /&gt;
 ATMEGA 8-16 DIP  ATMega AVR-RISC-Controller, DIL-28 1                   4.25Euro&lt;br /&gt;
 STIFTL. 2X10W    Stiftleiste, 2x10-polig, vergoldet, zweireihig, gew. 2 0.26Euro&lt;br /&gt;
 74HCT 244        Bustreiber                                             0.25Euro&lt;br /&gt;
 RAD 10/35        Elektrolytkondensator, 5x11mm, RM 2,0mm 5              0.20Euro&lt;br /&gt;
 RAD 22/35        Elektrolytkondensator, 5x11mm, RM 2,0mm 5              0.20Euro&lt;br /&gt;
 D-SUB ST 25US    D-SUB-Stecker, 25-polig, gewinkelt, RM 7,2 1           0.40Euro&lt;br /&gt;
 OSZI 8,000000    Quarzoszillator, 8,00 MHz 1                            1.90Euro&lt;br /&gt;
 D-SUB BU 09US    D-SUB-Buchse, 9-polig, gewinkelt, RM 7,2 1             0.21Euro&lt;br /&gt;
 GS 40            IC-Sockel, 40-polig, doppelter Federkontakt 2          0.22Euro&lt;br /&gt;
 BAT 43           DIODE 1                                                0.11Euro&lt;br /&gt;
 HEBO 13          Hohlstecker-Printeinbaubuchse, gewinkelt 1             0.21Euro&lt;br /&gt;
 BUCHSENL 2X10G   Buchsenleiste, 2x10-polig, zweireihig, H: 8,3mm 2      0.30Euro&lt;br /&gt;
&lt;br /&gt;
Versandkosten:  3.60 Euro&lt;br /&gt;
&lt;br /&gt;
Gesamtpreis:           17.98 Euro&lt;br /&gt;
&lt;br /&gt;
Alles ohne Gewähr für die Richtigkeit. Teilweise weichen die bestellten Artikel ab, da Reichelt nicht alles führt. Die Steckbretter bekommt man neuerdings günstig bei ebay (Suche: Steckbrett).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Anm. mthomas 11.5.2004&lt;br /&gt;
&lt;br /&gt;
 was noch fehlen muesste:&lt;br /&gt;
 100 nF Kondensator (Folie) 7805 sekundaer&lt;br /&gt;
 100 nF Kondensator zw. VCC-GND am ATmega8&lt;br /&gt;
 100 nF Kondensator zw. AVCC-GND am ATmega8&lt;br /&gt;
 100 nF Kondensator zw. AREF-GND am ATmega8&lt;br /&gt;
 100 nF Kondensator zw. VCC-GND am MAX232&lt;br /&gt;
 100 nF Kondensator im Programmieradapter&lt;br /&gt;
 (ja...es sind ein paar, aber schaden tut&#039;s nichts)&lt;br /&gt;
&lt;br /&gt;
 fuer &amp;quot;Standardbeschaltung&amp;quot; Reset-Pin:&lt;br /&gt;
 100 nF Kondensator zw. Reset und GND&lt;br /&gt;
 10 kOhm Widerstand zw. Reset und VCC&lt;br /&gt;
 1N4148 o.ae. Diode zw. Reset und VCC&lt;br /&gt;
&lt;br /&gt;
 LEDs z.b. 3mm low-current (3mA)&lt;br /&gt;
 1,5k Ohm Vorwiderstaende fuer LEDs&lt;br /&gt;
&lt;br /&gt;
Aenderungen:&lt;br /&gt;
* GS28 ist &amp;quot;normal-breit&amp;quot; richtig: die schmale Ausfuehrung GS-28-S&lt;br /&gt;
* fuer den MAX232 reichen 1uF Kondensatoren an den Ladepumpen&lt;br /&gt;
* Quarz besser mit einer &amp;quot;UART-Frequenz&amp;quot; also 3,6... oder 7,2... MHz&lt;br /&gt;
* DSUB-Buchse besser ohne Gehaeuse, verloetet sich einfacher auf Lochraster&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Typen&amp;diff=8030</id>
		<title>AVR Typen</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Typen&amp;diff=8030"/>
		<updated>2005-05-05T15:07:15Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== AT90S ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Basic Line&amp;quot; der Atmel [[AVR]]-Reihe. Sie beinhaltet die ersten [[AVR|AVRs]] die produziert wurden und deren Bezeichnung mit &amp;quot;AT90S&amp;quot; beginnt. Alle Typen wurden mit der Zeit von den beiden Nachfolgereihen ersetzt: ATmega bzw. ATtiny.&lt;br /&gt;
&lt;br /&gt;
Einige neue AVR-Controller tragen eine mit AT90-&#039;&#039;ohne S&#039;&#039; beginnende Bezeichnung, haben aber einen &amp;quot;moderneren&amp;quot; Kern. Z.B. sind die Typen AT90PWM2/3 und AT90CAN128 vom Funktionsumfang (interner RC, USART etc.) den ATmegas zuzuordnen.&lt;br /&gt;
&lt;br /&gt;
=== ATmega ===&lt;br /&gt;
&lt;br /&gt;
Die ATmega-[[Mikrocontroller]] sind ein Teil der AVR-Controllerfamilie. Zusammen mit den ATTiny lösen die ATmega die AT90S-Serie schrittweise ab, wobei es in den meisten Fällen weitgehend pin- und funktionskompatiblen Ersatz für die abgekündigten Controller gibt (ATmega8 statt AT90S4433, ATmega8515 statt AT90S8515 usw.).&lt;br /&gt;
&lt;br /&gt;
Atmel ATmega AVRs werden mit aktiviertem internem Taktgeber ausgeliefert. Schließt man ein andere externe Taktquelle an (Quarz, Quarzoszillator o.ä.), wird diese nicht automatisch genutzt. Zum Aktivieren müssen die Fuse-Bits des Controllers entsprechend eingestellt werden (siehe Datenblatt).&lt;br /&gt;
&lt;br /&gt;
ATmegas mit integriertem JTAG-Interface (z.Zt. solche ab 16kB Flash-Speicher und mehr als 28 Pins&amp;lt;!-- wg. ATmega168--&amp;gt;) werden ab Werk mit aktiviertem JTAG-Interface ausgeliefert. Dieses Interface belegt vier Port-Pins (z.B. am PORTC bei ATmega16/32), die nicht für eigene Anwendungen genutzt werden können, solange das JTAG-Interface aktiviert ist. Das Interface lässt sich über ein Fuse-Bit (JTAGEN) dauerhaft und über ein Bit (JTD) in dem (oder einem der) MC-Kontroll-Register (Datenblatt nach JTD durchsuchen) per Software zur Laufzeit an- und abschalten. Weiteres im Datenblatt des jeweiligen Controllers in den Abschnitten Memory-Programming (Fuse) und JTAG/ICE (JTD).&lt;br /&gt;
&lt;br /&gt;
Beim ATmega128 ist ab Werk die Mega103-Kompatibilitätsfuse gesetzt. Um alle Erweiterungen des Mega128 gegenüber dem Mega103 zu nutzen muß diese deaktivert werden. Diese Fuse sorgt außerdem dafür, dass das SRAM in einem anderen Adressbereich liegt. Dadurch funktionieren C-Programme nur bis zum ersten Funktionsaufruf.&lt;br /&gt;
&lt;br /&gt;
=== ATtiny ===&lt;br /&gt;
&lt;br /&gt;
Die ATtiny stellen das untere Ende der neuen AVR Linie von Atmel da und waren zunächst durch das Fehlen von internem [[RAM#SRAM|SRAM]] gekennzeichnet. Mittlerweile gibt es aber so bemerkenswerte Controller wie den ATtiny2313, deren Möglichkeiten und Funktionen den ATmegas in nichts nachstehen. Der ATtiny2313 soll aber leider erst ab September 2004 lieferbar sein.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Unterschied zu den ATmegas ist der fehlende Hardwaremultiplizierer. Jede Multiplikation muß also in Software ausgeführt werden. Eine Übersicht über die Verfügbarkeit verschiedener Befehle gibt es hier: [[AVR_Assembler_-_Vergleichstabelle|AVR-Assembler Befehlsvergleichstabelle]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_Assembler_-_Vergleichstabelle&amp;diff=10532</id>
		<title>AVR Assembler - Vergleichstabelle</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_Assembler_-_Vergleichstabelle&amp;diff=10532"/>
		<updated>2005-05-05T15:05:56Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Entstanden aus dem Forenbeitrag: [http://www.mikrocontroller.net/forum/read-1-124179.html Tabelle: welcher AVR welche Befehle?]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:black; color:#ffdead;&amp;quot; colspan=&amp;quot;7&amp;quot; |Arithmetic and Logic Instructions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff0bf;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |90S2313&amp;lt;br&amp;gt;90S8515&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny11/12&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny13&amp;lt;br&amp;gt;tiny2313&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny26&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega8&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega16&amp;lt;br&amp;gt;mega162&amp;lt;br&amp;gt;mega32&amp;lt;br&amp;gt;mega64&amp;lt;br&amp;gt;mega128&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | ADD&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ADC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | ADIW&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SUB&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SUBI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SBC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SBCI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SBIW&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | AND&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ANDI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | OR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ORI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | EOR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | COM&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | NEG&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SBR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | CBR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | INC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | DEC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | TST&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | CLR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SER&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | MUL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | MULS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | MULSU&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | FMUL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | FMULS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | FMULSU&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:black; color:#ffdead;&amp;quot; colspan=&amp;quot;7&amp;quot; |Branch Instructions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff0bf;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |90S2313&amp;lt;br&amp;gt;90S8515&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny11/12&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny13&amp;lt;br&amp;gt;tiny2313&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny26&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega8&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega16&amp;lt;br&amp;gt;mega162&amp;lt;br&amp;gt;mega32&amp;lt;br&amp;gt;mega64&amp;lt;br&amp;gt;mega128&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | RJMP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | IJMP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | EIJMP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | JMP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | RCALL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ICALL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | EICALL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CALL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | RET&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | RETI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | CPSE&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | CPC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CPI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SBRC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SBRS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SBIC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SBIS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRBS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRBC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BREQ&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRNE&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRCS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRCC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRSH&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRLO&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRMI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRPL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRGE&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRLT&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRHS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRHC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRTS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRTC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRVS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRVC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BRIE&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BRID&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:black; color:#ffdead;&amp;quot; colspan=&amp;quot;7&amp;quot; |Data Transfer Instructions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff0bf;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |90S2313&amp;lt;br&amp;gt;90S8515&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny11/12&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny13&amp;lt;br&amp;gt;tiny2313&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny26&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega8&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega16&amp;lt;br&amp;gt;mega162&amp;lt;br&amp;gt;mega32&amp;lt;br&amp;gt;mega64&amp;lt;br&amp;gt;mega128&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | MOV&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | MOVW&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | LDI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | LDS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | LD&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | LDD&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | STS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ST&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | STD&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | LPM&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | ELPM&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SPM&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f0f0f0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | IN&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | OUT&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | PUSH&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | POP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #f7f7f7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:black; color:#ffdead;&amp;quot; colspan=&amp;quot;7&amp;quot; |Bit and Bit-test Instructions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff0bf;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |90S2313&amp;lt;br&amp;gt;90S8515&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny11/12&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny13&amp;lt;br&amp;gt;tiny2313&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny26&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega8&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega16&amp;lt;br&amp;gt;mega162&amp;lt;br&amp;gt;mega32&amp;lt;br&amp;gt;mega64&amp;lt;br&amp;gt;mega128&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SBI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CBI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | LSL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | LSR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | ROL&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | ROR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | ASR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | SWAP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BSET&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BCLR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BST&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | BLD&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLC&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEN&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLN&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEZ&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLZ&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLI&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SES&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLS&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEV&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLV&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SET&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLT&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SEH&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | CLH&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background:black; color:#ffdead;&amp;quot; colspan=&amp;quot;7&amp;quot; |MCU Control Instructions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#fff0bf;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |90S2313&amp;lt;br&amp;gt;90S8515&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny11/12&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny13&amp;lt;br&amp;gt;tiny2313&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |tiny26&lt;br /&gt;
| style=&amp;quot;background:#ffdead; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega8&lt;br /&gt;
| style=&amp;quot;background:#fff0bf; vertical-align: bottom; font-weight: bold; text-align:left;&amp;quot; |mega16&amp;lt;br&amp;gt;mega162&amp;lt;br&amp;gt;mega32&amp;lt;br&amp;gt;mega64&amp;lt;br&amp;gt;mega128&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | BREAK&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e7e7e7;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: red; background: #e0e0e0;&amp;quot; | ×&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | NOP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #ffdead;&amp;quot; | SLEEP&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e0e0e0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #e7e7e7;&amp;quot; | ?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: #fff0bf;&amp;quot; | WDR&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f0f0f0;&amp;quot; | ?&lt;br /&gt;
| style=&amp;quot;font-weight: bold; text-align: center; color: green; background: #f7f7f7;&amp;quot; | ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7219</id>
		<title>AVR - Die genaue Sekunde / RTC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7219"/>
		<updated>2005-05-05T15:03:35Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: /* Verbesserte Vesion mit durchlaufendem Hartwarezöhler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Oftmals sieht man Projekte, bei denen ein externer RTC-Baustein angeschlossen ist, ohne dessen Vorteil wirklich zu nutzen.&lt;br /&gt;
Der einzige Vorteil eines externen RTC ist nämlich nur, dass man die Zeitzählung während eines Ausfalls der Hauptstromversorgung über eine kleine Stützbatterie bei geringem Strombedarf fortsetzen kann. &lt;br /&gt;
&lt;br /&gt;
In allen anderen Fällen ist die zusätzliche Hardware völlig unnötig und man kann eine präzise Zeitbasis bequem mit dem Hauptquarz des Mikrokontrollers programmieren. &lt;br /&gt;
Daraus ergeben sich sogar noch zusätzliche Vorteile, wie eine geringere Temperaturabhängigkeit und höhere Güte, die Quarze im MHz-Bereich gegenüber Quarzen im kHz-Bereich besitzen.&lt;br /&gt;
Ich möchte hiermit die Angst vor dem bisschen Mathematik nehmen, welches zur Berechnung der Teilerfaktoren benötigt wird.&lt;br /&gt;
&lt;br /&gt;
==Lösung==&lt;br /&gt;
Speziell für den AVR kommen Quarze im Bereich 1MHz bis 16MHz zum Einsatz. Diese Zahlen lassen sich jedoch nicht in 16 Bit ausdrücken und somit ist ein direktes Setzen des Compare-Wertes des Timers T1 nicht möglich. &lt;br /&gt;
Deshalb unterteilt man die Quarzfrequenz in zwei Faktoren; der erste bestimmt die Periode des Timers T1 und der zweite den Reloadwert eines Registers, welches im Timerinterrupt runtergezählt wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiel== &lt;br /&gt;
Als Beispiel wird 11,0592MHz gewählt, was einem üblichen Baudratenquarz entspricht, d.h. damit können die UART Standardbautraten erzeugt werden.&lt;br /&gt;
Der Softwareteiler wird mit 256 gewählt und kann somit nur mit einem einzigen Byte realisiert werden. Für größere Werte muß der Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten als 256 muß man beachten, daß der 2.Faktor immer noch in 2 Byte paßt, um als Comparewert für T1 verwendet zu werden. &lt;br /&gt;
&lt;br /&gt;
Mit 256Hz ergibt sich eine Timerinterruptzeit von 4ms, die auch sehr gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine kann also bequem in den Timerinterrupt mit eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
Beachten muß man nur noch, dass das Nullsetzen des Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der Comparewert ist der gewünschte Teilerfaktor - 1.&lt;br /&gt;
&lt;br /&gt;
==Berechnung==&lt;br /&gt;
Die Berechnung des Comparewertes ist also sehr einfach: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059200 / 256 - 1 = 43199, Rest 0. &lt;br /&gt;
&lt;br /&gt;
Da haben wir ja noch mal Glück gehabt, es gibt keinen Rest bei der Division und die Sekunde ist exakt 256 * 43200 = 11059200 Zyklen lang. &lt;br /&gt;
&lt;br /&gt;
Nun habe ich die Uhr einen Tag laufen lassen und festgestellt, daß sie 1,5s nach geht. &lt;br /&gt;
&lt;br /&gt;
D.h. die Quarzfrequenz beträgt in Wirklichkeit: &lt;br /&gt;
&lt;br /&gt;
11059200 * (1 - 1,5 / 24 / 60 / 60) = 11059008 Hz. &lt;br /&gt;
&lt;br /&gt;
Also die ganze Rechnung nochmal: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059008 / 256 - 1 = 43198, Rest 64. &lt;br /&gt;
&lt;br /&gt;
Nun habe wir einen Rest und es würden uns jede Sekunde 64 Zyklen fehlen. Das geht natürlich nicht. &lt;br /&gt;
&lt;br /&gt;
Deshalb wird jedensmal, wenn der Softwareteiler Null ist und die Sekunde weitergezählt wird, ein anderer Comparewert geladen. Dieser ist dann um den Rest größer. Und beim nächsten Timerinterrupt wird dann wieder der Comparewert geladen, der das Ergebnis der Division war. &lt;br /&gt;
&lt;br /&gt;
Es ergeben sich somit: &lt;br /&gt;
&lt;br /&gt;
255 * (43198 + 1) + 1 * (43198 + 64  + 1) = 11059008 Zyklen, exakt, wie wir es wollten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Das Programm== &lt;br /&gt;
Nachfolgend nun das C-Programm. Da wir ja alle nicht gerne rechnen, lassen wir das einfach den C-Compiler erledigen. D.h. wir brauchen nur noch per Definition für XTAL den entsprechenden Wert eintragen und der Compiler rechnet alle nötigen Konstanten ganz alleine aus. &lt;br /&gt;
&lt;br /&gt;
So ein Compiler ist auch ziemlich faul, der merkt sofort, wenn die Operanden für eine Berechnung alles Konstanten sind. Und ehe er sich damit abquält, extra Code für diese Berechnungen zu erzeugen, rechnet er es lieber selber aus und fügt das Ergebnis direkt in den Code ein. &lt;br /&gt;
&lt;br /&gt;
Der Assembler kann auch 32-Bit Konstanten-Berechnungen ausführen. Allerdings muß man dann die entsprechenden Preprozessoroperationen benutzen. Man könnte auch eine Divisionsroutine aufrufen, aber dann würde ja echter Code erzeugt. &lt;br /&gt;
&lt;br /&gt;
===Beispiel in C===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*			Precise 1 Second Timebase			*/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                      danni@specs.de                                  */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
// Target: Mega8, 2313&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef	PINC&lt;br /&gt;
#define	KEY_INPUT	PIND	// 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT	PINC	// Mega8&lt;br /&gt;
#endif&lt;br /&gt;
#define	LED_DIR		DDRB&lt;br /&gt;
&lt;br /&gt;
//#define XTAL		11059201L	// nominal value&lt;br /&gt;
#define XTAL		11059008L	// after measuring deviation: 1.5s/d&lt;br /&gt;
&lt;br /&gt;
#define DEBOUNCE	256L		// debounce clock (256Hz = 4msec)&lt;br /&gt;
&lt;br /&gt;
#define uchar unsigned char&lt;br /&gt;
#define uint unsigned int&lt;br /&gt;
&lt;br /&gt;
uchar prescaler;&lt;br /&gt;
uchar volatile second;			// count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*			Insert Key Debouncing Here			*/&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#if XTAL % DEBOUNCE                     // bei rest&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;		// compare DEBOUNCE - 1 times&lt;br /&gt;
#endif&lt;br /&gt;
  if( --prescaler == 0 ){&lt;br /&gt;
    prescaler = (uchar)DEBOUNCE;&lt;br /&gt;
    second++;				// exact one second over&lt;br /&gt;
#if XTAL % DEBOUNCE			// handle remainder&lt;br /&gt;
    OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1; // compare once per second&lt;br /&gt;
#endif&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  LED_DIR = 0xFF;&lt;br /&gt;
  while( KEY_INPUT &amp;amp; 1 );		// start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
  TCCR1B = 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10;		// divide by 1&lt;br /&gt;
					// clear on compare&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;          // Output Compare Register&lt;br /&gt;
  TCNT1 = 0;                            // Timmer startet mit 0&lt;br /&gt;
  second = 0;&lt;br /&gt;
  prescaler = (uchar)DEBOUNCE;          //software teiler&lt;br /&gt;
&lt;br /&gt;
  TIMSK = 1&amp;lt;&amp;lt;OCIE1A;                    // beim Vergleichswertes Compare Match                    &lt;br /&gt;
                                        // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    if( second == 60 )&lt;br /&gt;
      second = 0;&lt;br /&gt;
    LED_DIR = second;			// display second (binary)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel in Assembler===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*			Precise 1 Second Timebase			*/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*              Author: Peter Dannegger                                 */&lt;br /&gt;
;*                      danni@specs.de                                  */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
.nolist&lt;br /&gt;
.include&amp;quot;m8def.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.equ	xtal	= 11059008&lt;br /&gt;
.equ	debounce = 256&lt;br /&gt;
.equ	remainder = xtal - xtal / debounce * debounce&lt;br /&gt;
&lt;br /&gt;
.def	isreg	= r15&lt;br /&gt;
.def	wr0	= r16&lt;br /&gt;
.def	iwr0	= r17&lt;br /&gt;
.def	prescaler = r18&lt;br /&gt;
.def	second = r19&lt;br /&gt;
&lt;br /&gt;
.list&lt;br /&gt;
	rjmp	init&lt;br /&gt;
	.org	OC1Aaddr&lt;br /&gt;
	rjmp	OC1Aint&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
OC1Aint:&lt;br /&gt;
	in	isreg, sreg&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*			Insert Key Debouncing Here			*/&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
&lt;br /&gt;
	dec	prescaler&lt;br /&gt;
	brne	_oci1&lt;br /&gt;
&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
	inc	second&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
_oci1:&lt;br /&gt;
	out	sreg, isreg&lt;br /&gt;
	reti&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
init:&lt;br /&gt;
	ldi	wr0, 0xFF&lt;br /&gt;
	out	ddrb, wr0&lt;br /&gt;
	sbic	pinc, 0&lt;br /&gt;
	rjmp	init&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( ramend )&lt;br /&gt;
	out	sph, wr0&lt;br /&gt;
	ldi	wr0, low( ramend )&lt;br /&gt;
	out	spl, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10&lt;br /&gt;
	out	TCCR1B, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, wr0&lt;br /&gt;
	ldi	wr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, wr0&lt;br /&gt;
	out	tcnt1l, wr0&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;OCIE1A&lt;br /&gt;
	out	TIMSK, wr0&lt;br /&gt;
	sei&lt;br /&gt;
main:&lt;br /&gt;
	ldi	second, 0&lt;br /&gt;
_mai1:&lt;br /&gt;
	cpi	second, 60&lt;br /&gt;
	breq	main&lt;br /&gt;
	out	ddrb, second&lt;br /&gt;
	rjmp	_mai1&lt;br /&gt;
;------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Vesion mit durchlaufendem Hartwarezöhler===&lt;br /&gt;
&lt;br /&gt;
Hier sind trotzdem kleine Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Wird im Timer die Option &amp;quot;Clear On Compare Match&amp;quot; verwendet,&lt;br /&gt;
so verliert man den Overflow Interrupt.&lt;br /&gt;
Oder möchte man nebenher noch eine Zeit mit dem Capture Interrupt &lt;br /&gt;
messen, so benötigt man einen durchlaufenden Timer.&lt;br /&gt;
Um dies zu erreichen, wird OCR1A nicht fest eingestellt, sondern&lt;br /&gt;
bei jedem Aufruf um den gleichen Wert erhöht.&lt;br /&gt;
&lt;br /&gt;
In Peter&#039;s Code wurde der Rest auf einmal abgearbeitet. Damit erspart&lt;br /&gt;
man sich bei jedem Interrupt einen Vergleich und die Verarbeitungszeit&lt;br /&gt;
verkürzt sich in seinem Code. Der Unterschied zwischen kurzem und&lt;br /&gt;
langem&lt;br /&gt;
Interrupt ist hier der Rest.&lt;br /&gt;
Bei den geänderten Codeschnipseln wird der Rest gleichmäßiger&lt;br /&gt;
abgearbeitet.&lt;br /&gt;
Der Unterschied zwischen kurzem und langem Interrupt beträgt 1 Takt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ungetesteter Code für den durchlaufenden Timer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SIGNAL &lt;br /&gt;
(SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
#if XTAL % DEBOUNCE&lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE) {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um &lt;br /&gt;
              den Rest abzutragen */&lt;br /&gt;
  } else {&lt;br /&gt;
#endif&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   /* kurze Periode */&lt;br /&gt;
#if XTAL % DEBOUNCE    &lt;br /&gt;
  }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7211</id>
		<title>AVR - Die genaue Sekunde / RTC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7211"/>
		<updated>2005-05-05T15:03:06Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: /* Verbesserte Vesion mit durchlaufendem Hartwarezöhler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Oftmals sieht man Projekte, bei denen ein externer RTC-Baustein angeschlossen ist, ohne dessen Vorteil wirklich zu nutzen.&lt;br /&gt;
Der einzige Vorteil eines externen RTC ist nämlich nur, dass man die Zeitzählung während eines Ausfalls der Hauptstromversorgung über eine kleine Stützbatterie bei geringem Strombedarf fortsetzen kann. &lt;br /&gt;
&lt;br /&gt;
In allen anderen Fällen ist die zusätzliche Hardware völlig unnötig und man kann eine präzise Zeitbasis bequem mit dem Hauptquarz des Mikrokontrollers programmieren. &lt;br /&gt;
Daraus ergeben sich sogar noch zusätzliche Vorteile, wie eine geringere Temperaturabhängigkeit und höhere Güte, die Quarze im MHz-Bereich gegenüber Quarzen im kHz-Bereich besitzen.&lt;br /&gt;
Ich möchte hiermit die Angst vor dem bisschen Mathematik nehmen, welches zur Berechnung der Teilerfaktoren benötigt wird.&lt;br /&gt;
&lt;br /&gt;
==Lösung==&lt;br /&gt;
Speziell für den AVR kommen Quarze im Bereich 1MHz bis 16MHz zum Einsatz. Diese Zahlen lassen sich jedoch nicht in 16 Bit ausdrücken und somit ist ein direktes Setzen des Compare-Wertes des Timers T1 nicht möglich. &lt;br /&gt;
Deshalb unterteilt man die Quarzfrequenz in zwei Faktoren; der erste bestimmt die Periode des Timers T1 und der zweite den Reloadwert eines Registers, welches im Timerinterrupt runtergezählt wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiel== &lt;br /&gt;
Als Beispiel wird 11,0592MHz gewählt, was einem üblichen Baudratenquarz entspricht, d.h. damit können die UART Standardbautraten erzeugt werden.&lt;br /&gt;
Der Softwareteiler wird mit 256 gewählt und kann somit nur mit einem einzigen Byte realisiert werden. Für größere Werte muß der Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten als 256 muß man beachten, daß der 2.Faktor immer noch in 2 Byte paßt, um als Comparewert für T1 verwendet zu werden. &lt;br /&gt;
&lt;br /&gt;
Mit 256Hz ergibt sich eine Timerinterruptzeit von 4ms, die auch sehr gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine kann also bequem in den Timerinterrupt mit eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
Beachten muß man nur noch, dass das Nullsetzen des Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der Comparewert ist der gewünschte Teilerfaktor - 1.&lt;br /&gt;
&lt;br /&gt;
==Berechnung==&lt;br /&gt;
Die Berechnung des Comparewertes ist also sehr einfach: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059200 / 256 - 1 = 43199, Rest 0. &lt;br /&gt;
&lt;br /&gt;
Da haben wir ja noch mal Glück gehabt, es gibt keinen Rest bei der Division und die Sekunde ist exakt 256 * 43200 = 11059200 Zyklen lang. &lt;br /&gt;
&lt;br /&gt;
Nun habe ich die Uhr einen Tag laufen lassen und festgestellt, daß sie 1,5s nach geht. &lt;br /&gt;
&lt;br /&gt;
D.h. die Quarzfrequenz beträgt in Wirklichkeit: &lt;br /&gt;
&lt;br /&gt;
11059200 * (1 - 1,5 / 24 / 60 / 60) = 11059008 Hz. &lt;br /&gt;
&lt;br /&gt;
Also die ganze Rechnung nochmal: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059008 / 256 - 1 = 43198, Rest 64. &lt;br /&gt;
&lt;br /&gt;
Nun habe wir einen Rest und es würden uns jede Sekunde 64 Zyklen fehlen. Das geht natürlich nicht. &lt;br /&gt;
&lt;br /&gt;
Deshalb wird jedensmal, wenn der Softwareteiler Null ist und die Sekunde weitergezählt wird, ein anderer Comparewert geladen. Dieser ist dann um den Rest größer. Und beim nächsten Timerinterrupt wird dann wieder der Comparewert geladen, der das Ergebnis der Division war. &lt;br /&gt;
&lt;br /&gt;
Es ergeben sich somit: &lt;br /&gt;
&lt;br /&gt;
255 * (43198 + 1) + 1 * (43198 + 64  + 1) = 11059008 Zyklen, exakt, wie wir es wollten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Das Programm== &lt;br /&gt;
Nachfolgend nun das C-Programm. Da wir ja alle nicht gerne rechnen, lassen wir das einfach den C-Compiler erledigen. D.h. wir brauchen nur noch per Definition für XTAL den entsprechenden Wert eintragen und der Compiler rechnet alle nötigen Konstanten ganz alleine aus. &lt;br /&gt;
&lt;br /&gt;
So ein Compiler ist auch ziemlich faul, der merkt sofort, wenn die Operanden für eine Berechnung alles Konstanten sind. Und ehe er sich damit abquält, extra Code für diese Berechnungen zu erzeugen, rechnet er es lieber selber aus und fügt das Ergebnis direkt in den Code ein. &lt;br /&gt;
&lt;br /&gt;
Der Assembler kann auch 32-Bit Konstanten-Berechnungen ausführen. Allerdings muß man dann die entsprechenden Preprozessoroperationen benutzen. Man könnte auch eine Divisionsroutine aufrufen, aber dann würde ja echter Code erzeugt. &lt;br /&gt;
&lt;br /&gt;
===Beispiel in C===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*			Precise 1 Second Timebase			*/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                      danni@specs.de                                  */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
// Target: Mega8, 2313&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef	PINC&lt;br /&gt;
#define	KEY_INPUT	PIND	// 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT	PINC	// Mega8&lt;br /&gt;
#endif&lt;br /&gt;
#define	LED_DIR		DDRB&lt;br /&gt;
&lt;br /&gt;
//#define XTAL		11059201L	// nominal value&lt;br /&gt;
#define XTAL		11059008L	// after measuring deviation: 1.5s/d&lt;br /&gt;
&lt;br /&gt;
#define DEBOUNCE	256L		// debounce clock (256Hz = 4msec)&lt;br /&gt;
&lt;br /&gt;
#define uchar unsigned char&lt;br /&gt;
#define uint unsigned int&lt;br /&gt;
&lt;br /&gt;
uchar prescaler;&lt;br /&gt;
uchar volatile second;			// count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*			Insert Key Debouncing Here			*/&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#if XTAL % DEBOUNCE                     // bei rest&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;		// compare DEBOUNCE - 1 times&lt;br /&gt;
#endif&lt;br /&gt;
  if( --prescaler == 0 ){&lt;br /&gt;
    prescaler = (uchar)DEBOUNCE;&lt;br /&gt;
    second++;				// exact one second over&lt;br /&gt;
#if XTAL % DEBOUNCE			// handle remainder&lt;br /&gt;
    OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1; // compare once per second&lt;br /&gt;
#endif&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  LED_DIR = 0xFF;&lt;br /&gt;
  while( KEY_INPUT &amp;amp; 1 );		// start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
  TCCR1B = 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10;		// divide by 1&lt;br /&gt;
					// clear on compare&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;          // Output Compare Register&lt;br /&gt;
  TCNT1 = 0;                            // Timmer startet mit 0&lt;br /&gt;
  second = 0;&lt;br /&gt;
  prescaler = (uchar)DEBOUNCE;          //software teiler&lt;br /&gt;
&lt;br /&gt;
  TIMSK = 1&amp;lt;&amp;lt;OCIE1A;                    // beim Vergleichswertes Compare Match                    &lt;br /&gt;
                                        // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    if( second == 60 )&lt;br /&gt;
      second = 0;&lt;br /&gt;
    LED_DIR = second;			// display second (binary)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel in Assembler===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*			Precise 1 Second Timebase			*/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*              Author: Peter Dannegger                                 */&lt;br /&gt;
;*                      danni@specs.de                                  */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
.nolist&lt;br /&gt;
.include&amp;quot;m8def.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.equ	xtal	= 11059008&lt;br /&gt;
.equ	debounce = 256&lt;br /&gt;
.equ	remainder = xtal - xtal / debounce * debounce&lt;br /&gt;
&lt;br /&gt;
.def	isreg	= r15&lt;br /&gt;
.def	wr0	= r16&lt;br /&gt;
.def	iwr0	= r17&lt;br /&gt;
.def	prescaler = r18&lt;br /&gt;
.def	second = r19&lt;br /&gt;
&lt;br /&gt;
.list&lt;br /&gt;
	rjmp	init&lt;br /&gt;
	.org	OC1Aaddr&lt;br /&gt;
	rjmp	OC1Aint&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
OC1Aint:&lt;br /&gt;
	in	isreg, sreg&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*			Insert Key Debouncing Here			*/&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
&lt;br /&gt;
	dec	prescaler&lt;br /&gt;
	brne	_oci1&lt;br /&gt;
&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
	inc	second&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
_oci1:&lt;br /&gt;
	out	sreg, isreg&lt;br /&gt;
	reti&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
init:&lt;br /&gt;
	ldi	wr0, 0xFF&lt;br /&gt;
	out	ddrb, wr0&lt;br /&gt;
	sbic	pinc, 0&lt;br /&gt;
	rjmp	init&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( ramend )&lt;br /&gt;
	out	sph, wr0&lt;br /&gt;
	ldi	wr0, low( ramend )&lt;br /&gt;
	out	spl, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10&lt;br /&gt;
	out	TCCR1B, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, wr0&lt;br /&gt;
	ldi	wr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, wr0&lt;br /&gt;
	out	tcnt1l, wr0&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;OCIE1A&lt;br /&gt;
	out	TIMSK, wr0&lt;br /&gt;
	sei&lt;br /&gt;
main:&lt;br /&gt;
	ldi	second, 0&lt;br /&gt;
_mai1:&lt;br /&gt;
	cpi	second, 60&lt;br /&gt;
	breq	main&lt;br /&gt;
	out	ddrb, second&lt;br /&gt;
	rjmp	_mai1&lt;br /&gt;
;------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Verbesserte Vesion mit durchlaufendem Hartwarezöhler==&lt;br /&gt;
&lt;br /&gt;
Hier sind trotzdem kleine Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Wird im Timer die Option &amp;quot;Clear On Compare Match&amp;quot; verwendet,&lt;br /&gt;
so verliert man den Overflow Interrupt.&lt;br /&gt;
Oder möchte man nebenher noch eine Zeit mit dem Capture Interrupt &lt;br /&gt;
messen, so benötigt man einen durchlaufenden Timer.&lt;br /&gt;
Um dies zu erreichen, wird OCR1A nicht fest eingestellt, sondern&lt;br /&gt;
bei jedem Aufruf um den gleichen Wert erhöht.&lt;br /&gt;
&lt;br /&gt;
In Peter&#039;s Code wurde der Rest auf einmal abgearbeitet. Damit erspart&lt;br /&gt;
man sich bei jedem Interrupt einen Vergleich und die Verarbeitungszeit&lt;br /&gt;
verkürzt sich in seinem Code. Der Unterschied zwischen kurzem und&lt;br /&gt;
langem&lt;br /&gt;
Interrupt ist hier der Rest.&lt;br /&gt;
Bei den geänderten Codeschnipseln wird der Rest gleichmäßiger&lt;br /&gt;
abgearbeitet.&lt;br /&gt;
Der Unterschied zwischen kurzem und langem Interrupt beträgt 1 Takt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ungetesteter Code für den durchlaufenden Timer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SIGNAL &lt;br /&gt;
(SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
#if XTAL % DEBOUNCE&lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE) {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um &lt;br /&gt;
              den Rest abzutragen */&lt;br /&gt;
  } else {&lt;br /&gt;
#endif&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   /* kurze Periode */&lt;br /&gt;
#if XTAL % DEBOUNCE    &lt;br /&gt;
  }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7210</id>
		<title>AVR - Die genaue Sekunde / RTC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7210"/>
		<updated>2005-05-05T15:02:35Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Oftmals sieht man Projekte, bei denen ein externer RTC-Baustein angeschlossen ist, ohne dessen Vorteil wirklich zu nutzen.&lt;br /&gt;
Der einzige Vorteil eines externen RTC ist nämlich nur, dass man die Zeitzählung während eines Ausfalls der Hauptstromversorgung über eine kleine Stützbatterie bei geringem Strombedarf fortsetzen kann. &lt;br /&gt;
&lt;br /&gt;
In allen anderen Fällen ist die zusätzliche Hardware völlig unnötig und man kann eine präzise Zeitbasis bequem mit dem Hauptquarz des Mikrokontrollers programmieren. &lt;br /&gt;
Daraus ergeben sich sogar noch zusätzliche Vorteile, wie eine geringere Temperaturabhängigkeit und höhere Güte, die Quarze im MHz-Bereich gegenüber Quarzen im kHz-Bereich besitzen.&lt;br /&gt;
Ich möchte hiermit die Angst vor dem bisschen Mathematik nehmen, welches zur Berechnung der Teilerfaktoren benötigt wird.&lt;br /&gt;
&lt;br /&gt;
==Lösung==&lt;br /&gt;
Speziell für den AVR kommen Quarze im Bereich 1MHz bis 16MHz zum Einsatz. Diese Zahlen lassen sich jedoch nicht in 16 Bit ausdrücken und somit ist ein direktes Setzen des Compare-Wertes des Timers T1 nicht möglich. &lt;br /&gt;
Deshalb unterteilt man die Quarzfrequenz in zwei Faktoren; der erste bestimmt die Periode des Timers T1 und der zweite den Reloadwert eines Registers, welches im Timerinterrupt runtergezählt wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiel== &lt;br /&gt;
Als Beispiel wird 11,0592MHz gewählt, was einem üblichen Baudratenquarz entspricht, d.h. damit können die UART Standardbautraten erzeugt werden.&lt;br /&gt;
Der Softwareteiler wird mit 256 gewählt und kann somit nur mit einem einzigen Byte realisiert werden. Für größere Werte muß der Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten als 256 muß man beachten, daß der 2.Faktor immer noch in 2 Byte paßt, um als Comparewert für T1 verwendet zu werden. &lt;br /&gt;
&lt;br /&gt;
Mit 256Hz ergibt sich eine Timerinterruptzeit von 4ms, die auch sehr gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine kann also bequem in den Timerinterrupt mit eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
Beachten muß man nur noch, dass das Nullsetzen des Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der Comparewert ist der gewünschte Teilerfaktor - 1.&lt;br /&gt;
&lt;br /&gt;
==Berechnung==&lt;br /&gt;
Die Berechnung des Comparewertes ist also sehr einfach: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059200 / 256 - 1 = 43199, Rest 0. &lt;br /&gt;
&lt;br /&gt;
Da haben wir ja noch mal Glück gehabt, es gibt keinen Rest bei der Division und die Sekunde ist exakt 256 * 43200 = 11059200 Zyklen lang. &lt;br /&gt;
&lt;br /&gt;
Nun habe ich die Uhr einen Tag laufen lassen und festgestellt, daß sie 1,5s nach geht. &lt;br /&gt;
&lt;br /&gt;
D.h. die Quarzfrequenz beträgt in Wirklichkeit: &lt;br /&gt;
&lt;br /&gt;
11059200 * (1 - 1,5 / 24 / 60 / 60) = 11059008 Hz. &lt;br /&gt;
&lt;br /&gt;
Also die ganze Rechnung nochmal: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059008 / 256 - 1 = 43198, Rest 64. &lt;br /&gt;
&lt;br /&gt;
Nun habe wir einen Rest und es würden uns jede Sekunde 64 Zyklen fehlen. Das geht natürlich nicht. &lt;br /&gt;
&lt;br /&gt;
Deshalb wird jedensmal, wenn der Softwareteiler Null ist und die Sekunde weitergezählt wird, ein anderer Comparewert geladen. Dieser ist dann um den Rest größer. Und beim nächsten Timerinterrupt wird dann wieder der Comparewert geladen, der das Ergebnis der Division war. &lt;br /&gt;
&lt;br /&gt;
Es ergeben sich somit: &lt;br /&gt;
&lt;br /&gt;
255 * (43198 + 1) + 1 * (43198 + 64  + 1) = 11059008 Zyklen, exakt, wie wir es wollten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Das Programm== &lt;br /&gt;
Nachfolgend nun das C-Programm. Da wir ja alle nicht gerne rechnen, lassen wir das einfach den C-Compiler erledigen. D.h. wir brauchen nur noch per Definition für XTAL den entsprechenden Wert eintragen und der Compiler rechnet alle nötigen Konstanten ganz alleine aus. &lt;br /&gt;
&lt;br /&gt;
So ein Compiler ist auch ziemlich faul, der merkt sofort, wenn die Operanden für eine Berechnung alles Konstanten sind. Und ehe er sich damit abquält, extra Code für diese Berechnungen zu erzeugen, rechnet er es lieber selber aus und fügt das Ergebnis direkt in den Code ein. &lt;br /&gt;
&lt;br /&gt;
Der Assembler kann auch 32-Bit Konstanten-Berechnungen ausführen. Allerdings muß man dann die entsprechenden Preprozessoroperationen benutzen. Man könnte auch eine Divisionsroutine aufrufen, aber dann würde ja echter Code erzeugt. &lt;br /&gt;
&lt;br /&gt;
===Beispiel in C===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*			Precise 1 Second Timebase			*/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                      danni@specs.de                                  */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
// Target: Mega8, 2313&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef	PINC&lt;br /&gt;
#define	KEY_INPUT	PIND	// 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT	PINC	// Mega8&lt;br /&gt;
#endif&lt;br /&gt;
#define	LED_DIR		DDRB&lt;br /&gt;
&lt;br /&gt;
//#define XTAL		11059201L	// nominal value&lt;br /&gt;
#define XTAL		11059008L	// after measuring deviation: 1.5s/d&lt;br /&gt;
&lt;br /&gt;
#define DEBOUNCE	256L		// debounce clock (256Hz = 4msec)&lt;br /&gt;
&lt;br /&gt;
#define uchar unsigned char&lt;br /&gt;
#define uint unsigned int&lt;br /&gt;
&lt;br /&gt;
uchar prescaler;&lt;br /&gt;
uchar volatile second;			// count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*			Insert Key Debouncing Here			*/&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#if XTAL % DEBOUNCE                     // bei rest&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;		// compare DEBOUNCE - 1 times&lt;br /&gt;
#endif&lt;br /&gt;
  if( --prescaler == 0 ){&lt;br /&gt;
    prescaler = (uchar)DEBOUNCE;&lt;br /&gt;
    second++;				// exact one second over&lt;br /&gt;
#if XTAL % DEBOUNCE			// handle remainder&lt;br /&gt;
    OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1; // compare once per second&lt;br /&gt;
#endif&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  LED_DIR = 0xFF;&lt;br /&gt;
  while( KEY_INPUT &amp;amp; 1 );		// start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
  TCCR1B = 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10;		// divide by 1&lt;br /&gt;
					// clear on compare&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;          // Output Compare Register&lt;br /&gt;
  TCNT1 = 0;                            // Timmer startet mit 0&lt;br /&gt;
  second = 0;&lt;br /&gt;
  prescaler = (uchar)DEBOUNCE;          //software teiler&lt;br /&gt;
&lt;br /&gt;
  TIMSK = 1&amp;lt;&amp;lt;OCIE1A;                    // beim Vergleichswertes Compare Match                    &lt;br /&gt;
                                        // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    if( second == 60 )&lt;br /&gt;
      second = 0;&lt;br /&gt;
    LED_DIR = second;			// display second (binary)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel in Assembler===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*			Precise 1 Second Timebase			*/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*              Author: Peter Dannegger                                 */&lt;br /&gt;
;*                      danni@specs.de                                  */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
.nolist&lt;br /&gt;
.include&amp;quot;m8def.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.equ	xtal	= 11059008&lt;br /&gt;
.equ	debounce = 256&lt;br /&gt;
.equ	remainder = xtal - xtal / debounce * debounce&lt;br /&gt;
&lt;br /&gt;
.def	isreg	= r15&lt;br /&gt;
.def	wr0	= r16&lt;br /&gt;
.def	iwr0	= r17&lt;br /&gt;
.def	prescaler = r18&lt;br /&gt;
.def	second = r19&lt;br /&gt;
&lt;br /&gt;
.list&lt;br /&gt;
	rjmp	init&lt;br /&gt;
	.org	OC1Aaddr&lt;br /&gt;
	rjmp	OC1Aint&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
OC1Aint:&lt;br /&gt;
	in	isreg, sreg&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*			Insert Key Debouncing Here			*/&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
&lt;br /&gt;
	dec	prescaler&lt;br /&gt;
	brne	_oci1&lt;br /&gt;
&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
	inc	second&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
_oci1:&lt;br /&gt;
	out	sreg, isreg&lt;br /&gt;
	reti&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
init:&lt;br /&gt;
	ldi	wr0, 0xFF&lt;br /&gt;
	out	ddrb, wr0&lt;br /&gt;
	sbic	pinc, 0&lt;br /&gt;
	rjmp	init&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( ramend )&lt;br /&gt;
	out	sph, wr0&lt;br /&gt;
	ldi	wr0, low( ramend )&lt;br /&gt;
	out	spl, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10&lt;br /&gt;
	out	TCCR1B, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, wr0&lt;br /&gt;
	ldi	wr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, wr0&lt;br /&gt;
	out	tcnt1l, wr0&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;OCIE1A&lt;br /&gt;
	out	TIMSK, wr0&lt;br /&gt;
	sei&lt;br /&gt;
main:&lt;br /&gt;
	ldi	second, 0&lt;br /&gt;
_mai1:&lt;br /&gt;
	cpi	second, 60&lt;br /&gt;
	breq	main&lt;br /&gt;
	out	ddrb, second&lt;br /&gt;
	rjmp	_mai1&lt;br /&gt;
;------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Verbesserte Vesion mit durchlaufendem Hartwarezöhler==&lt;br /&gt;
&lt;br /&gt;
Hier sind trotzdem kleine Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Wird im Timer die Option &amp;quot;Clear On Compare Match&amp;quot; verwendet,&lt;br /&gt;
so verliert man den Overflow Interrupt.&lt;br /&gt;
Oder möchte man nebenher noch eine Zeit mit dem Capture Interrupt &lt;br /&gt;
messen, so benötigt man einen durchlaufenden Timer.&lt;br /&gt;
Um dies zu erreichen, wird OCR1A nicht fest eingestellt, sondern&lt;br /&gt;
bei jedem Aufruf um den gleichen Wert erhöht.&lt;br /&gt;
&lt;br /&gt;
In Peter&#039;s Code wurde der Rest auf einmal abgearbeitet. Damit erspart&lt;br /&gt;
man sich bei jedem Interrupt einen Vergleich und die Verarbeitungszeit&lt;br /&gt;
verkürzt sich in seinem Code. Der Unterschied zwischen kurzem und&lt;br /&gt;
langem&lt;br /&gt;
Interrupt ist hier der Rest.&lt;br /&gt;
Bei den geänderten Codeschnipseln wird der Rest gleichmäßiger&lt;br /&gt;
abgearbeitet.&lt;br /&gt;
Der Unterschied zwischen kurzem und langem Interrupt beträgt 1 Takt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ungetesteter Code für den durchlaufenden Timer:&lt;br /&gt;
==================================================&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SIGNAL &lt;br /&gt;
(SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
#if XTAL % DEBOUNCE&lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE) {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um &lt;br /&gt;
              den Rest abzutragen */&lt;br /&gt;
  } else {&lt;br /&gt;
#endif&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   /* kurze Periode */&lt;br /&gt;
#if XTAL % DEBOUNCE    &lt;br /&gt;
  }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7209</id>
		<title>AVR - Die genaue Sekunde / RTC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR_-_Die_genaue_Sekunde_/_RTC&amp;diff=7209"/>
		<updated>2005-05-05T15:00:54Z</updated>

		<summary type="html">&lt;p&gt;84.57.129.243: /* Beispiel in Assembler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Oftmals sieht man Projekte, bei denen ein externer RTC-Baustein angeschlossen ist, ohne dessen Vorteil wirklich zu nutzen.&lt;br /&gt;
Der einzige Vorteil eines externen RTC ist nämlich nur, dass man die Zeitzählung während eines Ausfalls der Hauptstromversorgung über eine kleine Stützbatterie bei geringem Strombedarf fortsetzen kann. &lt;br /&gt;
&lt;br /&gt;
In allen anderen Fällen ist die zusätzliche Hardware völlig unnötig und man kann eine präzise Zeitbasis bequem mit dem Hauptquarz des Mikrokontrollers programmieren. &lt;br /&gt;
Daraus ergeben sich sogar noch zusätzliche Vorteile, wie eine geringere Temperaturabhängigkeit und höhere Güte, die Quarze im MHz-Bereich gegenüber Quarzen im kHz-Bereich besitzen.&lt;br /&gt;
Ich möchte hiermit die Angst vor dem bisschen Mathematik nehmen, welches zur Berechnung der Teilerfaktoren benötigt wird.&lt;br /&gt;
&lt;br /&gt;
==Lösung==&lt;br /&gt;
Speziell für den AVR kommen Quarze im Bereich 1MHz bis 16MHz zum Einsatz. Diese Zahlen lassen sich jedoch nicht in 16 Bit ausdrücken und somit ist ein direktes Setzen des Compare-Wertes des Timers T1 nicht möglich. &lt;br /&gt;
Deshalb unterteilt man die Quarzfrequenz in zwei Faktoren; der erste bestimmt die Periode des Timers T1 und der zweite den Reloadwert eines Registers, welches im Timerinterrupt runtergezählt wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiel== &lt;br /&gt;
Als Beispiel wird 11,0592MHz gewählt, was einem üblichen Baudratenquarz entspricht, d.h. damit können die UART Standardbautraten erzeugt werden.&lt;br /&gt;
Der Softwareteiler wird mit 256 gewählt und kann somit nur mit einem einzigen Byte realisiert werden. Für größere Werte muß der Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten als 256 muß man beachten, daß der 2.Faktor immer noch in 2 Byte paßt, um als Comparewert für T1 verwendet zu werden. &lt;br /&gt;
&lt;br /&gt;
Mit 256Hz ergibt sich eine Timerinterruptzeit von 4ms, die auch sehr gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine kann also bequem in den Timerinterrupt mit eingefügt werden. &lt;br /&gt;
&lt;br /&gt;
Beachten muß man nur noch, dass das Nullsetzen des Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der Comparewert ist der gewünschte Teilerfaktor - 1.&lt;br /&gt;
&lt;br /&gt;
==Berechnung==&lt;br /&gt;
Die Berechnung des Comparewertes ist also sehr einfach: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059200 / 256 - 1 = 43199, Rest 0. &lt;br /&gt;
&lt;br /&gt;
Da haben wir ja noch mal Glück gehabt, es gibt keinen Rest bei der Division und die Sekunde ist exakt 256 * 43200 = 11059200 Zyklen lang. &lt;br /&gt;
&lt;br /&gt;
Nun habe ich die Uhr einen Tag laufen lassen und festgestellt, daß sie 1,5s nach geht. &lt;br /&gt;
&lt;br /&gt;
D.h. die Quarzfrequenz beträgt in Wirklichkeit: &lt;br /&gt;
&lt;br /&gt;
11059200 * (1 - 1,5 / 24 / 60 / 60) = 11059008 Hz. &lt;br /&gt;
&lt;br /&gt;
Also die ganze Rechnung nochmal: &lt;br /&gt;
&lt;br /&gt;
OCR1A = 11059008 / 256 - 1 = 43198, Rest 64. &lt;br /&gt;
&lt;br /&gt;
Nun habe wir einen Rest und es würden uns jede Sekunde 64 Zyklen fehlen. Das geht natürlich nicht. &lt;br /&gt;
&lt;br /&gt;
Deshalb wird jedensmal, wenn der Softwareteiler Null ist und die Sekunde weitergezählt wird, ein anderer Comparewert geladen. Dieser ist dann um den Rest größer. Und beim nächsten Timerinterrupt wird dann wieder der Comparewert geladen, der das Ergebnis der Division war. &lt;br /&gt;
&lt;br /&gt;
Es ergeben sich somit: &lt;br /&gt;
&lt;br /&gt;
255 * (43198 + 1) + 1 * (43198 + 64  + 1) = 11059008 Zyklen, exakt, wie wir es wollten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Das Programm== &lt;br /&gt;
Nachfolgend nun das C-Programm. Da wir ja alle nicht gerne rechnen, lassen wir das einfach den C-Compiler erledigen. D.h. wir brauchen nur noch per Definition für XTAL den entsprechenden Wert eintragen und der Compiler rechnet alle nötigen Konstanten ganz alleine aus. &lt;br /&gt;
&lt;br /&gt;
So ein Compiler ist auch ziemlich faul, der merkt sofort, wenn die Operanden für eine Berechnung alles Konstanten sind. Und ehe er sich damit abquält, extra Code für diese Berechnungen zu erzeugen, rechnet er es lieber selber aus und fügt das Ergebnis direkt in den Code ein. &lt;br /&gt;
&lt;br /&gt;
Der Assembler kann auch 32-Bit Konstanten-Berechnungen ausführen. Allerdings muß man dann die entsprechenden Preprozessoroperationen benutzen. Man könnte auch eine Divisionsroutine aufrufen, aber dann würde ja echter Code erzeugt. &lt;br /&gt;
&lt;br /&gt;
===Beispiel in C===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*			Precise 1 Second Timebase			*/&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/*              Author: Peter Dannegger                                 */&lt;br /&gt;
/*                      danni@specs.de                                  */&lt;br /&gt;
/*                                                                      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
// Target: Mega8, 2313&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;signal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef OCR1A&lt;br /&gt;
#define OCR1A OCR1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef WGM12&lt;br /&gt;
#define WGM12 CTC1	// 2313 support&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#ifndef	PINC&lt;br /&gt;
#define	KEY_INPUT	PIND	// 2313&lt;br /&gt;
#else&lt;br /&gt;
#define KEY_INPUT	PINC	// Mega8&lt;br /&gt;
#endif&lt;br /&gt;
#define	LED_DIR		DDRB&lt;br /&gt;
&lt;br /&gt;
//#define XTAL		11059201L	// nominal value&lt;br /&gt;
#define XTAL		11059008L	// after measuring deviation: 1.5s/d&lt;br /&gt;
&lt;br /&gt;
#define DEBOUNCE	256L		// debounce clock (256Hz = 4msec)&lt;br /&gt;
&lt;br /&gt;
#define uchar unsigned char&lt;br /&gt;
#define uint unsigned int&lt;br /&gt;
&lt;br /&gt;
uchar prescaler;&lt;br /&gt;
uchar volatile second;			// count seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
{&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*			Insert Key Debouncing Here			*/&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
#if XTAL % DEBOUNCE                     // bei rest&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;		// compare DEBOUNCE - 1 times&lt;br /&gt;
#endif&lt;br /&gt;
  if( --prescaler == 0 ){&lt;br /&gt;
    prescaler = (uchar)DEBOUNCE;&lt;br /&gt;
    second++;				// exact one second over&lt;br /&gt;
#if XTAL % DEBOUNCE			// handle remainder&lt;br /&gt;
    OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1; // compare once per second&lt;br /&gt;
#endif&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main( void )&lt;br /&gt;
{&lt;br /&gt;
  LED_DIR = 0xFF;&lt;br /&gt;
  while( KEY_INPUT &amp;amp; 1 );		// start with key 0 pressed&lt;br /&gt;
&lt;br /&gt;
  TCCR1B = 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10;		// divide by 1&lt;br /&gt;
					// clear on compare&lt;br /&gt;
  OCR1A = XTAL / DEBOUNCE - 1;          // Output Compare Register&lt;br /&gt;
  TCNT1 = 0;                            // Timmer startet mit 0&lt;br /&gt;
  second = 0;&lt;br /&gt;
  prescaler = (uchar)DEBOUNCE;          //software teiler&lt;br /&gt;
&lt;br /&gt;
  TIMSK = 1&amp;lt;&amp;lt;OCIE1A;                    // beim Vergleichswertes Compare Match                    &lt;br /&gt;
                                        // Interrupt (SIG_OUTPUT_COMPARE1A)&lt;br /&gt;
  sei();&lt;br /&gt;
&lt;br /&gt;
  for(;;){&lt;br /&gt;
    if( second == 60 )&lt;br /&gt;
      second = 0;&lt;br /&gt;
    LED_DIR = second;			// display second (binary)&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel in Assembler===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*			Precise 1 Second Timebase			*/&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;*              Author: Peter Dannegger                                 */&lt;br /&gt;
;*                      danni@specs.de                                  */&lt;br /&gt;
;*                                                                      */&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
.nolist&lt;br /&gt;
.include&amp;quot;m8def.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
.equ	xtal	= 11059008&lt;br /&gt;
.equ	debounce = 256&lt;br /&gt;
.equ	remainder = xtal - xtal / debounce * debounce&lt;br /&gt;
&lt;br /&gt;
.def	isreg	= r15&lt;br /&gt;
.def	wr0	= r16&lt;br /&gt;
.def	iwr0	= r17&lt;br /&gt;
.def	prescaler = r18&lt;br /&gt;
.def	second = r19&lt;br /&gt;
&lt;br /&gt;
.list&lt;br /&gt;
	rjmp	init&lt;br /&gt;
	.org	OC1Aaddr&lt;br /&gt;
	rjmp	OC1Aint&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
OC1Aint:&lt;br /&gt;
	in	isreg, sreg&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
;*			Insert Key Debouncing Here			*/&lt;br /&gt;
;************************************************************************/&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
&lt;br /&gt;
	dec	prescaler&lt;br /&gt;
	brne	_oci1&lt;br /&gt;
&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
	inc	second&lt;br /&gt;
&lt;br /&gt;
	ldi	iwr0, high( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1ah, iwr0&lt;br /&gt;
	ldi	iwr0, low( xtal / debounce + remainder - 1 )&lt;br /&gt;
	out	ocr1al, iwr0&lt;br /&gt;
_oci1:&lt;br /&gt;
	out	sreg, isreg&lt;br /&gt;
	reti&lt;br /&gt;
;-------------------------------------------------------------------------&lt;br /&gt;
init:&lt;br /&gt;
	ldi	wr0, 0xFF&lt;br /&gt;
	out	ddrb, wr0&lt;br /&gt;
	sbic	pinc, 0&lt;br /&gt;
	rjmp	init&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( ramend )&lt;br /&gt;
	out	sph, wr0&lt;br /&gt;
	ldi	wr0, low( ramend )&lt;br /&gt;
	out	spl, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;WGM12^1&amp;lt;&amp;lt;CS10&lt;br /&gt;
	out	TCCR1B, wr0&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, high( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1ah, wr0&lt;br /&gt;
	ldi	wr0, low( xtal / debounce - 1 )&lt;br /&gt;
	out	ocr1al, wr0&lt;br /&gt;
	out	tcnt1l, wr0&lt;br /&gt;
	ldi	prescaler, debounce&lt;br /&gt;
&lt;br /&gt;
	ldi	wr0, 1&amp;lt;&amp;lt;OCIE1A&lt;br /&gt;
	out	TIMSK, wr0&lt;br /&gt;
	sei&lt;br /&gt;
main:&lt;br /&gt;
	ldi	second, 0&lt;br /&gt;
_mai1:&lt;br /&gt;
	cpi	second, 60&lt;br /&gt;
	breq	main&lt;br /&gt;
	out	ddrb, second&lt;br /&gt;
	rjmp	_mai1&lt;br /&gt;
;------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Verbesserte Vesion mit durchlaufendem Hartwarezöhler==&lt;br /&gt;
&lt;br /&gt;
Hier sind trotzdem kleine Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Wird im Timer die Option &amp;quot;Clear On Compare Match&amp;quot; verwendet,&lt;br /&gt;
so verliert man den Overflow Interrupt.&lt;br /&gt;
Oder möchte man nebenher noch eine Zeit mit dem Capture Interrupt &lt;br /&gt;
messen, so benötigt man einen durchlaufenden Timer.&lt;br /&gt;
Um dies zu erreichen, wird OCR1A nicht fest eingestellt, sondern&lt;br /&gt;
bei jedem Aufruf um den gleichen Wert erhöht.&lt;br /&gt;
&lt;br /&gt;
In Peter&#039;s Code wurde der Rest auf einmal abgearbeitet. Damit erspart&lt;br /&gt;
man sich bei jedem Interrupt einen Vergleich und die Verarbeitungszeit&lt;br /&gt;
verkürzt sich in seinem Code. Der Unterschied zwischen kurzem und&lt;br /&gt;
langem&lt;br /&gt;
Interrupt ist hier der Rest.&lt;br /&gt;
Bei den geänderten Codeschnipseln wird der Rest gleichmäßiger&lt;br /&gt;
abgearbeitet.&lt;br /&gt;
Der Unterschied zwischen kurzem und langem Interrupt beträgt 1 Takt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ungetesteter Code für den durchlaufenden Timer:&lt;br /&gt;
==================================================&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SIGNAL &lt;br /&gt;
(SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here    */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE) {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um &lt;br /&gt;
              den Rest abzutragen */&lt;br /&gt;
  } else {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   // kurze Periode&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/Um im Sonderfall, daß XTAL%DEBOUNCE null ist, keinen unnötigen&lt;br /&gt;
/Code zu haben, kann man wieder Präprozessoranweisungen verwenden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIGNAL &lt;br /&gt;
(SIG_OUTPUT_COMPARE1A) {&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
/*      Insert Key Debouncing Here      */&lt;br /&gt;
/************************************************************************/&lt;br /&gt;
&lt;br /&gt;
  if( --prescaler == 0 ){ &lt;br /&gt;
    prescaler = DEBOUNCE;&lt;br /&gt;
    second++;      // exact one second over  &lt;br /&gt;
  }  &lt;br /&gt;
#if XTAL % DEBOUNCE&lt;br /&gt;
  if (prescaler &amp;lt;= XTAL % DEBOUNCE) {&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE +1;   /* um 1 Takt längere Periode um &lt;br /&gt;
              den Rest abzutragen */&lt;br /&gt;
  } else {&lt;br /&gt;
#endif&lt;br /&gt;
    OCR1A += XTAL / DEBOUNCE;   /* kurze Periode */&lt;br /&gt;
#if XTAL % DEBOUNCE    &lt;br /&gt;
  }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>84.57.129.243</name></author>
	</entry>
</feed>