I have simplified the question very much. I am trying to send the encoder motor feed back to Processing which will be displayed on the processing. But the error is coming something like:
error disabling serialEvent for "COM3" null
import processing.serial.*;
Serial port;
int index = 0;
String lmotor, rmotor, data, status;
void setup()
{
size(500, 500);
port = new Serial(this, "COM3", 9600);
port.bufferUntil('A');
}
void serialEvent(Serial port)
{
if(data != null)
{
println(data);
data = port.readStringUntil('A');
data = data.substring(0, data.length()-1);
index = data.indexOf(",");
lmotor = data.substring(0, index);
rmotor = data.substring(index+1, data.length());
}
}
void draw()
{
background(255);
textSize(100);
fill(random(0, 255), 0, random(0, 255));
text(lmotor, 50, 150);
textSize(100);
fill(0, random(0, 255), random(0, 255));
text(rmotor, 300, 150);
}
#include <avr/io.h>
#include <util/delay.h>
#define SETBIT(ADDRESS, BIT) (ADDRESS|=(1<<BIT));
#define CLEARBIT(ADDRESS, BIT) (ADDRESS&=~(1<<BIT));
#define CHECKBIT(ADDRESS, BIT) (ADDRESS & (1<<BIT));
char c;
int sfl=0, sfr=0, y=0, temp;
void interrupt_init()
{
cli();
EIMSK = 0x03;
EICRA = 0x0A;
sei();
}
void encoder_pin_config_init()
{
DDRD = DDRD & 0xF3;
// Internal pull-up resistors
SETBIT(PORTD, PD3);
SETBIT(PORTD, PD2);
}
void byte_init (int baud)
{
UBRR0H = (baud>>8); // Shift the register right by 8 bits
UBRR0L = baud; // Set baud rate
UCSR0B |= (1<<TXEN0) | (1<<RXEN0); // Enable receiver and transmitter
UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01); // 8-bit data format
}
void byte_transmit (unsigned char data)
{
while (!(UCSR0A & (1<<UDRE0))) // Wait while register is free
;
UDR0 = data; // Load data in the register
}
unsigned char byte_receive (void)
{
while(!(UCSR0A) & (1<<RXC0)) // Wait while data is being received
;
return UDR0; // Return 8-bit data
}
void setup()
{
interrupt_init();
byte_init(103);
encoder_pin_config_init();
Serial.begin(9600);
pinMode(4, HIGH);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void loop()
{
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
temp = sfl;
while(temp>0)
{
y = temp%10;
c = y + '0';
byte_transmit(c);
temp = temp/10;
}
byte_transmit(',');
temp = sfr;
while(temp>0)
{
y = temp%10;
c = y + '0';
byte_transmit(c);
temp = temp/10;
}
byte_transmit('A');
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(4, LOW);
}
ISR(INT0_vect)
{
sfl++;
}
ISR(INT1_vect)
{
sfr++;
}