Sparrow Online Assembler: Nokia5110 LCD

Das der ATtiny13a keine Probleme mit dem Nokia5110 LCD hat wurde ja bereits in einigen Anwendungen gezeigt. Der Sparrow hatte dieses Vergnügen jedoch noch nicht. Für ein neues Projekt experimentiere ich gerade mit dem Nokia Display. Das Zielsystem ist mit hoher Wahrscheinlichkeit ein AVR Tiny13. Der ISP-Programmer war aber gerade nicht zu finden. Warum nicht den Sparrow als Entwicklungssystem einsetzen?
Sparrow steuert Nokia5110 LCD an
Prototypenentwicklung mit dem Sparrow Online Assembler
Für meine Anwendung benötige ich eine Lösung die wenig Programmspeicher in Anspruch nimmt. Die Initialisierungsdaten sind als Konstanten im Flash abgelegt. Die Ramzeiger-Position (Schreibposition) ist aus Platzgründen in die Initalisierung gewandert. SPI ist in Software abgebildet. Der Datentransfer ist mit der Funktion "out_byte_go" realisiert. Das spart nochmals Platz denn damit kann sowohl die Initalisierung als auch das Schreiben auf dem Display erfolgen.
Eine schöne Grundlage für Experimente mit ressourcenschonender Programmierung. Die Pinbelegung ist im Quellcode zu finden.
Bildinhalte generieren
Der Smiley wurde mit dem OnlineTool Mosaic erzeugt. Mit dem Register r19 wird der Funktion "out_byte_go" mitgeteilt wieviele Bytes geschrieben werden sollen.
Fehlerhafte Initialisierung (Update 29.10.2015)
Mehrere Nutzer berichteten über einen zu dunklen Kontrastwert des Displays. Die Initialisierungssequenz wurde nun angepasst. Der aktuelle Kontrastwert (5. Byte) liegt jetzt bei 0xBC (dezimal 188). Die Kontrasteinstellung hat 128 Stufen (0b1xxx xxxx). Es sind somit Werte von 0x80 (0b10000000) bis 0xFF (0b11111111) zulässig
Links und Referenzen: