Commit graph

62 commits

Author SHA1 Message Date
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