How to implement Dmx receive code the arduino in to Max?
#include
#include
unsigned int adres = 0;
unsigned int baza = 1;
unsigned char n = 4;
unsigned char n0, n1, n2, n3;
ISR(USART_RXC_vect)
{
unsigned char status = UCSRA;
unsigned char data = UDR;
if((status&(1 « 4)) == 0)
{
adres++;
switch(adres - (baza+1))
{
case 0:
n0 = data;
break;
case 1:
n1 = data;
break;
case 2:
n2 = data;
break;
case 3:
n3 = data;
break;
}
}
else
{
adres = 0;
}
}
int main()
{
DDRC = 0xff;
PORTC = 0x00;
UBRRH = 0;
UBRRL = 1;
UCSRA=0x00;
UCSRB|=(1«RXEN);
UCSRB|=(1«RXCIE);
UCSRC|=(1«URSEL)|(1«UCSZ1)|(1«UCSZ0);
sei();
while(1)
{
PORTC = n3;
}
}
SIGNAL (USART_RXC_vect)
{
cli();
static char DMX_status;
static char kanal;
register char status=UCSRA;
register char data=UDR;
if (status&(1«FE))
{
DMX_status=1;
}
else
{
switch (DMX_status)
{
case 0:
DMX_status=0;
break;
case 1:
{
if (0==data)
{
DMX_status=2;
PORTB&=~(1«0);
kanal=0;
}
else
{
DMX_status=0;
}
}
break;
case 2:
{
{
kanal++;
if(kanal==Adres_DMX)
{
DMX_status=3;
kanal=0;
}
}
}
break;
case 3:
{
if (kanal
{
r_dmxbufer[kanal]=data;
kanal++;
}
else
{
DMX_status=0;
}
}
break;
}
}
Is it possible to implement this via a serial port in MAX?