Commit graph

66 commits

Author SHA1 Message Date
acf4bc5754 Editable setup settings
In order to be able to change the setup settings two new setup states
are introduced `change_contrast` and `change_backlight`. All
procedures that handle the setup states are adapted to handle those
new states correct. To keep track of their values the global variables
`value_contrast` and `value_backlight` are introduced.
2021-09-11 15:36:02 +02:00
0acd0bd98b Iterable setup settings with encoder
To make setup settings configurable make it possible to select them
first. Therefore the `setup_state` enum is created to keep track of
the currently selected setting state.
2021-09-11 11:13:15 +02:00
e2d30d7050 Fix indents and switch syntax
Fix indentions in `spi_byte()` and add missing space after `switch`
keywords.
2021-09-11 00:21:01 +02:00
6eb515e2d4 Display digits and integers
Display digits and integers, for the later displaying leading zeroes
is supported via parameter. Demo integers are displayed in the setup
screen.
2021-09-11 00:19:59 +02:00
19c0f141a4 Add setup screen
In order to draw the setup screen, several character symbols are
added. The `lcd_setup` function, which draws the setup screen, as well
as the `update_setup` function, that updates the setup screens state,
are added.
2021-09-09 20:50:52 +02:00
9c496e765d Refactor state handling
In order to improve the handling of states the `state` enum is also
used for saving the `home_state`, which was previously called
`current_home_state`. All dependent functions were adapted to the
change.

The `volatile` keyword was added to some variables.
2021-09-09 20:40:50 +02:00
6746d34b2f Handle switch input
The `input` enum is extended with `click` and `hold` values and all
dependencies are adapted to that. In order to handle the `click` input
an interrupt is used. Further, for handling held button input with the
switch the Timer/Counter1 compare match interrupt with OCR1A is used.
2021-09-09 20:19:40 +02:00
e099b0f94a Move clock speed setting into makefile
Move clock speed setting into makefile.
2021-09-09 20:01:23 +02:00
727f89eeb0 Basic state handling
Prepare for handling of different screens and their states and add a
minimal menu.
2021-09-08 14:53:29 +02:00
cd2c6cf196 Improve splash screen
The splash screen blob is now splitted in to parts in order to reduce
zero valued memory space.
2021-09-08 14:04:07 +02:00
cec207984a Improve make file
Adapt to new programmer and use variables for the clean target.
2021-09-08 13:59:38 +02:00
86ec90b202 Minimal encoder input handling
It is now possible to act on the encoders input. No effort regarding
debouncing and dechattering has been done yet.
2021-09-08 13:58:24 +02:00
3b2bf1d967 Remove unnecessary memory for spash screen
When `lcd_fill(0x00)` is called before drawing the splash screen and
only a part of the image is stored as done now, some memory in the
`.bss` segment can be used for something else.
2021-03-01 16:45:03 +01:00
d14f1c33e0 Draw splash screen
Hail sacred chao, kallisti!
2021-02-27 15:17:01 +01:00
7f7d7b628a Interact with the display
Enable the SPI bus to configure the display and program its ram. For
that the fastest available SPI clock is used. To configure the display
a minimal config is used which is not identical but similar to the
displays datasheet. The display can only be filled columnwise so far.
2021-02-27 02:26:57 +01:00
0065fb630f Generate a PWM signal for the display
Generate a variable duty cycle PWM signal for the dimmable display
backlight at a frequency of 1.25kHz.

For demo und testing purposes PD5 is currently fading between 0 and
100%.
2021-02-19 15:46:36 +01:00