1
- #define LGFX_USE_V1
2
1
#include < M5Unified.h>
2
+ #include < M5UnitRCA.h>
3
3
4
4
#include " wav_unsigned_8bit_click.cpp"
5
5
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;
40
7
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
42
17
43
18
static constexpr int color_list[3 ] = {TFT_RED, TFT_GREEN, TFT_BLUE};
44
19
static int color_index = 0 ;
@@ -47,14 +22,14 @@ static bool is_pin_25 = true;
47
22
48
23
void play_wav (void *) {
49
24
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 );
52
27
delay (3000 );
53
28
M5.Speaker .stop (0 );
54
29
delay (500 );
55
30
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 );
58
33
delay (3000 );
59
34
M5.Speaker .stop (1 );
60
35
delay (500 );
@@ -73,54 +48,51 @@ void setup(void) {
73
48
M5.Display .setTextColor (TFT_WHITE, TFT_BLACK);
74
49
M5.Display .drawCenterString (" M5 RCA Module :)" , 160 , 20 );
75
50
76
- M5.Display .drawCenterString (" Using Pin 25 " , 160 , 120 );
51
+ M5.Display .drawCenterString (" Using Pin 26 " , 160 , 120 );
77
52
M5.Display .drawString (" Pin 25" , 25 , 210 );
78
53
M5.Display .drawString (" Pin 26" , 220 , 210 );
79
54
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);
119
91
120
92
gfx_rca.init ();
121
93
gfx_rca.setFont (&DejaVu24);
122
94
123
- // xTaskCreatePinnedToCore(play_wav, "play_wav", 8192, NULL, 1, NULL, 1);
95
+ // xTaskCreatePinnedToCore(play_wav, "play_wav", 8192, NULL, 1, NULL, 1);
124
96
125
97
pinMode (16 , OUTPUT);
126
98
pinMode (17 , OUTPUT);
@@ -160,24 +132,7 @@ void loop(void) {
160
132
is_pin_25 = true ;
161
133
M5.Display .drawCenterString (" Using Pin 25" , 160 , 120 );
162
134
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 );
181
136
gfx_rca.setTextColor (TFT_WHITE, color_list[color_index]);
182
137
gfx_rca.drawCenterString (" Using Pin 25" , 120 , 110 );
183
138
}
@@ -189,24 +144,7 @@ void loop(void) {
189
144
is_pin_25 = false ;
190
145
M5.Display .drawCenterString (" Using Pin 26" , 160 , 120 );
191
146
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 );
210
148
gfx_rca.setTextColor (TFT_WHITE, color_list[color_index]);
211
149
gfx_rca.drawCenterString (" Using Pin 26" , 120 , 110 );
212
150
}
0 commit comments