Jump to content

Accelerometer 2.0 - Zeitdifferenz zwischen zwei Samples bei continuous_acceleration_configuration


Recommended Posts

Hallo zusammen,

wenn ich das Accelerometer 2.0 Bricklet mit continuous_acceleration_configuration() einstelle, sagen wir beispielsweise 12800 mit einer Achse wie in unterem Beispiel,
führt das Cooperative multitasking des KX122 dazu, dass die Zeitdifferenz zwischen zwei Samples immer konstant ist? In dem Fall müssten es ca. 1/12800 = 78 us sein.

Dazu müsste ja das Senden der Daten zum XMC via SPI wirklich so fix sein (< 78 us), dass die nächste Wandlung rechtzeitig geschehen kann. 

Hintergrund der Frage: Ich verpasse den Samples, die über den get_continuous_acceleration_16_bit_callback_receiver() reinkommen, nachträglich ihre individuellen Zeitstempel.
Ich mache das im Moment so, aber heute beim Verbessern des Codes kam die Frage auf, ob das überhaupt technisch vertretbar ist. Habt ihr dazu vielleicht Informationen?

Beste Grüße
Claudio

let sensor = AccelerometerV2Bricklet::new(&response.uid, &request_sender);

// set data rate and full scale configuration
sensor.set_configuration(ACCELEROMETER_V2_BRICKLET_DATA_RATE_12800HZ, ACCELEROMETER_V2_BRICKLET_FULL_SCALE_4G);

frequency_sensor.set_continuous_acceleration_configuration(
	true,
	false,
	false,
	ACCELEROMETER_V2_BRICKLET_RESOLUTION_16BIT,
);

// get callback receiver
let acceleration_receiver = sensor.get_continuous_acceleration_16_bit_callback_receiver();

// spawn thread to handle received callback messages
thread::spawn(move || {
	// process acceleration data
	for acceleration in acceleration_receiver {
		// in that case, acceleration has 30 i16 values
		// what's the difference in timing between the individual samples?
		// can we assume that coop_task_tick() generates timestamps with constant timeshifts?
	}
});

 

Edited by cl-
Link to post
Share on other sites

Wenn du am Ende 12800 Datenpunkte nach einer Sekunde hast sind diese auch Äquidistant gemessen worden. Der KX122 misst nicht mehr als die eingestellte Frequenz und das Bricklet liest nichts doppelt.

Wenn da zwischendurch Daten fehlen da diese nicht rechtzeitig verschickt werden konnten gibt es allerdings keine Aussage dazu an welcher Stelle diese genau Fehlen im Datenstrom.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...