forked from PAWPAW-Mirror/lib_xua
Formatting
This commit is contained in:
@@ -57,8 +57,7 @@ int uin_count = 0; // UART bytes in
|
|||||||
void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
||||||
clock ?clk_midi,
|
clock ?clk_midi,
|
||||||
chanend c_midi,
|
chanend c_midi,
|
||||||
unsigned cable_number)
|
unsigned cable_number) {
|
||||||
{
|
|
||||||
unsigned symbol = 0x0; // Symbol in progress of being sent out
|
unsigned symbol = 0x0; // Symbol in progress of being sent out
|
||||||
unsigned outputting = 0; // Guard when outputting data
|
unsigned outputting = 0; // Guard when outputting data
|
||||||
unsigned time; // Timer value used for outputting
|
unsigned time; // Timer value used for outputting
|
||||||
@@ -111,8 +110,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
while (1) {
|
while (1) {
|
||||||
int is_ack;
|
int is_ack;
|
||||||
unsigned int datum;
|
unsigned int datum;
|
||||||
select
|
select {
|
||||||
{
|
|
||||||
// Input to read the start bit
|
// Input to read the start bit
|
||||||
#ifndef MIDI_LOOPBACK
|
#ifndef MIDI_LOOPBACK
|
||||||
#ifdef MIDI_IN_4BIT_PORT
|
#ifdef MIDI_IN_4BIT_PORT
|
||||||
@@ -130,8 +128,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
break;
|
break;
|
||||||
// Input to read the remaining bits
|
// Input to read the remaining bits
|
||||||
case isRX => t2 when timerafter(rxT) :> int _ :
|
case isRX => t2 when timerafter(rxT) :> int _ :
|
||||||
if (rxI++ < 8)
|
if (rxI++ < 8) {
|
||||||
{
|
|
||||||
// shift in bits into the high end of a word
|
// shift in bits into the high end of a word
|
||||||
unsigned bit;
|
unsigned bit;
|
||||||
p_midi_in :> bit;
|
p_midi_in :> bit;
|
||||||
@@ -139,14 +136,11 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
rxT += bit_time;
|
rxT += bit_time;
|
||||||
rxPT += bit_time;
|
rxPT += bit_time;
|
||||||
asm("setpt res[%0],%1"::"r"(p_midi_in),"r"(rxPT));
|
asm("setpt res[%0],%1"::"r"(p_midi_in),"r"(rxPT));
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
unsigned bit;
|
unsigned bit;
|
||||||
// rcv and check stop bit
|
// rcv and check stop bit
|
||||||
p_midi_in :> bit;
|
p_midi_in :> bit;
|
||||||
if ((bit & 0x1) == 1)
|
if ((bit & 0x1) == 1) {
|
||||||
{
|
|
||||||
unsigned valid = 0;
|
unsigned valid = 0;
|
||||||
unsigned event = 0;
|
unsigned event = 0;
|
||||||
uin_count++;
|
uin_count++;
|
||||||
@@ -169,11 +163,9 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
} else {
|
} else {
|
||||||
enqueue(to_host_fifo, event);
|
enqueue(to_host_fifo, event);
|
||||||
}
|
}
|
||||||
}
|
} else if (valid) {
|
||||||
else if (valid) {
|
|
||||||
// printstr("g");
|
// printstr("g");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
isRX = 0;
|
isRX = 0;
|
||||||
}
|
}
|
||||||
@@ -184,8 +176,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
// until symbol is zero expect pattern like 10'b1dddddddd0
|
// until symbol is zero expect pattern like 10'b1dddddddd0
|
||||||
// This code will leave the output high afterwards due to the stop bit added with makeSymbol
|
// This code will leave the output high afterwards due to the stop bit added with makeSymbol
|
||||||
case outputting => t when timerafter(time) :> int _:
|
case outputting => t when timerafter(time) :> int _:
|
||||||
if (symbol == 0)
|
if (symbol == 0) {
|
||||||
{
|
|
||||||
uout_count++;
|
uout_count++;
|
||||||
outputted_symbol = outputting_symbol;
|
outputted_symbol = outputting_symbol;
|
||||||
// have we got another symbol to send to uart?
|
// have we got another symbol to send to uart?
|
||||||
@@ -204,12 +195,9 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
t :> time;
|
t :> time;
|
||||||
time += bit_time;
|
time += bit_time;
|
||||||
txPT += bit_time;
|
txPT += bit_time;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
outputting = 0;
|
outputting = 0;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
time += bit_time;
|
time += bit_time;
|
||||||
txPT += bit_time;
|
txPT += bit_time;
|
||||||
p_midi_out @ txPT <: (symbol & 1);
|
p_midi_out @ txPT <: (symbol & 1);
|
||||||
@@ -227,12 +215,10 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
//printstr("uart->decouple\n");
|
//printstr("uart->decouple\n");
|
||||||
outuint(c_midi, dequeue(to_host_fifo));
|
outuint(c_midi, dequeue(to_host_fifo));
|
||||||
th_count++;
|
th_count++;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
waiting_for_ack = 0;
|
waiting_for_ack = 0;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int event;
|
int event;
|
||||||
unsigned midi[3];
|
unsigned midi[3];
|
||||||
unsigned size;
|
unsigned size;
|
||||||
@@ -248,8 +234,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
|
|||||||
outuint(c_midi, event);
|
outuint(c_midi, event);
|
||||||
th_count++;
|
th_count++;
|
||||||
waiting_for_ack = 1;
|
waiting_for_ack = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
event = byterev(event);
|
event = byterev(event);
|
||||||
enqueue(to_host_fifo, event);
|
enqueue(to_host_fifo, event);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user