diff --git a/avrtft.c b/avrtft.c index 450edf0..1ecd829 100644 --- a/avrtft.c +++ b/avrtft.c @@ -115,10 +115,10 @@ while (true) { // show a demo once at the start - if (!once) { - setFrame(0x00); - writeBitmap(1, 198, TUX); - unifontDemo(); + if (!once && ints >= INTS_SEC) { + // setFrame(0x00); + // writeBitmap(1, 198, TUX); + // unifontDemo(); // max resolution image // writeBitmap(0, 0, PHOTO); display(); diff --git a/bitmaps.c b/bitmaps.c index e0f0970..8ae168d 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -613,7 +613,7 @@ }; const __flash Bitmap bitmaps[] = { - {56, 64, TUX_DATA}, - {64, 64, LINUS_DATA}, - {248, 120, PHOTO_DATA} +// {56, 64, TUX_DATA}, +// {64, 64, LINUS_DATA}, +// {248, 120, PHOTO_DATA} }; diff --git a/cmd.c b/cmd.c index a45f3ce..ae2a4b8 100644 --- a/cmd.c +++ b/cmd.c @@ -33,21 +33,21 @@ * @param data */ static void text(char *data) { - strtok(data, " "); - char *end; - uint16_t row = strtol(strtok(NULL, " "), &end, 10); - uint16_t col = strtol(strtok(NULL, " "), &end, 10); - char *font = strtok(NULL, " "); - char *text = strtok(NULL, "\0"); - - const __flash Font *unifont = &unifontFont; - const __flash Font *dejavu = &dejaVuFont; - - switch(*font) { - case FONT_UNIFONT: writeString(row, col, unifont, text); break; - case FONT_DEJAVU: writeString(row, col, dejavu, text); break; - default: break; - } +// strtok(data, " "); +// char *end; +// uint16_t row = strtol(strtok(NULL, " "), &end, 10); +// uint16_t col = strtol(strtok(NULL, " "), &end, 10); +// char *font = strtok(NULL, " "); +// char *text = strtok(NULL, "\0"); +// +// const __flash Font *unifont = &unifontFont; +// const __flash Font *dejavu = &dejaVuFont; +// +// switch(*font) { +// case FONT_UNIFONT: writeString(row, col, unifont, text); break; +// case FONT_DEJAVU: writeString(row, col, dejavu, text); break; +// default: break; +// } } /** diff --git a/dejavu.h b/dejavu.h index a4b45c4..a2ef0de 100644 --- a/dejavu.h +++ b/dejavu.h @@ -14,7 +14,7 @@ /** * DejaVu font. */ -extern const __flash Font dejaVuFont; +// extern const __flash Font dejaVuFont; #endif /* DEJAVU_H */ diff --git a/display.c b/display.c index ec09254..356c66f 100644 --- a/display.c +++ b/display.c @@ -61,14 +61,14 @@ } void unifontDemo(void) { - const __flash Font *unifont = &unifontFont; - - for (uint8_t i = 0; i < UNIFONT_DEMO_SIZE; i++) { - const __flash char *line = demoTextLines[i]; - char buf[UNIFONT_DEMO_LINE_SIZE]; - strncpy_P(buf, line, UNIFONT_DEMO_LINE_SIZE - 1); - writeString(i * 2, 0, unifont, buf); - } +// const __flash Font *unifont = &unifontFont; +// +// for (uint8_t i = 0; i < UNIFONT_DEMO_SIZE; i++) { +// const __flash char *line = demoTextLines[i]; +// char buf[UNIFONT_DEMO_LINE_SIZE]; +// strncpy_P(buf, line, UNIFONT_DEMO_LINE_SIZE - 1); +// writeString(i * 2, 0, unifont, buf); +// } } void display() { diff --git a/nbproject/Makefile-Custom.mk b/nbproject/Makefile-Custom.mk new file mode 100644 index 0000000..fef7c59 --- /dev/null +++ b/nbproject/Makefile-Custom.mk @@ -0,0 +1,122 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a -pre and a -post target defined where you can add customized code. +# +# This makefile implements configuration specific macros and targets. + + +# Environment +MKDIR=mkdir +CP=cp +GREP=grep +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=avr-gcc +CCC=avr-g++ +CXX=avr-g++ +FC=gfortran +AS=avr-as + +# Macros +CND_PLATFORM=AVR2.1-GCC13.2-Linux +CND_DLIB_EXT=so +CND_CONF=Custom +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Include project Makefile +include /home/dode/dev/avrtft/Makefile + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} + +# Object Files +OBJECTFILES= \ + ${OBJECTDIR}/_ext/48b9b4a1/avrtft.o \ + ${OBJECTDIR}/_ext/48b9b4a1/bitmaps.o \ + ${OBJECTDIR}/_ext/48b9b4a1/cmd.o \ + ${OBJECTDIR}/_ext/48b9b4a1/dejavu.o \ + ${OBJECTDIR}/_ext/48b9b4a1/display.o \ + ${OBJECTDIR}/_ext/48b9b4a1/font.o \ + ${OBJECTDIR}/_ext/48b9b4a1/spi.o \ + ${OBJECTDIR}/_ext/48b9b4a1/tft.o \ + ${OBJECTDIR}/_ext/48b9b4a1/unifont.o \ + ${OBJECTDIR}/_ext/48b9b4a1/usart.o + + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS= + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS= + +# Build Targets +.build-conf: ${BUILD_SUBPROJECTS} + "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/avrtft + +${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/avrtft: ${OBJECTFILES} + ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} + ${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/avrtft ${OBJECTFILES} ${LDLIBSOPTIONS} + +${OBJECTDIR}/_ext/48b9b4a1/avrtft.o: /home/dode/dev/avrtft/avrtft.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/avrtft.o /home/dode/dev/avrtft/avrtft.c + +${OBJECTDIR}/_ext/48b9b4a1/bitmaps.o: /home/dode/dev/avrtft/bitmaps.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/bitmaps.o /home/dode/dev/avrtft/bitmaps.c + +${OBJECTDIR}/_ext/48b9b4a1/cmd.o: /home/dode/dev/avrtft/cmd.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/cmd.o /home/dode/dev/avrtft/cmd.c + +${OBJECTDIR}/_ext/48b9b4a1/dejavu.o: /home/dode/dev/avrtft/dejavu.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/dejavu.o /home/dode/dev/avrtft/dejavu.c + +${OBJECTDIR}/_ext/48b9b4a1/display.o: /home/dode/dev/avrtft/display.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/display.o /home/dode/dev/avrtft/display.c + +${OBJECTDIR}/_ext/48b9b4a1/font.o: /home/dode/dev/avrtft/font.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/font.o /home/dode/dev/avrtft/font.c + +${OBJECTDIR}/_ext/48b9b4a1/spi.o: /home/dode/dev/avrtft/spi.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/spi.o /home/dode/dev/avrtft/spi.c + +${OBJECTDIR}/_ext/48b9b4a1/tft.o: /home/dode/dev/avrtft/tft.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/tft.o /home/dode/dev/avrtft/tft.c + +${OBJECTDIR}/_ext/48b9b4a1/unifont.o: /home/dode/dev/avrtft/unifont.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/unifont.o /home/dode/dev/avrtft/unifont.c + +${OBJECTDIR}/_ext/48b9b4a1/usart.o: /home/dode/dev/avrtft/usart.c + ${MKDIR} -p ${OBJECTDIR}/_ext/48b9b4a1 + $(COMPILE.c) -g -DBAUD=9600 -DF_CPU=8000000UL -D__AVR_ATmega328P__ -D__flash=volatile -I. -std=c99 -o ${OBJECTDIR}/_ext/48b9b4a1/usart.o /home/dode/dev/avrtft/usart.c + +# Subprojects +.build-subprojects: + +# Clean Targets +.clean-conf: ${CLEAN_SUBPROJECTS} + ${RM} -r ${CND_BUILDDIR}/${CND_CONF} + +# Subprojects +.clean-subprojects: diff --git a/nbproject/Makefile-impl.mk b/nbproject/Makefile-impl.mk new file mode 100644 index 0000000..629009d --- /dev/null +++ b/nbproject/Makefile-impl.mk @@ -0,0 +1,133 @@ +# +# Generated Makefile - do not edit! +# +# Edit the Makefile in the project folder instead (../Makefile). Each target +# has a pre- and a post- target defined where you can add customization code. +# +# This makefile implements macros and targets common to all configurations. +# +# NOCDDL + + +# Building and Cleaning subprojects are done by default, but can be controlled with the SUB +# macro. If SUB=no, subprojects will not be built or cleaned. The following macro +# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf +# and .clean-reqprojects-conf unless SUB has the value 'no' +SUB_no=NO +SUBPROJECTS=${SUB_${SUB}} +BUILD_SUBPROJECTS_=.build-subprojects +BUILD_SUBPROJECTS_NO= +BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} +CLEAN_SUBPROJECTS_=.clean-subprojects +CLEAN_SUBPROJECTS_NO= +CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} + + +# Project Name +PROJECTNAME=avrtft + +# Active Configuration +DEFAULTCONF=Custom +CONF=${DEFAULTCONF} + +# All Configurations +ALLCONFS=Custom + + +# build +.build-impl: .build-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf + + +# clean +.clean-impl: .clean-pre .validate-impl .depcheck-impl + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf + + +# clobber +.clobber-impl: .clobber-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \ + done + +# all +.all-impl: .all-pre .depcheck-impl + @#echo "=> Running $@..." + for CONF in ${ALLCONFS}; \ + do \ + "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \ + done + +# build tests +.build-tests-impl: .build-impl .build-tests-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf + +# run tests +.test-impl: .build-tests-impl .test-pre + @#echo "=> Running $@... Configuration=$(CONF)" + "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf + +# dependency checking support +.depcheck-impl: + @echo "# This code depends on make tool being used" >.dep.inc + @if [ -n "${MAKE_VERSION}" ]; then \ + echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \ + echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ + echo "include \$${DEPFILES}" >>.dep.inc; \ + echo "endif" >>.dep.inc; \ + else \ + echo ".KEEP_STATE:" >>.dep.inc; \ + echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ + fi + +# configuration validation +.validate-impl: + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + echo ""; \ + echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \ + echo "See 'make help' for details."; \ + echo "Current directory: " `pwd`; \ + echo ""; \ + fi + @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \ + then \ + exit 1; \ + fi + + +# help +.help-impl: .help-pre + @echo "This makefile supports the following configurations:" + @echo " ${ALLCONFS}" + @echo "" + @echo "and the following targets:" + @echo " build (default target)" + @echo " clean" + @echo " clobber" + @echo " all" + @echo " help" + @echo "" + @echo "Makefile Usage:" + @echo " make [CONF=] [SUB=no] build" + @echo " make [CONF=] [SUB=no] clean" + @echo " make [SUB=no] clobber" + @echo " make [SUB=no] all" + @echo " make help" + @echo "" + @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," + @echo " also clean subprojects." + @echo "Target 'clobber' will remove all built files from all configurations and," + @echo " unless 'SUB=no', also from subprojects." + @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," + @echo " also build subprojects." + @echo "Target 'help' prints this message." + @echo "" + diff --git a/nbproject/Makefile-variables.mk b/nbproject/Makefile-variables.mk new file mode 100644 index 0000000..6f43ff9 --- /dev/null +++ b/nbproject/Makefile-variables.mk @@ -0,0 +1,27 @@ +# +# Generated - do not edit! +# +# NOCDDL +# +CND_BASEDIR=`pwd` +CND_BUILDDIR=build +CND_DISTDIR=dist +# Custom configuration +CND_PLATFORM_Custom=AVR2.1-GCC13.2-Linux +CND_ARTIFACT_DIR_Custom=dist/Custom/AVR2.1-GCC13.2-Linux +CND_ARTIFACT_NAME_Custom=avrtft +CND_ARTIFACT_PATH_Custom=dist/Custom/AVR2.1-GCC13.2-Linux/avrtft +CND_PACKAGE_DIR_Custom=dist/Custom/AVR2.1-GCC13.2-Linux/package +CND_PACKAGE_NAME_Custom=avrtft.tar +CND_PACKAGE_PATH_Custom=dist/Custom/AVR2.1-GCC13.2-Linux/package/avrtft.tar +# +# include compiler specific variables +# +# dmake command +ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \ + (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk) +# +# gmake command +.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)) +# +include nbproject/private/Makefile-variables.mk diff --git a/nbproject/Package-Custom.bash b/nbproject/Package-Custom.bash new file mode 100644 index 0000000..b32617e --- /dev/null +++ b/nbproject/Package-Custom.bash @@ -0,0 +1,76 @@ +#!/bin/bash -x + +# +# Generated - do not edit! +# + +# Macros +TOP=`pwd` +CND_PLATFORM=AVR2.1-GCC13.2-Linux +CND_CONF=Custom +CND_DISTDIR=dist +CND_BUILDDIR=build +CND_DLIB_EXT=so +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging +TMPDIRNAME=tmp-packaging +OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/avrtft +OUTPUT_BASENAME=avrtft +PACKAGE_TOP_DIR=avrtft/ + +# Functions +function checkReturnCode +{ + rc=$? + if [ $rc != 0 ] + then + exit $rc + fi +} +function makeDirectory +# $1 directory path +# $2 permission (optional) +{ + mkdir -p "$1" + checkReturnCode + if [ "$2" != "" ] + then + chmod $2 "$1" + checkReturnCode + fi +} +function copyFileToTmpDir +# $1 from-file path +# $2 to-file path +# $3 permission +{ + cp "$1" "$2" + checkReturnCode + if [ "$3" != "" ] + then + chmod $3 "$2" + checkReturnCode + fi +} + +# Setup +cd "${TOP}" +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package +rm -rf ${NBTMPDIR} +mkdir -p ${NBTMPDIR} + +# Copy files and create directories and links +cd "${TOP}" +makeDirectory "${NBTMPDIR}/avrtft/bin" +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 + + +# Generate tar file +cd "${TOP}" +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/avrtft.tar +cd ${NBTMPDIR} +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/avrtft.tar * +checkReturnCode + +# Cleanup +cd "${TOP}" +rm -rf ${NBTMPDIR} diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml index f112943..4100e30 100644 --- a/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -33,73 +33,38 @@ false false - - - - - - - - /home/dode/dev/avrtft - ${MAKE} -f Makefile - ${MAKE} -f Makefile clean - /home/dode/dev/avrtft/avrtft.elf - - - . - - - BAUD=9600 - F_CPU=8000000UL - __AVR_ATmega328P__ - __flash=volatile - - - - - . - - - - - + + + + . + + + BAUD=9600 + F_CPU=8000000UL + __AVR_ATmega328P__ + __flash=volatile + + + - - - - - - - - - - - - - - - - - - diff --git a/nbproject/project.xml b/nbproject/project.xml index 70f7cb1..1853c7a 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -14,8 +14,8 @@ - Default - 0 + Custom + 1 diff --git a/tft.c b/tft.c index 5a14464..6ec0a45 100644 --- a/tft.c +++ b/tft.c @@ -1,7 +1,6 @@ /* * File: tft.c * Author: torsten.roemer@luniks.net - * Thanks to https://github.com/adafruit/Adafruit-ST7735-Library for helping me out! * * Created on 6. November 2023, 18:45 */ @@ -16,6 +15,15 @@ #include "usart.h" #include "spi.h" +/** + * Does a hardware reset. + */ +static void hwReset(void) { + PORT_DISP &= ~(1 << PIN_RST); + _delay_ms(10); + PORT_DISP |= (1 << PIN_RST); +} + void displaySetCmd(void) { PORT_DSPI &= ~(1 << PIN_DC); } @@ -35,17 +43,136 @@ } void initDisplay(void) { - displaySel(); - - printString("done initializing display\r\n"); + hwReset(); + _delay_ms(120); + + // SWRESET + displaySel(); + displayCmd(0x01); displayDes(); + + _delay_ms(120); + + // SLPOUT + displaySel(); + displayCmd(0x11); + displayDes(); + + // NORON + displaySel(); + displayCmd(0x13); + displayDes(); + + // COLMOD + displaySel(); + displayCmd(0x3a); + displayData(0b00111101); + displayDes(); + + // MADCTL + displaySel(); + displayCmd(0x36); + displayData(0b01110110); + displayDes(); + + // CASET + uint16_t ys = 0; + uint16_t ye = 79; + displaySel(); + displayCmd(0x2a); + displayData(ys >> 8); + displayData(ys); + displayData(ye >> 8); + displayData(ye); + displayDes(); + + // RASET + uint16_t xs = 0; + uint16_t xe = 127; + displaySel(); + displayCmd(0x2b); + displayData(xs >> 8); + displayData(xs); + displayData(xe >> 8); + displayData(xe); + displayDes(); + + // RAMWR + displaySel(); + displayCmd(0x2c); + displaySetData(); + for (uint16_t i = 0; i < 42 * 80; i++) { + transmit(0b11111000); + transmit(0b00000000); + } + for (uint16_t i = 0; i < 43 * 80; i++) { + transmit(0b00000111); + transmit(0b11100000); + } + for (uint16_t i = 0; i < 43 * 80; i++) { + transmit(0b00000000); + transmit(0b00011111); + } + displayDes(); + + // CASET + ys = 80; + ye = 159; + displaySel(); + displayCmd(0x2a); + displayData(ys >> 8); + displayData(ys); + displayData(ye >> 8); + displayData(ye); + displayDes(); + + // RASET + xs = 0; + xe = 127; + displaySel(); + displayCmd(0x2b); + displayData(xs >> 8); + displayData(xs); + displayData(xe >> 8); + displayData(xe); + displayDes(); + + // RAMWR + displaySel(); + displayCmd(0x2c); + displaySetData(); + for (uint16_t i = 0; i < 42 * 80; i++) { + transmit(~0b11111000); + transmit(~0b00000000); + } + for (uint16_t i = 0; i < 43 * 80; i++) { + transmit(~0b00000111); + transmit(~0b11100000); + } + for (uint16_t i = 0; i < 43 * 80; i++) { + transmit(~0b00000000); + transmit(~0b00011111); + } + displayDes(); + + // DISPON + displaySel(); + displayCmd(0x29); + displayDes(); + + // SLPIN + // displaySel(); + // displayCmd(0x10); + // displayDes(); + + printString("done initializing display\r\n"); } void updateDisplay(void) { displaySel(); - printString("done updating display\r\n"); - displayDes(); + + printString("done updating display\r\n"); } \ No newline at end of file diff --git a/unifont.h b/unifont.h index b88800f..d11e860 100644 --- a/unifont.h +++ b/unifont.h @@ -22,7 +22,7 @@ /** * Unifont font. */ -extern const __flash Font unifontFont; +// extern const __flash Font unifontFont; #endif /* UNIFONT_H */