Rave king (#111)

* add u8g2 and ui libs

* add display driver and usage example

* not init display in test mode

* change todo text

* fix removed code

* add ioc for flipperzero f2

* add generated f1 files to f2

* regenerate cubemx

* invert initial state of led

* blink backligh

* shutdown backlight on idle

* more rave!

* add todo
This commit is contained in:
coreglitch 2020-09-09 22:54:21 +06:00 committed by GitHub
parent 5c81bb8abc
commit 118611eabd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 84 additions and 1 deletions

View File

@ -0,0 +1,77 @@
#include "flipper.h"
#include "u8g2/u8g2.h"
extern TIM_HandleTypeDef htim5;
void coreglitch_demo_0(void* p) {
FuriRecordSubscriber* log = get_default_log();
fuprintf(log, "coreglitch demo!\n");
// open record
FuriRecordSubscriber* fb_record = furi_open(
"u8g2_fb", false, false, NULL, NULL, NULL
);
if(fb_record == NULL) {
fuprintf(log, "[widget] cannot create fb record\n");
furiac_exit(NULL);
}
float notes[] = {
0.0,
330.0,
220.0,
0.0,
110.0 + 55.0,
440.0,
330.0,
55.0,
};
float scales[] = {
1.0,
1.5,
0.75,
0.8
};
uint8_t cnt = 0;
while(1) {
for(size_t note_idx = 0; note_idx < 400; note_idx++) {
float scale = scales[((cnt + note_idx)/16) % 4];
float freq = notes[(note_idx + cnt / 2) % 8] * scale;
float width = 0.001 + 0.05 * (note_idx % (cnt/7 + 5));
if(note_idx % 8 == 0) {
freq = 0;
}
// TODO get sound from FURI
pwm_set(width, freq, &htim5, TIM_CHANNEL_4);
// delay(1);
cnt++;
u8g2_t* fb = furi_take(fb_record);
if(fb != NULL) {
u8g2_SetDrawColor(fb, 0);
u8g2_DrawBox(fb, 0, 0, 120, 30);
u8g2_SetFont(fb, u8g2_font_6x10_mf);
u8g2_SetDrawColor(fb, 1);
u8g2_SetFontMode(fb, 1);
char buf[64];
sprintf(buf, "freq: %d Hz", (uint32_t)freq);
u8g2_DrawStr(fb, 2 + width * 20, 12 + freq / 100, buf);
}
furi_commit(fb_record);
delay(100);
}
}
}

View File

@ -169,7 +169,7 @@ void display_u8g2(void* p) {
while(1) { while(1) {
// wait for event // wait for event
if(xSemaphoreTake(update, 1000) == pdTRUE) { if(xSemaphoreTake(update, 10000) == pdTRUE) {
HAL_GPIO_WritePin(DISPLAY_BACKLIGHT_GPIO_Port, DISPLAY_BACKLIGHT_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(DISPLAY_BACKLIGHT_GPIO_Port, DISPLAY_BACKLIGHT_Pin, GPIO_PIN_SET);
u8g2_t* u8g2 = (u8g2_t*)furi_take(fb_record); u8g2_t* u8g2 = (u8g2_t*)furi_take(fb_record);

View File

@ -20,12 +20,16 @@ void display_u8g2(void* p);
void u8g2_example(void* p); void u8g2_example(void* p);
void coreglitch_demo_0(void* p);
const FlipperStartupApp FLIPPER_STARTUP[] = { const FlipperStartupApp FLIPPER_STARTUP[] = {
#ifndef TEST #ifndef TEST
{.app = display_u8g2, .name = "display_u8g2"}, {.app = display_u8g2, .name = "display_u8g2"},
{.app = u8g2_example, .name = "u8g2_example"}, {.app = u8g2_example, .name = "u8g2_example"},
#endif #endif
// {.app = coreglitch_demo_0, .name = "coreglitch_demo_0"},
#ifdef TEST #ifdef TEST
{.app = flipper_test_app, .name = "test app"}, {.app = flipper_test_app, .name = "test app"},
#endif #endif

View File

@ -171,6 +171,8 @@ endif
# User application # User application
C_SOURCES += ../applications/coreglitch_demo_0/coreglitch_demo_0.c
# Add C_SOURCES +=, C_DEFS += or CPP_SOURCES += here # Add C_SOURCES +=, C_DEFS += or CPP_SOURCES += here
####################################### #######################################