Ein erstes Assembler-Projekt



Ähnliche Dokumente
Pascal-Compiler für den Attiny

Urlaubsregel in David

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Kommunikations-Management

Folgeanleitung für Fachlehrer

Wie halte ich Ordnung auf meiner Festplatte?

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

25 Import der Beispiele

1 Einleitung. Lernziele. Dokumente vergleichen. Änderungen mit Überarbeitungsfenster bearbeiten Lerndauer. 4 Minuten.

Hex Datei mit Atmel Studio 6 erstellen

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

ICS-Addin. Benutzerhandbuch. Version: 1.0

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Überprüfung der digital signierten E-Rechnung

Handbuch für Easy Mail in Leicht Lesen

E-Cinema Central. VPN-Client Installation

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Diese sind auf unserer Internetseite im Downloadbereich für den Palm zu finden:

TeamSpeak3 Einrichten

Folgeanleitung für Klassenlehrer

Was man mit dem Computer alles machen kann

Lernwerkstatt 9 privat- Freischaltung

Computeria Solothurn

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Installieren von Microsoft Office Version 2.1

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Windows 7 Winbuilder USB Stick

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Stepperfocuser 2.0 mit Bootloader

Der Kalender im ipad

Installation und Nutzung des Fax-Service KU.Fax

Auswertung erstellen: Liste mit -

Arbeiten mit dem Outlook Add-In

Dateien mit Hilfe des Dateimanagers vom USB-Stick kopieren und auf der Festplatte speichern

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Professionelle Seminare im Bereich MS-Office

Inkrementelles Backup

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Installation älterer Programmversionen unter Windows 7

Tutorial -

! " # $ " % & Nicki Wruck worldwidewruck

Neue Steuererklärung 2013 erstellen

ARCO Software - Anleitung zur Umstellung der MWSt

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Übung - Datensicherung und Wiederherstellung in Windows 7

Installationsanleitungen

TopKontor - Kurzleitfaden

SICHERN DER FAVORITEN

Kompatibilitätsmodus und UAC

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Virtual Private Network

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Update-Anleitung für SFirm 3.1

Anleitung zur Verwendung der VVW-Word-Vorlagen

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

teischl.com Software Design & Services e.u. office@teischl.com

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Was Sie bald kennen und können

OS Anwendungsbeschreibung

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Einrichtung eines -Zugangs mit Mozilla Thunderbird

STRATO Mail Einrichtung Mozilla Thunderbird

Anleitung zum Einspielen der Demodaten

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

INTERNET UND MMS MIT DEM QTEK2020 MARCO 28. MÄRZ 04

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Bilder zum Upload verkleinern

Datenbanken Kapitel 2

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Hilfe zur Urlaubsplanung und Zeiterfassung

Installation und Inbetriebnahme von Microsoft Visual C Express

Durchführung der Datenübernahme nach Reisekosten 2011

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

Handbuch. Adressen und Adressenpflege

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Partnerportal Installateure Registrierung

26. November EFS Übung. Ziele. Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) 2. Mit adm_bill eine Text Datei verschlüsseln

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Transkript:

Das Attiny-Projekt Ein erstes Assembler-Projekt 1 Ein erstes Assembler-Projekt In diesem Kapitel wollen wir ein erstes einfaches Assembler-Programm für unsere Attiny-Platine schreiben. Worum soll es gehen? Wir wollen, dass der Attiny2313 an seinem Ausgang PortB.0 ein hochfrequentes Signal von 500 khz abgibt. Da unser Attiny2313 selbst mit 4,0 MHz getaktet ist, stellt dies ein zeitkritisches Problem dar - genau das Richtige für unsere ersten Assembler- Versuche. Öffnen wir also unseren Assembler AVR-Studio 4 1.Es erscheint der folgende Dialog zum Erstellen eines neuen Projektes: Abb. 1 Wir betätigen die Schaltfläche Create New Projekt. Ein weiterer Dialog wird gestartet (Abb. 2);hier geben wir in dem Textfeld rechts oben als Projektname hf_sender ein. Darunter lassen wir die beiden Häkchen stehen. Dadurch wird eine (leere) Startdatei hf-sender.asm erzeugt, in die wir gleich den Quelltext hineinschreiben werden. Außerdem wird ein eigener Ordner (Folder) für unser Projekt angelegt. Unter Location geben wir noch ein, wo dieser neue Ordner liegen soll. Anschließend beenden wir diesen Dialog mit der Schaltfläche Finish. (Nur wer später den eingebauten Simulator benutzen möchte, sollte an dieser Stelle mit Next die erforderlichen Einstellungen vornehmen.) 1 Hinweise zur Installation finden Sie im Anhang.

Das Attiny-Projekt Ein erstes Assembler-Projekt 2 Abb. 2 Damit sind alle Vorbereitungen abgeschlossen und im Arbeitsbereich (Workspace) erkennt man, dass unser Projekt lediglich aus der Datei hf_sender.asm besteht (Abb. 3). Diese Datei wird in dem Fenster rechts daneben angezeigt. In diese Datei müssen wir nun die erforderlichen Befehle hineinschreiben. Zunächst wollen wir uns damit begnügen, durch das Programm lediglich PortB.0 auf High legen zu lassen. Das hat auch den Vorteil, dass wir das Ergebnis mit einer Leuchtdiode einfach überprüfen können. Abbildung 3 Geben wir also die benötigten Zeilen ein: Welche Bedeutung sie haben, darauf werden wir gleich noch ausführlich eingehen.

Das Attiny-Projekt Ein erstes Assembler-Projekt 3.include tn2313def.inc rjmp init init: sbi ddrb, 0 sbi portb, 0 ende: rjmp ende Nun speichern wir diese Datei mit File - Save (bzw. Diskettensymbol). Anschließend lassen wir den Quelltext assemblieren mit Project - Build. Im Ausgabebereich (Output) sehen wir, dass unser Programm im assemblierter Form lediglich 4 Wörter, also 8 Bytes beansprucht. Sollten hier irgendwo rote statt grüne Ampeln auftauchen, ist der Quelltext fehlerhaft. Klicken Sie in einem solchen Fall eine solche Zeile mit roter Ampel doppelt an, dann wird genau die Zeile im Quelltext angezeigt, welche diese Fehlermeldung hervorgerufen hat. Abb. 4 Wir gehen jetzt davon aus, dass das Assemblieren erfolgreich war. In diesem Fall sind von unserem Assembler eine ganze Reihe von Dateien erzeugt und in unserem Projekt-Ordner abgelegt worden. Davon können wir uns leicht überzeugen: Wir öffnen mit einem Datei-Manager unseren Projekt-Ordner und finden folgende Dateien: Abb. 5

Das Attiny-Projekt Ein erstes Assembler-Projekt 4 Für uns ist jetzt nur die HEX-Datei hf_sender.hex wichtig. Diese gilt es den Attiny2313 hochzuladen. Dazu starten wir unseren Uploader und öffnen diese Datei mit der Schaltfläche HEX- Datei öffnen. Abb. 6 In dem Textbereich sehen wir den Inhalt dieser HEX-Datei. Dass hier mehr als nur 8 Bytes zu sehen sind, hat folgenden Grund: Der Assembler benutzt - wie übrigens auch BASCOM und viele andere Compiler - das sogenannte INTEL-HEX-Format. Neben den eigentlichen Programmbytes werden dabei auch noch Kontrollbytes abgespeichert. Diese Kontrollbytes werden natürlich nicht auf den Attiny2313 übertragen. Das sehen wir, wenn wir auf die Schaltfläche Übernehmen klicken. Das Uploader-Programm entfernt dann diese Kontrollbytes. Was übrig bleibt, sehen wir in der Tabelle rechts daneben: die 4 Worte unseres Programms - jeweils aufgeteilt in ein Lowbyte (LB) und ein Highbyte (HB). Die Übertragung auf die Attiny-Platine erfolgt wie üblich. Und wenn Sie nicht vergessen haben, eine LED bei PortB.0 anzuschließen, dann sollte diese jetzt auch leuchten! Welche Bedeutung haben nun die einzelnen Zeilen in unserem Programm? Betrachten wir sie im Einzelnen. Wir beginnen mit.include tn2313def.inc Hierbei handelt es sich um eine so genannte Assemblerdirektive. Diese beginnen immer mit einem Punkt. Bei ihnen handelt es sich nicht um einzelne Befehl, die der Mikrocontroller ausführen soll; vielmehr stellen sie Anweisungen für den Assembler selbst dar. In diesem Fall sorgt die Anweisung dafür, dass der Assembler die Attiny2313-spezifischen Abkürzungen kennenlernt. Diese Abkürzungen sind in der Datei tn2313def.inc zusammengefasst. Werfen wir einen Blick in diese Datei tn2313def.inc:

Das Attiny-Projekt Ein erstes Assembler-Projekt 5.equ PORTA = 0x1B.equ DDRA = 0x1A.equ PINA = 0x19.equ PORTB = 0x18.equ DDRB = 0x17.equ PINB = 0x16 Als erstes erkennen wir die Abkürzungen für einige I/O-Register, so wie wir sie von BASCOM und auch aus dem AVR-Manual kennen. Diese Abkürzungen werden hier offensichtlich den Adressen dieser I/O-Register zugeordnet. In weiteren Einträgen werden auch die Abkürzungen für die einzelnen Bits den zugehörigen Bitnummern zugeordnet, z. B.: ;***** UCSRA ******.equ RXC = 7.equ TXC = 6.equ UDRE = 5 Dadurch können wir auf die einzelnen I/O-Register und ihre Bits auch bei unserem Assembler in der gleichen Weise zugreifen, wie wir es schon bei BASCOM gemacht haben. Wir brauchen also auch beim Gebrauch des Assemblers nicht die Adressen der I/O-Register im Kopf haben, geschweige denn die Nummern aller Kontrollbits lernen. rjmp init (rjmp = relative jump) Mit diesem Befehl wird ein Sprung zur Marke init: durchgeführt. Der Assembler ersetzt diese Marke durch die Adresse desjenigen Befehls, der direkt hinter der Marke steht. Da die Marke direkt hinter dem Sprungbefehl steht, könnte dieser Sprung im Prinzip auch weggelassen dwerden. In diesem Fall darf er aber nicht entfallen, weil Der von uns benutzte Bootloader als Erstes immer einen Sprungbefehl erwartet. Im Kapitel über den Bootloader können Sie nachlesen, warum das so sein muss. sbi reg, x (sbi = set bit in I/O-register) Dieser Befehl setzt das Bit x des Registers reg auf 1. Reg steht dabei für die Abkürzung (oder Adresse) eines beliebigen I/O-Register und x für eine Zahl zwischen 0 und 7. Bei dem Befehl sbi ddrb, 0 wird also das Bit 0 des Datenrichtungsregisters von Port B auf 1 gesetzt. Durch den anschließenden Befehl sbi portb, 0 wird auch der Portausgang PortB.0 auf 1 gesetzt. Um ein Bit auf 0 zu setzen, wird der Befehl cbi (clear bit in I/O-register) benutzt.

Das Attiny-Projekt Ein erstes Assembler-Projekt 6 Durch ende: rjmp ende wird schließlich eine Endlosschleife erzeugt. Kommen wir nun dazu, unseren HF-Sender zu programmieren. Was muss das Programm leisten? Der Ausgang von PortB.0 muss fortwährend seinen Zustand von 0 auf 1 umschalten und umgekehrt. Dazu benutzen wir eine Schleife, welche wir mit einem rjmp-befehl bilden: start: sbi portb, 0 cbi portb, 0 rjmp start Diese Schleife schaltet tatsächlich PortB.0 fortwährend ein und aus. Aber hat das Signal auch schon die richtige Frequenz? Um diese Frage beantworten zu können, muss man wissen, wie lange die Ausführung jedes einzelnen Befehls braucht. Bei unserem Attiny sind es in der Regel 2 Taktzyklen. Genauere Auskünfte darüber wird das nächste Kapitel geben. Da unser Attiny mit 4 MHz getaktet wird, braucht er für jeden Befehl also genau eine halbe Mikrosekunde. Der Zustand PortB.0 = 1 dauert also 0,5 μs; der Zustand PortB.0 = 0 dauert aber doppelt so lange, also 1,0 μs, weil vor dem nächsten Umschalten noch der Sprungbefehl ausgeführt werden muss. Wenn wir nun eine Frequenz von 500 khz am PortB.0 haben wollen, muss jede Phase genau 1 μs dauern. Um dies zu erreichen, müssen wir nach dem Befehl sbi portb,0 noch einen weiteren Befehl einfügen. Es ist ziemlich egal, was dieser Befehl macht, wichtig ist nur, dass er auch genau 0,5 μs braucht. Für diesen Zweck gibt es den nop-befehl (nop = no operation). Er macht nichts außer Zeit zu vergeuden. Allerdings benötigt dieser Befehl zu seiner Ausführung nur einen einzigen Taktzyklus, d. h. unser Attiny benötigt für ihn nur 0,25 μs. Für die geforderte Wartezeit von 0,5 μs sind demnach zwei nop-befehle erforderlich. Das gesamte Programm sieht dann so aus wie in Abb. 7. Zusätzlich merken wir uns: Kommentare werden durch ein Semikolon eingeleitet. Nach dem Assemblieren übertragen wir das Programm auf den Attiny. Zur Kontrolle schließen wir PortB.0 an ein Oszilloskop an. Es zeigt auf dem Bildschirm eine Periode von 2 cm; das ent- Abb. 7

Das Attiny-Projekt Ein erstes Assembler-Projekt 7 spricht bei einer x-ablenkung von 1 cm pro 1 μs einer Periodendauer von 2 μs. Die Frequenz ist damit 500 khz. Unser Ziel ist erreicht! Würde man an PortB.0 eine kleine Antenne anschließen, könnte man das ausgestrahlte Signal mit einem Mittelwellenradio als Rauschen hören. Der Betrieb eines solchen Senders ist aber nicht erlaubt. Abb. 8