492-Byte-Demo auf ATtiny5



Demos haben normalerweise komplexere Grafiken als Spiele mit demselben Volumen. Schließlich müssen Sie keine Ressourcen für Benutzerinteraktion und zusätzliche Berechnungen aufwenden. Das vorgeschlagene Programm läuft auf einem ATtiny5-Mikrocontroller mit 512 Bytes ROM, 32 Bytes RAM und 16 Prozessorregistern. Rakettitiede ist in der finnischen "Raketenwissenschaft" (einschließlich in der gleichen Bedeutung wie in englischen Spracheinheiten) sowie der Name eines Softwareunternehmens.

Die Platine für die Demo:



Bis auf die LTC1799-Komponente ist hier alles bekannt. Dies ist eine Uhr, die von einem Widerstand konfiguriert wird. Es arbeitet mit einer Frequenz von 12 MHz. Ein anderer ziemlich stabiler Generator von Rechteckimpulsen mit derselben Frequenz ist geeignet. Um die fünf für den VGA-Monitor erforderlichen Signale von den drei Ausgängen des Mikrocontrollers zu erhalten, werden Teiler an den LEDs und Widerständen verwendet, die auch im Monitor eingebaute 75-Ohm-Widerstände verwenden. Jeder der Ausgänge kann vom Programm auf Null, Eins und einen hochohmigen Zustand geschaltet werden.

Da die Annahme von Bewerbungen beim Hackaday-Wettbewerb endete, schickte der Autor dort eine Zwischenversion der Demo, die bis auf die Ausgabe des Textes dasselbe tat:


Es belegte 394 Bytes oder 197 16-Bit-Wörter:

avra -l pentaveega.lst pentaveega.asm AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010) Copyright (C) 1998-2010. Check out README file for more info AVRA is an open source assembler for Atmel AVR microcontroller family It can be used as a replacement of 'AVRASM32.EXE' the original assembler shipped with AVR Studio. We do not guarantee full compatibility for avra. AVRA comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of avra under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. Pass 1... Pass 2... done Assembly complete with no errors. Segment usage: Code : 197 words (394 bytes) Data : 0 bytes EEPROM : 0 bytes 

Nach der Optimierung wurde die Demo auf 354 und dann auf 352 Bytes reduziert. Dann entschied sich der Autor, dem Bild Text hinzuzufügen, woraufhin das Programm begann, 492 Bytes zu belegen:


Der Code liegt hier auf Bitbucket sowie auf Hackaday als separate Dateien: pentaveega.asm , tn5def.inc und pentaveega.hex .

Das Gerät kann in drei Versionen zusammengebaut werden: auf zwei Arten von Steckbrettmodellen mit Adapterplatinen sowie auf einer Leiterplatte (unter CC-BY-SA 4.0 Dateien in einem separaten Projektordner auf Bitbucket). Achten Sie bei der Montage auf die Art und Weise, wie der Monitoranschluss gemäß der ersten Option angeschlossen wird:





Source: https://habr.com/ru/post/de455168/


All Articles