arduino / arduino/ArduinoCore-mbed

Arduino H7 Video - Display remains black when executed on the M4 processor

Open
#1,048 4 comments 0 reactions 1 assignee Claimed by @leonardocavagnis View on GitHub
Video waiting for feedback
Dominant language
C
Stars
411
Forks
225
PR merge metrics
No merged PRs in 30d

Description

I have found a bug in the class Arduino_H7_Video. When creating an object with the call
"Arduino_H7_Video Display(800, 480, GigaDisplayShield); " // This doesn't work on M4
this works with the M7 processor, but not with the M4 processor. The display remains black. The call only works on the M4 processor if I swap the values 800 and 480 .
"Arduino_H7_Video Display(480, 800, GigaDisplayShield); " // This works on M4
But then everything on the display appears rotated by 90 degrees and a rotation with the function lv_display_set_rotation(...) does not work.

I use Arduino Giga R1 with lvgl 9.2.2 and Mbed OS 4.2.4

```
#include
#include "RPC.h"

#ifdef CORE_CM7
void setupM7() {
RPC.begin();
Serial.println("setupM7()");
delay(100);
}

void loopM7() {
Serial.println("loopM7()");
delay(1000);
}
#else
#define LV_CONF_INCLUDE_SIMPLE 1

#include
#include
#include
#include "Arduino_H7_Video.h"

lv_obj_t* g_pObjButton = NULL, *g_pObjBtnLabel = NULL, *g_pWLANScreen = NULL;

// This doesnt work on M4
// Arduino_H7_Video Display(800, 480, GigaDisplayShield);

// This works on M4, but the Dispaly is rotated by 90 degrees
Arduino_H7_Video Display(480, 800, GigaDisplayShield);

Arduino_GigaDisplayTouch TouchDetector;
GigaDisplayRGB rgb;

static void btn_event_cb1(lv_event_t* e) {
//Serial.println("btn_event_cb1");
}

void initScanButton() {
g_pWLANScreen = lv_obj_create(lv_scr_act());
lv_obj_set_size(g_pWLANScreen, Display.width(), Display.height());
lv_obj_clear_flag(g_pWLANScreen, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_center(g_pWLANScreen);

g_pObjButton = lv_btn_create(g_pWLANScreen);
lv_obj_set_width(g_pObjButton, 200);
lv_obj_set_height(g_pObjButton, 80);
lv_obj_set_x(g_pObjButton, 0);
lv_obj_set_y(g_pObjButton, 0);
lv_obj_add_event_cb(g_pObjButton, btn_event_cb1, LV_EVENT_RELEASED, NULL);

lv_obj_clear_flag(g_pObjButton, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_align(g_pObjButton, LV_ALIGN_CENTER);
lv_obj_add_flag(g_pObjButton, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags
lv_obj_clear_flag(g_pObjButton, LV_OBJ_FLAG_SCROLLABLE); /// Flags
lv_obj_set_style_bg_color(g_pObjButton, lv_color_hex(0xDCDCDC), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(g_pObjButton, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_color(g_pObjButton, lv_color_hex(0xB4B4B4), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_opa(g_pObjButton, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_width(g_pObjButton, 2, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_color(g_pObjButton, lv_color_hex(0x808080), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(g_pObjButton, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_align(g_pObjButton, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_text_font(g_pObjButton, &lv_font_montserrat_14, LV_PART_MAIN | LV_STATE_DEFAULT);
g_pObjBtnLabel = lv_label_create(g_pObjButton);
lv_label_set_text(g_pObjBtnLabel, "Scannen");
lv_obj_set_style_text_color(g_pObjBtnLabel, lv_color_black(), 0);
lv_obj_center(g_pObjBtnLabel);
}

void setupM4() {
RPC.begin();
Display.begin();
TouchDetector.begin();
rgb.begin();

initScanButton();

}

void loopM4() {
lv_timer_handler();

}
#endif

void setup() {
#ifdef CORE_CM7
setupM7();
#else
setupM4();
#endif
}

void loop() {
#ifdef CORE_CM7
loopM7();
#else
loopM4();
#endif

}
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.