Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

LunaAVR

Luna-IDE
Disassembler
LCD-Zeichenditor
GLCD-Pictureeditor
GLCD-Fonteditor

Luna ist eine objektbasierte, moderne Basic-ähnliche Programmiersprache, deren Aufbau und Syntax sich an aktuellen Entwicklungswerkzeugen wie z.Bsp. RealStudio® orientiert. Sie ist mit einer einfach zu erlernenden Syntax ausgestattet und eignet sich für die effiziente und zeitsparende Entwicklung von kleinen bis großen Softwareprojekten für AVR Mikrocontroller.

Luna erhebt nicht den Anspruch andere Programmiersprachen zu ersetzen. Vielmehr soll das Angebot an freien Entwicklungswerkzeugen bereichert werden. Luna ist ein privat initiiertes Projekt und kostenlos.

Luna besteht aus integrierter Entwicklungsumgebung, einem Präprozessor, Compiler und Assembler. Software kann wahlweise in der IDE oder in einem normalen Texteditor geschrieben werden.

Die IDE bietet hierbei zusätzlich zu den allgemein wünschenswerten Funktionen wie Syntaxfärbung, automatischer Einrückung, Strukturierung von Bedingungen inklusive Ein- und Ausklappfunktion eine direkte Unterstützung der in Luna abgebildeten Hardware und Software-Objekte bzw. -Klassen der einzelnen AVR Controller.

Das erzeugte Binary und die Ausführungsgeschwindigkeit sind von der Größe her vergleichbar mit existierenden Hochsprachen wie z.Bsp. C/C++. Es gibt keine Beschränkung bei der Tiefe von Ausdrücken wie z.Bsp. in BASCOM. Zudem bietet es eine hochoptimierte dynamische Speicherverwaltung (dynamische Strings oder Speicherblöcke), Speicherstrukturen, dynamische Objekte, selbst erstellbare Klassen und Datenstrukturen.

Die AVR-spezifischen Code-Teile sind quelloffen und vollständig in Assembler geschrieben.

Status des Projekts

Luna bietet eine vollwertige Entwicklungsumgebung mit Compiler, präprozessore, Assembler und Disassembler. Zusätzlich ist ein Library-Browser/Editor integriert, mit dem man die Standardbbliotheksfunktionen des Compilers einsehen und editieren kann (Assembler).

Aufbau und Struktur

Luna ist eine objektbasierte Programmiersprache.

Im Unterschied zur „normalen“ rein prozeduralen Programmierung, sind bei der objektbasierten/objektorientierten Programmierung sogutwie alle Elemente der Programmiersprache in bestimmte Strukturen zusammengefasst. Diese Struktur beeinflusst auch die Art und Weise der Syntax, also wie man eine gewünschte Funktionalität schriftlich ausdrückt.

Jeder AVR-Mikrocontroller ist intern als eine sogenannte „Klasse“ (die Basisklasse) implementiert. Diese beschreibt, welche Objekte (z.Bsp.: Ports, Timer, Wandler, Schnittstellen, ..) und Eigenschaften (Größe des Arbeitsspeichers, Eeprom-Größe, Taktrate, Baudrate, ..) der Controller besitzt. Die davon abgebildeten Objekte erben die Eigenschaften bzw. Attribute dieser Basisklasse, sodass beispielsweise bestimmte Methoden und Eigenschaften nur dann zugänglich sind, wenn sie in der übergeordneten Klasse (in diesem Fall der Controller) vorhanden sind.

Weblinks

BeispielSource: helloworld.luna

avr.device = attiny2313
avr.clock = 20000000         ' Quarzfrequenz
avr.stack = 16               ' Bytes Programmstack (Vorgabe: 16)

uart.baud = 19200            ' Baudrate
uart.Recv.enable             ' Senden aktivieren
uart.Send.enable             ' Empfangen aktivieren

print "Hallo Welt"

Do
Loop

LiFePO4 Speicher Test