#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <dynamixel.h>
void moveservo();
int i;
int main(void)
{
DDRC = 0xFF;
PORTC = 0xFE;
TIMSK0 |= 0x01;
TCCR0B &= 0xf8;
TCCR0B |= 0x05;
sei();
dxl_initialize(0,1); //0= number connected com devices, 1= Baud rate
serial_initialize(57600);
while(1)
{
moveservo();
_delay_ms(300);
}
return 1;
}
void moveservo()
{
i++;
if (i > 4) i=0;
int goal_pos = 160*i;
//int mot_num = 18;
int address = 30;
//int pos = dxl_read_word(18,30);
int pos2= dxl_read_word(18,36);
//printf("Desire Position: %d Actual position: %d\n",pos,pos2);
printf("Actual Position: %d\n",pos2
); dxl_write_word(254,address,goal_pos);
}
ISR(TIMER0_OVF_vect)
{
static int j=0, i=0;
j++;
if (j>=64) {
j=0;
//PORTC = ~(1<<i);
i++;
if (i > 4) i=0;
int goal_pos = 160*i;
int mot_num = 18;
int address = 30;
int pos = dxl_read_word(18,36);
dxl_write_word(254,address,goal_pos);
}
}
I2RlZmluZSBGX0NQVSAxNjAwMDAwMFVMCiNpbmNsdWRlIDxhdnIvaW8uaD4KI2luY2x1ZGUgPGF2ci9pbnRlcnJ1cHQuaD4KI2luY2x1ZGUgPHV0aWwvZGVsYXkuaD4KI2luY2x1ZGUgPGR5bmFtaXhlbC5oPgoKdm9pZCBtb3Zlc2Vydm8oKTsKCmludCBpOwoKaW50IG1haW4odm9pZCkKewoJRERSQyA9IDB4RkY7CglQT1JUQyA9IDB4RkU7CglUSU1TSzAgfD0gMHgwMTsKCVRDQ1IwQiAmPSAweGY4OwoJVENDUjBCIHw9IDB4MDU7CglzZWkoKTsKCglkeGxfaW5pdGlhbGl6ZSgwLDEpOyAvLzA9IG51bWJlciBjb25uZWN0ZWQgY29tIGRldmljZXMsIDE9IEJhdWQgcmF0ZSAKCXNlcmlhbF9pbml0aWFsaXplKDU3NjAwKTsKCgkKCXdoaWxlKDEpCgl7CgkJbW92ZXNlcnZvKCk7CgkJX2RlbGF5X21zKDMwMCk7Cgl9CglyZXR1cm4gMTsKfQoKCnZvaWQgbW92ZXNlcnZvKCkKewoJaSsrOwoJaWYgKGkgPiA0KSBpPTA7CglpbnQgZ29hbF9wb3MgPSAxNjAqaTsKCS8vaW50IG1vdF9udW0gPSAxODsKCWludCBhZGRyZXNzID0gMzA7CgkvL2ludCBwb3MgPSBkeGxfcmVhZF93b3JkKDE4LDMwKTsKCWludCBwb3MyPSBkeGxfcmVhZF93b3JkKDE4LDM2KTsKCS8vcHJpbnRmKCJEZXNpcmUgUG9zaXRpb246ICVkIEFjdHVhbCBwb3NpdGlvbjogJWRcbiIscG9zLHBvczIpOwoJcHJpbnRmKCJBY3R1YWwgUG9zaXRpb246ICVkXG4iLHBvczIpOwoJZHhsX3dyaXRlX3dvcmQoMjU0LGFkZHJlc3MsZ29hbF9wb3MpOwkKfQoKSVNSKFRJTUVSMF9PVkZfdmVjdCkKewoJc3RhdGljIGludCBqPTAsIGk9MDsKCWorKzsKCWlmIChqPj02NCkgewoJCWo9MDsKCQkvL1BPUlRDID0gfigxPDxpKTsKCQlpKys7CgkJaWYgKGkgPiA0KSBpPTA7CgkJaW50IGdvYWxfcG9zID0gMTYwKmk7CgkJaW50IG1vdF9udW0gPSAxODsKCQlpbnQgYWRkcmVzcyA9IDMwOwoJCWludCBwb3MgPSBkeGxfcmVhZF93b3JkKDE4LDM2KTsKCQlkeGxfd3JpdGVfd29yZCgyNTQsYWRkcmVzcyxnb2FsX3Bvcyk7Cgl9Cn0K