make the code simpler

This commit is contained in:
Kuba 2023-10-30 19:56:16 +00:00
parent eb297bc731
commit 15f8b43c31
3 changed files with 7 additions and 10 deletions

View File

@ -15,10 +15,6 @@
#include "control_pipe.h" #include "control_pipe.h"
#define CTL_BUFFER_SIZE 70 #define CTL_BUFFER_SIZE 70
#define GPIO_PAD_0_27 (0x2C/4)
#define GPIO_PAD_28_45 (0x30/4)
static volatile uint32_t *pad_reg;
int fd; int fd;
FILE *f_ctl; FILE *f_ctl;
@ -26,9 +22,8 @@ FILE *f_ctl;
/* /*
* Opens a file (pipe) to be used to control the RDS coder, in non-blocking mode. * Opens a file (pipe) to be used to control the RDS coder, in non-blocking mode.
*/ */
int open_control_pipe(char *filename, volatile uint32_t *padreg) int open_control_pipe(char *filename)
{ {
pad_reg = padreg;
fd = open(filename, O_RDWR | O_NONBLOCK); fd = open(filename, O_RDWR | O_NONBLOCK);
if(fd == -1) return -1; if(fd == -1) return -1;
@ -129,8 +124,7 @@ ResultAndArg poll_control_pipe() {
resarg.res = CONTROL_PIPE_PTY_SET; resarg.res = CONTROL_PIPE_PTY_SET;
} else if(fifo[0] == 'P' && fifo[1] == 'W' && fifo[2] == 'R') { } else if(fifo[0] == 'P' && fifo[1] == 'W' && fifo[2] == 'R') {
int power_level = atoi(arg); int power_level = atoi(arg);
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power_level; resarg.arg = (char)power_level;
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power_level;
printf("POWER set to: \"%s\"\n", arg); printf("POWER set to: \"%s\"\n", arg);
resarg.res = CONTROL_PIPE_PWR_SET; resarg.res = CONTROL_PIPE_PWR_SET;
} else if(fifo[0] == 'R' && fifo[1] == 'T' && fifo[2] == 'B') { } else if(fifo[0] == 'R' && fifo[1] == 'T' && fifo[2] == 'B') {

View File

@ -21,6 +21,6 @@ typedef struct {
char *arg; char *arg;
} ResultAndArg; } ResultAndArg;
extern int open_control_pipe(char *filename, volatile uint32_t *padreg); extern int open_control_pipe(char *filename);
extern int close_control_pipe(); extern int close_control_pipe();
extern ResultAndArg poll_control_pipe(); extern ResultAndArg poll_control_pipe();

View File

@ -96,7 +96,7 @@ int tx(uint32_t carrier_freq, char *audio_file, uint16_t pi, char *ps, char *rt,
pad_reg = (volatile uint32_t *)map_peripheral(PAD_VIRT_BASE, PAD_LEN); pad_reg = (volatile uint32_t *)map_peripheral(PAD_VIRT_BASE, PAD_LEN);
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power; pad_reg[GPIO_PAD_0_27] = 0x5a000018 + power;
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power; pad_reg[GPIO_PAD_28_45] = 0x5a000018 + power;
// Data structures for baseband data // Data structures for baseband data
float data[DATA_SIZE]; float data[DATA_SIZE];
float devfreq[DATA_SIZE]; float devfreq[DATA_SIZE];
@ -189,6 +189,9 @@ int tx(uint32_t carrier_freq, char *audio_file, uint16_t pi, char *ps, char *rt,
varying_ps = 0; varying_ps = 0;
} else if(pollResult.res == CONTROL_PIPE_RDS_SET) { } else if(pollResult.res == CONTROL_PIPE_RDS_SET) {
drds = (int)pollResult.arg; drds = (int)pollResult.arg;
} else if(pollResult.res == CONTROL_PIPE_PWR_SET) {
pad_reg[GPIO_PAD_0_27] = 0x5a000018 + (int)pollResult.arg;
pad_reg[GPIO_PAD_28_45] = 0x5a000018 + (int)pollResult.arg;
} }
} }