mirror of https://github.com/radex/radmatrix.git
Compare commits
2 Commits
efb94c2d78
...
0c2f64a973
Author | SHA1 | Date |
---|---|---|
radex | 0c2f64a973 | |
radex | 0a3f0e9216 |
|
@ -16,7 +16,7 @@ if len(data_in.shape)>1:
|
|||
print("resampling...")
|
||||
|
||||
converter = 'sinc_best' # or 'sinc_fastest', ...
|
||||
desired_sample_rate = 22000.0
|
||||
desired_sample_rate = 44000.0
|
||||
ratio = desired_sample_rate/datasamplerate
|
||||
data_out = samplerate.resample(data_in, ratio, converter)
|
||||
|
||||
|
|
|
@ -43,8 +43,8 @@ void pwm_interrupt_handler() {
|
|||
|
||||
// 11 KHz is fine for speech. Phone lines generally sample at 8 KHz
|
||||
#define SYS_CLOCK 125000000.0f
|
||||
#define AUDIO_WRAP 250.0f
|
||||
#define AUDIO_CLK_DIV (SYS_CLOCK / AUDIO_WRAP / 8 / AUDIO_RATE)
|
||||
#define AUDIO_WRAP 256.0f
|
||||
#define AUDIO_CLK_DIV (SYS_CLOCK / AUDIO_WRAP / 8.0f / AUDIO_RATE)
|
||||
|
||||
void init_audio() {
|
||||
gpio_set_function(AUDIO_PIN, GPIO_FUNC_PWM);
|
||||
|
@ -63,7 +63,7 @@ void init_audio() {
|
|||
pwm_config config = pwm_get_default_config();
|
||||
|
||||
pwm_config_set_clkdiv(&config, AUDIO_CLK_DIV);
|
||||
pwm_config_set_wrap(&config, 250);
|
||||
pwm_config_set_wrap(&config, AUDIO_WRAP);
|
||||
pwm_init(audio_pin_slice, /*0,*/ &config, true);
|
||||
|
||||
pwm_set_gpio_level(AUDIO_PIN, 0);
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
#ifndef _audio_h
|
||||
#define _audio_h
|
||||
|
||||
#define AUDIO_PIN 2
|
||||
#define AUDIO_PIN 8
|
||||
|
||||
#define AUDIO_RATE 22000.0f
|
||||
#define BUFFER_LEN 512*4
|
||||
#define AUDIO_RATE 44000.0f
|
||||
#define BUFFER_LEN 512*16
|
||||
#define BUFFER_LEN_MS (BUFFER_LEN / AUDIO_RATE) * 1000.0f
|
||||
|
||||
extern uint8_t wav_buffer_0[BUFFER_LEN];
|
||||
|
|
|
@ -158,27 +158,26 @@ void leds_init() {
|
|||
pinMode(COL_SER, OUTPUT);
|
||||
pinMode(COL_OE, OUTPUT);
|
||||
outputEnable(ROW_OE, false);
|
||||
// pinMode(COL_RCLK, OUTPUT);
|
||||
pinMode(RCLK, OUTPUT);
|
||||
pinMode(COL_RCLK, OUTPUT);
|
||||
pinMode(COL_SRCLK, OUTPUT);
|
||||
pinMode(COL_SRCLR, OUTPUT);
|
||||
pinMode(COL_RCLK, OUTPUT);
|
||||
|
||||
// set up row pins
|
||||
pinMode(ROW_SER, OUTPUT);
|
||||
pinMode(ROW_OE, OUTPUT);
|
||||
outputEnable(ROW_OE, false);
|
||||
// pinMode(ROW_RCLK, OUTPUT);
|
||||
pinMode(ROW_RCLK, OUTPUT);
|
||||
pinMode(ROW_SRCLK, OUTPUT);
|
||||
pinMode(ROW_SRCLR, OUTPUT);
|
||||
|
||||
// clear output - cols
|
||||
// clear output
|
||||
clearShiftReg(COL_SRCLK, COL_SRCLR);
|
||||
pulsePin(RCLK);
|
||||
outputEnable(COL_OE, true); // this is fine, because we control OE via rows only
|
||||
|
||||
// clear output - rows
|
||||
clearShiftReg(ROW_SRCLK, ROW_SRCLR);
|
||||
pulsePin(RCLK);
|
||||
|
||||
pulsePin(COL_RCLK);
|
||||
pulsePin(ROW_RCLK);
|
||||
|
||||
outputEnable(COL_OE, true); // this is fine, because we control OE via rows only
|
||||
}
|
||||
|
||||
void leds_disable() {
|
||||
|
@ -282,9 +281,9 @@ void leds_initPusher() {
|
|||
pio_sm_set_consecutive_pindirs(pio, sm, COL_SRCLK, 1, true);
|
||||
|
||||
// Set SET (RCLK) pin, connect to pad, set as output
|
||||
sm_config_set_set_pins(&config, RCLK, 1);
|
||||
pio_gpio_init(pio, RCLK);
|
||||
pio_sm_set_consecutive_pindirs(pio, sm, RCLK, 1, true);
|
||||
sm_config_set_set_pins(&config, ROW_RCLK, 1);
|
||||
pio_gpio_init(pio, ROW_RCLK);
|
||||
pio_sm_set_consecutive_pindirs(pio, sm, ROW_RCLK, 1, true);
|
||||
|
||||
// Load our configuration, and jump to the start of the program
|
||||
pio_sm_init(pio, sm, offset, &config);
|
||||
|
|
|
@ -4,18 +4,48 @@
|
|||
|
||||
#include <Arduino.h>
|
||||
|
||||
#define COL_SER 20
|
||||
#define COL_OE 21
|
||||
// #define COL_RCLK 22
|
||||
#define RCLK 22
|
||||
#define COL_SRCLK 26
|
||||
#define COL_SRCLR 27
|
||||
#define COMMON_SER 21
|
||||
// #define COMMON_RCLK 23
|
||||
#define COMMON_SRCLR 25
|
||||
|
||||
#define ROW_SER 14
|
||||
// #define COL_SER 21
|
||||
#define COL_OE 22
|
||||
#define COL_RCLK 23
|
||||
#define COL_SRCLK 24
|
||||
// #define COL_SRCLR 25
|
||||
|
||||
// #define ROW_SER 14
|
||||
#define ROW_OE 13
|
||||
// #define ROW_RCLK 12
|
||||
#define ROW_SRCLK 11
|
||||
#define ROW_SRCLR 10
|
||||
#define ROW_RCLK 20
|
||||
#define ROW_SRCLK 18
|
||||
// #define ROW_SRCLR 15
|
||||
|
||||
#if defined(COMMON_SER) && (defined(ROW_SER) || defined(COL_SER))
|
||||
#error "COMMON_SER and ROW_SER/COL_SER cannot be defined at the same time"
|
||||
#endif
|
||||
|
||||
#if defined(COMMON_SER)
|
||||
#define COL_SER COMMON_SER
|
||||
#define ROW_SER COMMON_SER
|
||||
#endif
|
||||
|
||||
#if defined(COMMON_RCLK) && (defined(ROW_RCLK) || defined(COL_RCLK))
|
||||
#error "COMMON_RCLK and ROW_RCLK/COL_RCLK cannot be defined at the same time"
|
||||
#endif
|
||||
|
||||
#if defined(COMMON_RCLK)
|
||||
#define COL_RCLK COMMON_RCLK
|
||||
#define ROW_RCLK COMMON_RCLK
|
||||
#endif
|
||||
|
||||
#if defined(COMMON_SRCLR) && (defined(ROW_SRCLR) || defined(COL_SRCLR))
|
||||
#error "COMMON_SRCLR and ROW_SRCLR/COL_SRCLR cannot be defined at the same time"
|
||||
#endif
|
||||
|
||||
#if defined(COMMON_SRCLR)
|
||||
#define COL_SRCLR COMMON_SRCLR
|
||||
#define ROW_SRCLR COMMON_SRCLR
|
||||
#endif
|
||||
|
||||
#define ROW_MODULES 2
|
||||
#define ROW_COUNT ROW_MODULES * 20
|
||||
|
|
|
@ -11,7 +11,7 @@ void loadVideo(size_t index);
|
|||
void setup() {
|
||||
leds_init();
|
||||
setupSDPins();
|
||||
pinMode(4, INPUT_PULLUP);
|
||||
pinMode(9, INPUT_PULLUP);
|
||||
|
||||
delay(2000);
|
||||
Serial.begin(115200);
|
||||
|
@ -62,7 +62,7 @@ void nextSong() {
|
|||
}
|
||||
|
||||
void loop() {
|
||||
if (digitalRead(4) == LOW) {
|
||||
if (digitalRead(9) == LOW) {
|
||||
delay(100);
|
||||
nextSong();
|
||||
delay(50);
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
#include "ff.h"
|
||||
#include "f_util.h"
|
||||
|
||||
#define SD_DET_PIN 28
|
||||
#define SD_DET_PIN 4
|
||||
|
||||
#define SD_PIN_SS 17
|
||||
#define SD_PIN_SCK 18
|
||||
#define SD_PIN_MOSI 19
|
||||
#define SD_PIN_MISO 16
|
||||
#define SD_PIN_SS 1
|
||||
#define SD_PIN_SCK 2
|
||||
#define SD_PIN_MOSI 3
|
||||
#define SD_PIN_MISO 0
|
||||
|
||||
static spi_t spi = {
|
||||
.hw_inst = spi0,
|
||||
|
|
Loading…
Reference in New Issue