
cmq per il tipo più appropriato ti conviene usare uint8_t che significa unsigned int a 8 bit, la libreria è da includere è questa (http://en.wikipedia.org/wiki/Stdint.h)
Codice: Seleziona tutto
void midi()
{
unsigned int byte;
unsigned int pc = 0b11001111;
unsigned int cc = 0b10111111;
unsigned int db = 0b01111111;
loop:
while (1)
{
if (RCIF == 1)
{
byte = RCREG;
if (byte > db)
{
if (byte == pc)
{
// è un program change
}
if (byte == cc)
{
// è un control change
}
else
goto loop;
}
Codice: Seleziona tutto
while(1)
{
if (RCIF)
{
byte = RCREG;
PORTA = 0b00001100;
PORTA = 0b00000000;
}
}
Codice: Seleziona tutto
while(1)
{
if (RCIF)
{
byte = RCREG;
RCIF = 0;
if (byte)
{
PORTA = 0b00001100;
PORTA = 0b00000000;
}
}
}
Codice: Seleziona tutto
while(1)
{
if (RCIF)
{
byte = RCREG;
RCIF = 0; //provare a metterlo prima
if (byte)
{
PORTA = 0b00000100; //led 1
PORTA = 0b00000000;
}
else
{
PORTA = 0b00001000; //led 2
PORTA = 0b00000000;
}
byte = 0;
}
si comincio a credere che sia decisamente meglio... almeno capisci di chi è il problema, infondo si può far lampeggiare un led fino ad un certo punto!! ti serve qualcosa di più "espressivo" per fare debugging!Dimitree ha scritto: non mi resta che provare ad aggiungere un midi out al mio pic, così rimando indietro quello che riceve e visualizzo sul pc se è un messaggio comprensibile o no..