Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions examples/basic/ArduinoLogoDrawing/ArduinoLogoDrawing.ino
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
https://github.com/arduino/ArduinoCore-mbed/blob/main/libraries/Arduino_H7_Video/
*/

#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "ArduinoGraphics.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
//Arduino_H7_Video Display(1024, 768, USBCVideo);
Arduino_Video Display(800, 480, GigaDisplayShield);
//Arduino_Video Display(1024, 768, USBCVideo);

void setup() {
Display.begin();
Expand Down
4 changes: 2 additions & 2 deletions examples/basic/SimpleText/SimpleText.ino
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
This example code is in the public domain.
*/

#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "ArduinoGraphics.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);

void setup() {
Display.begin();
Expand Down
4 changes: 2 additions & 2 deletions examples/camera/display_camera/display_camera.ino
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

#include "arducam_dvp.h"
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "dsi.h"
#include "SDRAM.h"

Expand Down Expand Up @@ -37,7 +37,7 @@ FrameBuffer fb;
// The buffer used to rotate and resize the frame
FrameBuffer outfb;
// The buffer used to rotate and resize the frame
Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);

void blinkLED(uint32_t count = 0xFFFFFFFF)
{
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/bar_lvgl/bar_lvgl.ino
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "Arduino_GigaDisplayTouch.h"

#include "lvgl.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield); /* Arduino_H7_Video Display(1024, 768, USBCVideo); */
Arduino_Video Display(800, 480, GigaDisplayShield); /* Arduino_Video Display(1024, 768, USBCVideo); */
Arduino_GigaDisplayTouch TouchDetector;

static void set_slider_val(void * bar, int32_t val) {
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/button_lvgl/button_lvgl.ino
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "lvgl.h"
#include "Arduino_GigaDisplayTouch.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);
Arduino_GigaDisplayTouch TouchDetector;

static void btn_event_cb(lv_event_t * e) {
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/check_radio_lvgl/check_radio_lvgl.ino
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "lvgl.h"
#include "Arduino_GigaDisplayTouch.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);
Arduino_GigaDisplayTouch TouchDetector;

void setup() {
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/image_lvgl/image_lvgl.ino
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
* Online image converter for LVGL v8 or earlier: https://lvgl.io/tools/imageconverter
*/

#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "lvgl.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);

void setup() {
Display.begin();
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/imu_orientation/imu_orientation.ino
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
*/

#include "Arduino_BMI270_BMM150.h"
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "lvgl.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield); /* Arduino_H7_Video Display(1024, 768, USBCVideo); */
Arduino_Video Display(800, 480, GigaDisplayShield); /* Arduino_H7_Video Display(1024, 768, USBCVideo); */

BoschSensorClass imu(Wire1);

Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/slider_lvgl/slider_lvgl.ino
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "Arduino_GigaDisplayTouch.h"

#include "lvgl.h"

Arduino_H7_Video Display(800, 480, GigaDisplayShield); /* Arduino_H7_Video Display(1024, 768, USBCVideo); */
Arduino_Video Display(800, 480, GigaDisplayShield); /* Arduino_H7_Video Display(1024, 768, USBCVideo); */
Arduino_GigaDisplayTouch TouchDetector;

void setup() {
Expand Down
4 changes: 2 additions & 2 deletions examples/lvgl/squarelinestudio_lvgl/squarelinestudio_lvgl.ino
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
* Initial author: Leonardo Cavagnis @leonardocavagnis
*/

#include "Arduino_H7_Video.h"
#include "Arduino_Video.h"
#include "Arduino_GigaDisplayTouch.h"

#include "lvgl.h"
#include "ui.h"

/* Initialize the GIGA Display Shield with a resolution of 800x480 pixels */
Arduino_H7_Video Display(800, 480, GigaDisplayShield);
Arduino_Video Display(800, 480, GigaDisplayShield);
Arduino_GigaDisplayTouch Touch;

void setup() {
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ sentence=Examples for GIGA Display Shield
paragraph=
category=Device Control
url=https://github.com/arduino-libraries/Arduino_GigaDisplay
architectures=mbed_giga,mbed_portenta
architectures=mbed_giga,mbed_portenta,ArduinoCore-zephyr
includes=Arduino_GigaDisplay.h
depends=Arduino_BMI270_BMM150,Arduino_GigaDisplayTouch,ArduinoGraphics,Arduino_GigaDisplay_GFX,lvgl,Arducam_dvp
62 changes: 62 additions & 0 deletions src/GigaDisplayRGB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,65 @@ void GigaDisplayRGB::writeByte(uint8_t subAddress, uint8_t data)
Wire1.write(data);
Wire1.endTransmission();
}

#ifdef __ZEPHYR__
GigaDisplayBacklight* GigaDisplayBacklight::_instance = nullptr;

void GigaDisplayBacklight::zephyr_timer_handler(struct k_timer *timer_id) {
if (_instance) {
_instance->process_step();
}
}
#endif

GigaDisplayBacklight::GigaDisplayBacklight() : intensity(0) {
#ifdef __ZEPHYR__
_instance = this;
#endif
}

void GigaDisplayBacklight::begin(int target_percent) {
set(target_percent);

#if defined(__MBED__)
pin = new mbed::DigitalOut(PB_12);
ticker = new mbed::Ticker();
ticker->attach(mbed::callback(this, &GigaDisplayBacklight::cb), 2ms);
#elif defined(__ZEPHYR__)
pinMode(74, OUTPUT); // 74 = PB_12
k_timer_init(&timer, GigaDisplayBacklight::zephyr_timer_handler, NULL);
k_timer_start(&timer, K_MSEC(2), K_MSEC(2));
#endif
}

#if defined(__MBED__)
void GigaDisplayBacklight::cb() {
static int counter = 0;
if (counter >= intensity) {
*pin = 0;
} else {
*pin = 1;
}
counter += 10;
if (counter == 100) counter = 0;
}
#elif defined(__ZEPHYR__)
void GigaDisplayBacklight::process_step() {
static int counter = 0;
if (counter >= intensity) {
digitalWrite(74, LOW);
} else {
digitalWrite(74, HIGH);
}
counter += 10;
if (counter == 100) counter = 0;
}
#endif

void GigaDisplayBacklight::set(int target_percent) {
intensity = target_percent;
}

void GigaDisplayBacklight::off() {
set(0);
}
53 changes: 23 additions & 30 deletions src/GigaDisplayRGB.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,41 +13,34 @@ class GigaDisplayRGB {
void writeByte(uint8_t,uint8_t);
};

#include "mbed.h"
using namespace std::chrono_literals;
using namespace std::chrono;
#if defined(__MBED__)
#include "mbed.h"
using namespace std::chrono_literals;
using namespace std::chrono;
#elif defined(__ZEPHYR__)
#include <zephyr/kernel.h>
#endif

class GigaDisplayBacklight {
public:
GigaDisplayBacklight() {}
void begin(int target_percent = 100) {
pin = new mbed::DigitalOut(PB_12);
ticker = new mbed::Ticker();
ticker->attach(mbed::callback(this, &GigaDisplayBacklight::cb), 2ms);
set(target_percent);
}
void cb() {
static int counter = 0;
if (counter >= intensity) {
*pin = 0;
} else {
*pin = 1;
}
counter += 10;
if (counter == 100) {
counter = 0;
}
}
void set(int target_percent) {
intensity = target_percent;
}
void off() {
set(0);
}
GigaDisplayBacklight();
void begin(int target_percent = 100);
void set(int target_percent);
void off();

private:
mbed::Ticker* ticker;
mbed::DigitalOut* pin;
int intensity;

#if defined(__MBED__)
mbed::Ticker* ticker;
mbed::DigitalOut* pin;
void cb();
#elif defined(__ZEPHYR__)
struct k_timer timer;
static void zephyr_timer_handler(struct k_timer *dummy);
static GigaDisplayBacklight* _instance;
void process_step();
#endif
};

#endif
Loading