| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | program dsMotion;{$mode objfpc}uses  ctypes, nds9;//sets the offset of the x and y and gyro and the 1 G offset of z//to callivrate other offsets you would have to instruct the user to orient//the DS in various positions  procedure Calibrate();begin  scanKeys();    consoleClear();    iprintf('Set the DS on a flat table...'#10'Press A'#10);    while ((not keysDown()) and KEY_A) <> 0 do    scanKeys();    //these set the zero points of the accelerometers and gryo  motion_set_offs_x();  motion_set_offs_y();  motion_set_offs_gyro();    //this should be set to the acceleration value at 1 z  motion_set_sens_z(motion_read_z());  end;begin	  consoleDemoInit();    motion_init();    while true do  begin	    scanKeys();        if (keysDown() and KEY_A) <> 0 then       Calibrate();      consoleClear();    if motion_init() <> 0 then      iprintf('Nds is inserted'#10)    else      iprintf('Nds is not inserted'#10);        iprintf('X: raw %i  miliG %i'#10, motion_read_x(), motion_acceleration_x());    iprintf('Y: raw %i  miliG %i'#10, motion_read_y(), motion_acceleration_y());    iprintf('Z: raw %i  miliG %i'#10, motion_read_z(), motion_acceleration_z());    iprintf('R: raw %i  deg/sec %i'#10, motion_read_gyro(), motion_rotation());    iprintf('Press A to calibrate'#10);	    swiWaitForVBlank();  end;end.
 |