<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Tutorial: Accelerating the Freescale FRDM-KL25Z Freedom Board</title><link>https://community.element14.com/products/manufacturers/nxp/w/documents/23622/tutorial-accelerating-the-freescale-frdm-kl25z-freedom-board</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Tutorial: Accelerating the Freescale FRDM-KL25Z Freedom Board</title><link>https://community.element14.com/products/manufacturers/nxp/w/documents/23622/tutorial-accelerating-the-freescale-frdm-kl25z-freedom-board</link><pubDate>Tue, 09 Nov 2021 17:05:28 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:bd19a475-bd53-4987-9dfe-0d85c1d7fd1f</guid><dc:creator>MAb</dc:creator><comments>https://community.element14.com/products/manufacturers/nxp/w/documents/23622/tutorial-accelerating-the-freescale-frdm-kl25z-freedom-board#comments</comments><description>Current Revision posted to Documents by MAb on 11/9/2021 5:05:28 PM&lt;br /&gt;
&lt;p style="margin:0;text-align:left;"&gt;&lt;span style="font-family:arial,helvetica,sans-serif;color:#ff6600;font-size:12pt;"&gt;&lt;em&gt;This tutorial was extracted from Erich Styger blog &lt;a class="jive-link-external-small" href="http://mcuoneclipse.wordpress.com/" rel="nofollow" target="_blank"&gt;http://mcuoneclipse.wordpress.com&lt;/a&gt; with his agreement.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;In &lt;a class="jive-link-wiki-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/10464/codewarrior-tutorial-for-frdm-kl25z-enlightning-the-freescale-freedom-board"&gt;“Tutorial: Enlightning the Freedom KL25Z Board”&lt;/a&gt; I used the RGB LED on the FRDM-KL25Z board. This tutorial extends it to use the Freescale &lt;span&gt;&lt;span class="pf-product-add-icon pf-widget-map"&gt;&lt;/span&gt;&lt;span&gt;MMA8451Q&lt;/span&gt;&amp;nbsp; &amp;nbsp; MMA8451Q &lt;/span&gt;inertial sensor on the board which is connected through I2C to the Freescale &lt;span&gt;&lt;span class="pf-product-add-icon pf-widget-map"&gt;&lt;/span&gt;&lt;span&gt;MKL25Z128VLK4&lt;/span&gt;&amp;nbsp; &amp;nbsp; MKL25Z128VLK4 &lt;/span&gt;microcontroller:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/07/freedom-board-block-diagram.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img alt="Freedom Board Block Diagram" class="wp-image-3244 jiveImage size-full" height="430" src="http://mcuoneclipse.files.wordpress.com/2012/07/freedom-board-block-diagram.png?w=584&amp;amp;h=430" style="margin-left:auto;margin-right:auto;" title="Freedom Board Block Diagram" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Freedom Board Block Diagram with MMA8451Q (lower right corner)&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;The goal is show the accelerometer x, y and z-axis on the RGB LED.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;/span&gt; &amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;I’m using &lt;a class="jive-link-external-small" href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU-10-3-BETA&amp;amp;parentCode=CW-MCU10&amp;amp;fpsp=1" rel="nofollow" target="_blank"&gt;CodeWarrior for MCU V10.3&lt;/a&gt; which has the ARM gcc build tools integrated for the Kinetis family. It is possible to extend the &lt;a class="jive-link-wiki-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/10464/codewarrior-tutorial-for-frdm-kl25z-enlightning-the-freescale-freedom-board"&gt;“Tutorial: Enlightning the Freedom KL25Z Board”&lt;/a&gt; project and to add the I2C and accelerometer, or starting with a new project. In the steps below I create a new project, but I’m not going into the details how to add the LED as this is explained in the previous tutorial.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Creating the Project&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;I use the menu &lt;em&gt;File &amp;gt; New &amp;gt; Bareboard Project&lt;/em&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/file-new.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="File New Menu to create a new Bareboard project" class="jiveImage wp-image-4122 size-full" src="http://mcuoneclipse.files.wordpress.com/2012/08/file-new.png?w=584" style="margin-left:auto;margin-right:auto;" title="File New Menu to create a new Bareboard project" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;File New Menu to create a new Bareboard project&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;Next, I need to specify a name for my project:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/naming-the-project.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Naming the project" class="jiveImage size-full wp-image-4123" src="http://mcuoneclipse.files.wordpress.com/2012/08/naming-the-project.png?w=584" style="margin-left:auto;margin-right:auto;" title="Naming the project" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Naming the project&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;Next, I select the MKL25Z128 as my device:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;Hint: I can use the filter field to at the top of the dialog to filter the devices.&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/selecting-kl25z128.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Selecting KL25Z128 with filter text" class="wp-image-4125 jiveImage size-full" src="http://mcuoneclipse.files.wordpress.com/2012/08/selecting-kl25z128.png?w=584" style="margin-left:auto;margin-right:auto;" title="Selecting KL25Z128 with filter text" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Selecting KL25Z128 with filter text&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;Next, to select the debug connection. As the Freedom Board has the new &lt;a class="jive-link-external-small" href="http://mcuoneclipse.wordpress.com/2012/09/20/opensda-on-the-freedom-kl25z-board/" rel="nofollow" target="_blank"&gt;OpenSDA&lt;/a&gt; on it, this is my choice:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/opensda.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="OpenSDA Debug Connection" class="jiveImage size-full wp-image-4128" src="http://mcuoneclipse.files.wordpress.com/2012/08/opensda.png?w=584" style="margin-left:auto;margin-right:auto;" title="OpenSDA Debug Connection" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;OpenSDA Debug Connection&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;In the next dialog, I can go with the default settings. the ARM GNU GCC is the only (and default) tool-chain for Kinetis L (Cortex M0+) family:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/gcc.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="gcc ARM Toolchain" class="wp-image-4129 jiveImage size-full" src="http://mcuoneclipse.files.wordpress.com/2012/08/gcc.png?w=584" style="margin-left:auto;margin-right:auto;" title="gcc ARM Toolchain" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;gcc ARM Toolchain&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;Next, I select Processor Expert for my project:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/processor-expert1.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Processor Expert" class="jiveImage size-full wp-image-4131" src="http://mcuoneclipse.files.wordpress.com/2012/08/processor-expert1.png?w=584" style="margin-left:auto;margin-right:auto;" title="Processor Expert" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Processor Expert&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;Pressing ‘Finish’ creates the project for me:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/08/freedom-project.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Freedom Project" class="jiveImage size-full wp-image-4134" src="http://mcuoneclipse.files.wordpress.com/2012/08/freedom-project.png?w=584" style="margin-left:auto;margin-right:auto;" title="Freedom Project" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Freedom Project&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;RGB LED&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;How to add the RGB LED support is shown in “Tutorial: Enlightning the Freedom KL25Z Board” so I’m not explaining the details here.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:arial,helvetica,sans-serif;font-size:10pt;"&gt;&lt;em&gt;Hint: I can copy-paste components from one project to another project in MCU10.3, even between workspaces. Simply select the component(s), use the ‘copy’ context menu, switch to the other project and past it into the Components group of that project. Really cool!&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;With the LEDs added, the component list should look something like this:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/led-components.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="LED components" class="jiveImage wp-image-4320 size-full" src="http://mcuoneclipse.files.wordpress.com/2012/09/led-components.png?w=584" style="margin-left:auto;margin-right:auto;" title="LED components" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;LED components&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;I2C&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Processor Expert provides an I2C component (I2C_LDD) which implements a driver for it. I make sure that I have my project selected, then I choose in the &lt;em&gt;Components Library &lt;/em&gt;view the &lt;strong&gt;I2C_LDD&lt;/strong&gt; and add it to my project:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/adding-i2c_ldd.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Adding I2C_LDD" class="jiveImage size-full wp-image-4322" src="http://mcuoneclipse.files.wordpress.com/2012/09/adding-i2c_ldd.png?w=584" style="margin-left:auto;margin-right:auto;" title="Adding I2C_LDD" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Adding I2C_LDD&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;According to the schematics, the accelerometer is on the I2C0 channel (with PTE25 and PTE25), so this is already the default, so no change here:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-channel-with-pins.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="I2C Channel with pins" class="jiveImage size-full wp-image-4325" src="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-channel-with-pins.png?w=584" style="margin-left:auto;margin-right:auto;" title="I2C Channel with pins" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;I2C Channel with pins&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;span&gt;I’m only using the accelerometer on the bus, and the &lt;span&gt;&lt;span&gt;&lt;a id="e14-product-link-3577b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="link" href="https://referral.element14.com/OrderCodeView?fsku=1908021&amp;nsku=84R7350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-link" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('3577b'));" data-farnell="1908021" data-newark="84R7350" data-comoverride="" data-cmpoverride="" data-cpc="" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;MMA8451QR1&lt;/a&gt; &lt;/span&gt;&lt;/span&gt; is using the (hex) 1D slave address, so I specify this in the properties. To enter hex values, I need to switch the format to the ‘H’ mode:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/target-slave-address.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Target Slave Address" class="wp-image-4323 jiveImage size-full" src="http://mcuoneclipse.files.wordpress.com/2012/09/target-slave-address.png?w=584" style="margin-left:auto;margin-right:auto;" title="Target Slave Address" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Target Slave Address&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;&lt;span&gt;What I need to know the maximum bus clock frequency. The &lt;span&gt;&lt;span&gt;&lt;a id="e14-product-link-59176" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="link" href="https://referral.element14.com/OrderCodeView?fsku=1908021&amp;nsku=84R7350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-link" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('59176'));" data-farnell="1908021" data-newark="84R7350" data-comoverride="" data-cmpoverride="" data-cpc="" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;MMA8451QR1&lt;/a&gt; &lt;/span&gt;&lt;/span&gt; Reference guide gives this information:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-mma8451-clock-speed.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="I2C MMA8451 clock speed" class="jiveImage wp-image-4346 size-full" height="146" src="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-mma8451-clock-speed.png?w=584&amp;amp;h=146" style="margin-left:auto;margin-right:auto;" title="I2C MMA8451 clock speed" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;&lt;span&gt;I2C &lt;span&gt;&lt;span&gt;&lt;a id="e14-product-link-5a831" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="link" href="https://referral.element14.com/OrderCodeView?fsku=1908021&amp;nsku=84R7350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-link" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('5a831'));" data-farnell="1908021" data-newark="84R7350" data-comoverride="" data-cmpoverride="" data-cpc="" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;MMA8451QR1&lt;/a&gt; &lt;/span&gt;&lt;/span&gt; clock speed&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;And the schematic of the Freedom board has this:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-inertial-sensor-schematics.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="I2C Inertial Sensor Schematics" class="jiveImage size-full wp-image-4347" height="341" src="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-inertial-sensor-schematics.png?w=584&amp;amp;h=341" style="margin-left:auto;margin-right:auto;" title="I2C Inertial Sensor Schematics" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;I2C Inertial Sensor Schematics&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;So we have I2C Pullups with 4.7K Ohm, but Cb is not specified. With 100 KHz I would be on the safe side, but I tried 1 MHz and that worked fine for me:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-clock-settings.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="I2C Clock Settings" class="jiveImage size-full wp-image-4348" src="http://mcuoneclipse.files.wordpress.com/2012/09/i2c-clock-settings.png?w=584" style="margin-left:auto;margin-right:auto;" title="I2C Clock Settings" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;I2C Clock Settings&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;With this, I have my basic settings in place and can generate the driver code:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/generate-driver-code.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Generate Driver Code" class="wp-image-4349 jiveImage size-full" src="http://mcuoneclipse.files.wordpress.com/2012/09/generate-driver-code.png?w=584" style="margin-left:auto;margin-right:auto;" title="Generate Driver Code" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Generate Driver Code&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Accelerometer Interface&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Time to write the software &lt;a href="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt=":-)" class="jiveImage wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" /&gt;&lt;/a&gt; . Using the I2C_LDD, I need to use a device data structure with flags for data received and sent. So I declare this in my header file MMA8451.h:&lt;/span&gt;&lt;/p&gt;&lt;p class="bar" style="margin:0;"&gt;&amp;nbsp; &lt;/p&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;* MMA8451.h&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;* Author: Erich Styger&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#ifndef MMA8451_H_&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_H_&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;PE_Types.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;PE_LDD.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;typedef&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;struct&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;volatile&lt;/code&gt; &lt;code class="color1 cpp bold"&gt;bool&lt;/code&gt; &lt;code class="cpp plain"&gt;dataReceivedFlg; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* set to TRUE by the interrupt if we have received data */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;volatile&lt;/code&gt; &lt;code class="color1 cpp bold"&gt;bool&lt;/code&gt; &lt;code class="cpp plain"&gt;dataTransmittedFlg; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* set to TRUE by the interrupt if we have set data */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LDD_TDeviceData *handle; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* pointer to the device handle */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;} MMA8451_TDataState;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* \brief Run the demo application */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;MMA8451_Run(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#endif /* MMA8451_H_ */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;I2C_LDD Events&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;The I2C_LDD is using events callback. For this I need to set the proper flags in the event:&lt;/span&gt;&lt;/p&gt;&lt;p class="bar" style="margin:0;"&gt;&amp;nbsp; &lt;/p&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ===================================================================&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Event : I2C2_OnMasterBlockSent (module Events)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Component : I2C2 [I2C_LDD]&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Description :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** This event is called when I2C in master mode finishes the&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** transmission of the data successfully. This event is not&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** available for the SLAVE mode and if MasterSendBlock is&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** disabled.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Parameters :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** NAME - DESCRIPTION&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** * UserDataPtr - Pointer to the user or&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** RTOS specific data. This pointer is passed&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** as the parameter of Init method.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Returns : Nothing&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ===================================================================&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;I2C2_OnMasterBlockSent(LDD_TUserData *UserDataPtr)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;MMA8451_TDataState *ptr = (MMA8451_TDataState*)UserDataPtr;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;ptr-&amp;gt;dataTransmittedFlg = TRUE;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ===================================================================&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;28&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Event : I2C2_OnMasterBlockReceived (module Events)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;29&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;30&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Component : I2C2 [I2C_LDD]&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;31&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Description :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** This event is called when I2C is in master mode and finishes&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;33&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** the reception of the data successfully. This event is not&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;34&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** available for the SLAVE mode and if MasterReceiveBlock is&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;35&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** disabled.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;36&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Parameters :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;37&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** NAME - DESCRIPTION&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;38&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** * UserDataPtr - Pointer to the user or&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;39&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** RTOS specific data. This pointer is passed&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;40&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** as the parameter of Init method.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;41&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Returns : Nothing&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;42&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ===================================================================&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;43&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;44&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;I2C2_OnMasterBlockReceived(LDD_TUserData *UserDataPtr)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;45&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;46&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;MMA8451_TDataState *ptr = (MMA8451_TDataState*)UserDataPtr;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;47&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;48&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;ptr-&amp;gt;dataReceivedFlg = TRUE;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;49&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Aditionally, I need to include my header file into Events.c:&lt;/span&gt;&lt;/p&gt;&lt;p class="bar" style="margin:0;"&gt;&amp;nbsp; &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/** ###################################################################&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Filename : Events.c&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Project : ProcessorExpert&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Processor : MKL25Z128VLK4&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Component : Events&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Version : Driver 01.00&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Compiler : GNU C Compiler&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Date/Time : 2012-08-23, 07:09, # CodeGen: 0&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Abstract :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** This is user&amp;#39;s event module.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Put your event handler code here.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Settings :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Contents :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Cpu_OnNMIINT - void Cpu_OnNMIINT(void);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ###################################################################*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* MODULE Events */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;Cpu.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;Events.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;MMA8451.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Accelerometer Implementation&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;For this I create a file MMA8451.c with routines to read and write accelerometer registers:&lt;/span&gt;&lt;/p&gt;&lt;p class="bar" style="margin:0;"&gt;&amp;nbsp; &lt;/p&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;* MMA8451.c&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;* Author: Erich Styger&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;MMA8451.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;I2C2.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED1.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED2.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED3.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* External 3-axis accelerometer control register addresses */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_CTRL_REG_1 0x2A&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;&lt;span&gt;/* &lt;span&gt;&lt;span&gt;&lt;a id="e14-product-link-100d2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="link" href="https://referral.element14.com/OrderCodeView?fsku=1908021&amp;nsku=84R7350&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-link" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('100d2'));" data-farnell="1908021" data-newark="84R7350" data-comoverride="" data-cmpoverride="" data-cpc="" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;MMA8451QR1&lt;/a&gt; &lt;/span&gt;&lt;/span&gt; 3-axis accelerometer control register bit masks */&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_ACTIVE_BIT_MASK 0x01&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_F_READ_BIT_MASK 0x02&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* External 3-axis accelerometer data register addresses */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_X_MSB 0x01&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_X_LSB 0x02&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_Y_MSB 0x03&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_Y_LSB 0x04&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_Z_MSB 0x05&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#define MMA8451_OUT_Z_LSB 0x06&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="cpp plain"&gt;MMA8451_TDataState deviceData;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;uint8_t MMA8451_ReadReg(uint8_t addr, uint8_t *data, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;short&lt;/code&gt; &lt;code class="cpp plain"&gt;dataSize) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;28&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;uint8_t res;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;29&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;30&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Send I2C address plus register address to the I2C bus *without* a stop condition */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;31&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;res = I2C2_MasterSendBlock(deviceData.handle, &amp;amp;addr, 1U, LDD_I2C_NO_SEND_STOP);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(res!=ERR_OK) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;33&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;34&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;35&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt; &lt;code class="cpp plain"&gt;(!deviceData.dataTransmittedFlg) {} &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait until data is sent */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;36&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;deviceData.dataTransmittedFlg = FALSE;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;37&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;38&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Receive InpData (1 byte) from the I2C bus and generates a stop condition to end transmission */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;39&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;res = I2C2_MasterReceiveBlock(deviceData.handle, data, dataSize, LDD_I2C_SEND_STOP);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;40&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(res!=ERR_OK) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;41&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;42&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;43&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt; &lt;code class="cpp plain"&gt;(!deviceData.dataReceivedFlg) {} &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait until data is received received */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;44&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;deviceData.dataReceivedFlg = FALSE;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;45&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;46&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;47&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;48&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;uint8_t MMA8451_WriteReg(uint8_t addr, uint8_t val) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;49&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;uint8_t buf[2], res;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;50&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;51&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;buf[0] = addr;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;52&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;buf[1] = val;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;53&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;res = I2C2_MasterSendBlock(deviceData.handle, &amp;amp;buf, 2U, LDD_I2C_SEND_STOP); &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Send OutData (3 bytes with address) on the I2C bus and generates not a stop condition to end transmission */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;54&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(res!=ERR_OK) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;55&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;56&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;57&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt; &lt;code class="cpp plain"&gt;(!deviceData.dataTransmittedFlg) {} &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait until date is sent */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;58&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;deviceData.dataTransmittedFlg = FALSE;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;59&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;60&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;RGB Demo&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;What is missing is the demo code itself. I keep things simple here, and turn on one of the LEDs if the acceleration on an axis is exceeding a threshold:&lt;/span&gt;&lt;/p&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="cpp plain"&gt;int8_t xyz[3];&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;MMA8451_Run(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;uint8_t res;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED1_On();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED2_On();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED3_On();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;deviceData.handle = I2C2_Init(&amp;amp;deviceData);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* F_READ: Fast read mode, data format limited to single byte (auto increment counter will skip LSB)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;* ACTIVE: Full scale selection&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;res = MMA8451_WriteReg(MMA8451_CTRL_REG_1, MMA8451_F_READ_BIT_MASK|MMA8451_ACTIVE_BIT_MASK);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(res==ERR_OK) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;for&lt;/code&gt;&lt;code class="cpp plain"&gt;(;;) {&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;res = MMA8451_ReadReg(MMA8451_OUT_X_MSB, (uint8_t*)&amp;amp;xyz, 3);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED1_Put(xyz[0]&amp;gt;50);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED2_Put(xyz[1]&amp;gt;50);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED3_Put(xyz[2]&amp;gt;50);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;I2C2_Deinit(deviceData.handle);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED1_Off();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED2_Off();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;LED3_Off();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Calling from main()&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;And the last piece is to call my demo routine from main():&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/** ###################################################################&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Filename : ProcessorExpert.c&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Project : ProcessorExpert&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Processor : MKL25Z128VLK4&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Version : Driver 01.01&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Compiler : GNU C Compiler&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Date/Time : 2012-08-23, 07:09, # CodeGen: 0&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Abstract :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Main module.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** This module contains user&amp;#39;s application code.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Settings :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** Contents :&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** No public methods&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ###################################################################*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* MODULE ProcessorExpert */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Including needed modules to compile this module/procedure */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;Cpu.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;Events.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED1.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED2.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;LED3.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;GPIO1.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;GPIO2.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;I2C2.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Including shared modules, which are used for whole project */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;28&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;PE_Types.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;29&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;PE_Error.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;30&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;PE_Const.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;31&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;IO_Map.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;33&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;34&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;MMA8451.h&amp;quot;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;35&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;36&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="color1 cpp bold"&gt;int&lt;/code&gt; &lt;code class="cpp plain"&gt;main(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;37&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;38&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Write your local variable definition here */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;39&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;40&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** Processor Expert internal initialization. DON&amp;#39;T REMOVE THIS CODE!!! ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;41&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;PE_low_level_init();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;42&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** End of Processor Expert internal initialization. ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;43&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;44&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* Write your code here */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;45&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;MMA8451_Run();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;46&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;47&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** Don&amp;#39;t write any code pass this line, or it will be deleted during code generation. ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;48&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON&amp;#39;T MODIFY THIS CODE!!! ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;49&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#ifdef PEX_RTOS_START&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;50&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;PEX_RTOS_START(); &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;51&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp preprocessor"&gt;#endif&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;52&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** End of RTOS startup code. ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;53&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** Processor Expert end of main routine. DON&amp;#39;T MODIFY THIS CODE!!! ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;54&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;for&lt;/code&gt;&lt;code class="cpp plain"&gt;(;;){}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;55&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*** Processor Expert end of main routine. DON&amp;#39;T WRITE CODE BELOW!!! ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;56&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;0;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;57&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="cpp comments"&gt;/*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;58&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;59&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/* END ProcessorExpert */&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;60&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;/*&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;61&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ###################################################################&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;62&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;63&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** This file was created by Processor Expert 10.0 [05.02]&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;64&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** for the Freescale Kinetis series of microcontrollers.&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;65&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;66&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;** ###################################################################&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;67&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Accelerometer In Action&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;If I place the board flat on the table, the blue LED is on:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/blue-led1.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Blue LED" class="wp-image-4312 jiveImage size-full" height="319" src="http://mcuoneclipse.files.wordpress.com/2012/09/blue-led1.png?w=584&amp;amp;h=319" style="margin-left:auto;margin-right:auto;" title="Blue LED" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Blue LED&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;With the board on the side, the green LED is on:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/green-led2.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Green LED" class="jiveImage wp-image-4313 size-full" src="http://mcuoneclipse.files.wordpress.com/2012/09/green-led2.png?w=584" style="margin-left:auto;margin-right:auto;" title="Green LED" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Green LED&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;"&gt;And with the board standing up, the red LED is on:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2012/09/red-led.png" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt="Red LED" class="jiveImage size-full wp-image-4314" src="http://mcuoneclipse.files.wordpress.com/2012/09/red-led.png?w=584" style="margin-left:auto;margin-right:auto;" title="Red LED" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;text-align:center;"&gt;&lt;em&gt;Red LED&lt;/em&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;"&gt;&amp;nbsp; &lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana,geneva;font-size:10pt;"&gt;Happy accelerating &lt;a href="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" rel="nofollow ugc noopener" target="_blank"&gt;&lt;img loading="lazy" alt=":-)" class="jiveImage wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: 32bit, freescaledocs, Freescale Tagged Content, low_power, processor_expert, freescale, Cortex-M, accelerometer, codewarrior, frdm-kl25z, kinetis-l, 10.3beta, microcontroller, mcu, arm, freedom, sensor, software&lt;/div&gt;
</description></item></channel></rss>