1- #define LGFX_USE_V1
21#include < M5Unified.h>
2+ #include < M5UnitRCA.h>
33
44#include " wav_unsigned_8bit_click.cpp"
55
6- class LGFX : public lgfx ::LGFX_Device {
7- public:
8- lgfx::Panel_CVBS _panel_instance;
9-
10- LGFX (void ) {
11- {
12- auto cfg = _panel_instance.config ();
13-
14- cfg.memory_width = 240 ;
15- cfg.memory_height = 180 ;
16- cfg.panel_width = 240 ;
17- cfg.panel_height = 180 ;
18- cfg.offset_x = 0 ;
19- cfg.offset_y = 0 ;
20- _panel_instance.config (cfg);
21- }
22- {
23- auto cfg = _panel_instance.config_detail ();
24-
25- // cfg.signal_type = cfg.signal_type_t::NTSC_J;
26- // cfg.signal_type = cfg.signal_type_t::PAL;
27- // cfg.signal_type = cfg.signal_type_t::PAL_M;
28- cfg.signal_type = cfg.signal_type_t ::PAL_N;
29-
30- cfg.pin_dac = 25 ;
31- cfg.use_psram = 0 ;
32- cfg.output_level = 128 ;
33- cfg.chroma_level = 128 ;
34- _panel_instance.config_detail (cfg);
35- }
36-
37- setPanel (&_panel_instance);
38- }
39- };
6+ M5UnitRCA gfx_rca;
407
41- LGFX gfx_rca;
8+ // M5UnitRCA gfx_rca ( 216 // logical_width
9+ // , 144 // logical_height
10+ // , 256 // output_width
11+ // , 160 // output_height
12+ // , M5UnitRCA::signal_type_t::PAL // signal_type
13+ // , 26 // GPIO pin
14+ // );
15+ // signal_type: can be selected from NTSC / NTSC_J / PAL / PAL_M / PAL_N.
16+ // GPIO pin: can be selected from 25 / 26
4217
4318static constexpr int color_list[3 ] = {TFT_RED, TFT_GREEN, TFT_BLUE};
4419static int color_index = 0 ;
@@ -47,14 +22,14 @@ static bool is_pin_25 = true;
4722
4823void play_wav (void *) {
4924 while (true ) {
50- M5.Speaker .playWav (sunrise_anna_single_left, sizeof (sunrise_anna_single_left), ~ 0u , 0 ,
51- true );
25+ M5.Speaker .playWav (sunrise_anna_single_left,
26+ sizeof (sunrise_anna_single_left), ~ 0u , 0 , true );
5227 delay (3000 );
5328 M5.Speaker .stop (0 );
5429 delay (500 );
5530
56- M5.Speaker .playWav (sunrise_anna_single_right, sizeof (sunrise_anna_single_right), ~ 0u , 1 ,
57- true );
31+ M5.Speaker .playWav (sunrise_anna_single_right,
32+ sizeof (sunrise_anna_single_right), ~ 0u , 1 , true );
5833 delay (3000 );
5934 M5.Speaker .stop (1 );
6035 delay (500 );
@@ -73,54 +48,51 @@ void setup(void) {
7348 M5.Display .setTextColor (TFT_WHITE, TFT_BLACK);
7449 M5.Display .drawCenterString (" M5 RCA Module :)" , 160 , 20 );
7550
76- M5.Display .drawCenterString (" Using Pin 25 " , 160 , 120 );
51+ M5.Display .drawCenterString (" Using Pin 26 " , 160 , 120 );
7752 M5.Display .drawString (" Pin 25" , 25 , 210 );
7853 M5.Display .drawString (" Pin 26" , 220 , 210 );
7954
80- // if (M5.getBoard() == m5gfx::boards::board_M5StackCore2) {
81- // {
82- // auto spk_cfg = M5.Speaker.config();
83- // spk_cfg.i2s_port = I2S_NUM_1;
84- // spk_cfg.sample_rate = 96000;
85- //
86- // spk_cfg.pin_data_out = 2;
87- // spk_cfg.pin_bck = 19;
88- // spk_cfg.pin_ws = 0; // LRCK
89- //
90- // spk_cfg.stereo = true;
91- // spk_cfg.buzzer = false;
92- // spk_cfg.use_dac = false;
93- // spk_cfg.magnification = 16;
94- // M5.Speaker.config(spk_cfg);
95- // }
96- // }
97- // else
98- // {
99- // auto spk_cfg = M5.Speaker.config();
100- // spk_cfg.i2s_port = I2S_NUM_1;
101- // spk_cfg.sample_rate = 96000;
102- //
103- // spk_cfg.pin_data_out = 15;
104- // spk_cfg.pin_bck = 13;
105- // spk_cfg.pin_ws = 0; // LRCK
106- //
107- // spk_cfg.stereo = true;
108- // spk_cfg.buzzer = false;
109- // spk_cfg.use_dac = false;
110- // spk_cfg.magnification = 16;
111- // M5.Speaker.config(spk_cfg);
112- // }
113-
114-
115- // M5.Speaker.begin();
116- // M5.Speaker.setVolume(128);
117- // M5.Speaker.setChannelVolume(0, 255);
118- // M5.Speaker.setChannelVolume(1, 255);
55+ // if (M5.getBoard() == m5gfx::boards::board_M5StackCore2) {
56+ // {
57+ // auto spk_cfg = M5.Speaker.config();
58+ // spk_cfg.i2s_port = I2S_NUM_1;
59+ // spk_cfg.sample_rate = 96000;
60+
61+ // spk_cfg.pin_data_out = 2;
62+ // spk_cfg.pin_bck = 19;
63+ // spk_cfg.pin_ws = 0; // LRCK
64+
65+ // spk_cfg.stereo = true;
66+ // spk_cfg.buzzer = false;
67+ // spk_cfg.use_dac = false;
68+ // spk_cfg.magnification = 16;
69+ // M5.Speaker.config(spk_cfg);
70+ // }
71+ // } else {
72+ // auto spk_cfg = M5.Speaker.config();
73+ // spk_cfg.i2s_port = I2S_NUM_1;
74+ // spk_cfg.sample_rate = 96000;
75+
76+ // spk_cfg.pin_data_out = 15;
77+ // spk_cfg.pin_bck = 13;
78+ // spk_cfg.pin_ws = 0; // LRCK
79+
80+ // spk_cfg.stereo = true;
81+ // spk_cfg.buzzer = false;
82+ // spk_cfg.use_dac = false;
83+ // spk_cfg.magnification = 16;
84+ // M5.Speaker.config(spk_cfg);
85+ // }
86+
87+ // M5.Speaker.begin();
88+ // M5.Speaker.setVolume(128);
89+ // M5.Speaker.setChannelVolume(0, 255);
90+ // M5.Speaker.setChannelVolume(1, 255);
11991
12092 gfx_rca.init ();
12193 gfx_rca.setFont (&DejaVu24);
12294
123- // xTaskCreatePinnedToCore(play_wav, "play_wav", 8192, NULL, 1, NULL, 1);
95+ // xTaskCreatePinnedToCore(play_wav, "play_wav", 8192, NULL, 1, NULL, 1);
12496
12597 pinMode (16 , OUTPUT);
12698 pinMode (17 , OUTPUT);
@@ -160,24 +132,7 @@ void loop(void) {
160132 is_pin_25 = true ;
161133 M5.Display .drawCenterString (" Using Pin 25" , 160 , 120 );
162134
163- lgfx::Panel_CVBS* p = (lgfx::Panel_CVBS*)gfx_rca.panel ();
164- p->deinit ();
165- auto cfg = p->config ();
166- cfg.memory_width = 240 ;
167- cfg.memory_height = 180 ;
168- cfg.panel_width = 240 ;
169- cfg.panel_height = 180 ;
170- cfg.offset_x = 0 ;
171- cfg.offset_y = 0 ;
172- p->config (cfg);
173- auto cfg_d = p->config_detail ();
174- cfg_d.pin_dac = 25 ;
175- cfg_d.use_psram = 0 ;
176- cfg_d.output_level = 128 ;
177- cfg_d.chroma_level = 128 ;
178- p->config_detail (cfg_d);
179-
180- gfx_rca.init ();
135+ gfx_rca.setOutputPin (25 );
181136 gfx_rca.setTextColor (TFT_WHITE, color_list[color_index]);
182137 gfx_rca.drawCenterString (" Using Pin 25" , 120 , 110 );
183138 }
@@ -189,24 +144,7 @@ void loop(void) {
189144 is_pin_25 = false ;
190145 M5.Display .drawCenterString (" Using Pin 26" , 160 , 120 );
191146
192- lgfx::Panel_CVBS* p = (lgfx::Panel_CVBS*)gfx_rca.panel ();
193- p->deinit ();
194- auto cfg = p->config ();
195- cfg.memory_width = 240 ;
196- cfg.memory_height = 180 ;
197- cfg.panel_width = 240 ;
198- cfg.panel_height = 180 ;
199- cfg.offset_x = 0 ;
200- cfg.offset_y = 0 ;
201- p->config (cfg);
202- auto cfg_d = p->config_detail ();
203- cfg_d.pin_dac = 26 ;
204- cfg_d.use_psram = 0 ;
205- cfg_d.output_level = 128 ;
206- cfg_d.chroma_level = 128 ;
207- p->config_detail (cfg_d);
208-
209- gfx_rca.init ();
147+ gfx_rca.setOutputPin (26 );
210148 gfx_rca.setTextColor (TFT_WHITE, color_list[color_index]);
211149 gfx_rca.drawCenterString (" Using Pin 26" , 120 , 110 );
212150 }
0 commit comments