<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://ez.analog.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Q&amp;amp;A - Recent Threads</title><link>https://ez.analog.com/energy-metering/f/q-a</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Thu, 09 Jul 2026 14:09:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://ez.analog.com/energy-metering/f/q-a" /><item><title>Investigating Accuracy Drift at Negative Temperatures with ADE9000</title><link>https://ez.analog.com/thread/605163?ContentTypeID=0</link><pubDate>Thu, 09 Jul 2026 14:09:47 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d82edd93-faaa-4fce-9ca5-696ae12ec3ed</guid><dc:creator>Medzzi</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/605163?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/605163/investigating-accuracy-drift-at-negative-temperatures-with-ade9000/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p data-path-to-node="7,0"&gt;Hello,&lt;/p&gt;
&lt;p data-path-to-node="7,1"&gt;We are currently working on an energy monitoring device which is implemented with an ADE9000.&lt;/p&gt;
&lt;p data-path-to-node="7,1"&gt;During the qualification of the product under different temperature conditions, we experienced precision drifts at negative temperatures for V, I, and consequently P, as shown below:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;table width="878"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="4" width="191"&gt;injected&lt;/td&gt;
&lt;td colspan="3" width="248"&gt;-5&amp;deg;C&lt;/td&gt;
&lt;td colspan="6" width="439"&gt;Errors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V1 (V)&lt;/td&gt;
&lt;td&gt;I1 (A)&lt;/td&gt;
&lt;td&gt;PF&lt;/td&gt;
&lt;td&gt;P1 th (W)&lt;/td&gt;
&lt;td width="86"&gt;measured V1&amp;nbsp; (V)&lt;/td&gt;
&lt;td width="92"&gt;Measured Current I1 (A)&lt;/td&gt;
&lt;td width="70"&gt;measured Power P1 (W)&lt;/td&gt;
&lt;td width="62"&gt;absolute drift V1 (V)&lt;/td&gt;
&lt;td width="76"&gt;Relative Err V1&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td width="92"&gt;absolute drift I1 (mA)&lt;/td&gt;
&lt;td width="70"&gt;Relative Error I1&amp;nbsp;&lt;/td&gt;
&lt;td width="64"&gt;Absolute error P1 (W)&lt;/td&gt;
&lt;td width="75"&gt;Relative Power Error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;10,00&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2300,000&lt;/td&gt;
&lt;td&gt;229,62&lt;/td&gt;
&lt;td&gt;9,9907&lt;/td&gt;
&lt;td&gt;2293,01&lt;/td&gt;
&lt;td&gt;-0,38&lt;/td&gt;
&lt;td&gt;-0,17%&lt;/td&gt;
&lt;td&gt;-9,3000&lt;/td&gt;
&lt;td&gt;-0,09%&lt;/td&gt;
&lt;td&gt;-6,99&lt;/td&gt;
&lt;td&gt;-0,30%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;5,00&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1150,000&lt;/td&gt;
&lt;td&gt;229,62&lt;/td&gt;
&lt;td&gt;4,9957&lt;/td&gt;
&lt;td&gt;1146,59&lt;/td&gt;
&lt;td&gt;-0,38&lt;/td&gt;
&lt;td&gt;-0,17%&lt;/td&gt;
&lt;td&gt;-4,3000&lt;/td&gt;
&lt;td&gt;-0,09%&lt;/td&gt;
&lt;td&gt;-3,41&lt;/td&gt;
&lt;td&gt;-0,30%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;2,50&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;575,000&lt;/td&gt;
&lt;td&gt;229,63&lt;/td&gt;
&lt;td&gt;2,4981&lt;/td&gt;
&lt;td&gt;573,36&lt;/td&gt;
&lt;td&gt;-0,37&lt;/td&gt;
&lt;td&gt;-0,16%&lt;/td&gt;
&lt;td&gt;-1,9000&lt;/td&gt;
&lt;td&gt;-0,08%&lt;/td&gt;
&lt;td&gt;-1,64&lt;/td&gt;
&lt;td&gt;-0,29%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;1,00&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;230,000&lt;/td&gt;
&lt;td&gt;229,63&lt;/td&gt;
&lt;td&gt;0,9992&lt;/td&gt;
&lt;td&gt;229,34&lt;/td&gt;
&lt;td&gt;-0,37&lt;/td&gt;
&lt;td&gt;-0,16%&lt;/td&gt;
&lt;td&gt;-0,8000&lt;/td&gt;
&lt;td&gt;-0,08%&lt;/td&gt;
&lt;td&gt;-0,66&lt;/td&gt;
&lt;td&gt;-0,29%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;0,50&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;115,000&lt;/td&gt;
&lt;td&gt;229,63&lt;/td&gt;
&lt;td&gt;0,4996&lt;/td&gt;
&lt;td&gt;114,66&lt;/td&gt;
&lt;td&gt;-0,37&lt;/td&gt;
&lt;td&gt;-0,16%&lt;/td&gt;
&lt;td&gt;-0,4000&lt;/td&gt;
&lt;td&gt;-0,08%&lt;/td&gt;
&lt;td&gt;-0,34&lt;/td&gt;
&lt;td&gt;-0,30%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;230&lt;/td&gt;
&lt;td&gt;0,25&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;57,500&lt;/td&gt;
&lt;td&gt;229,63&lt;/td&gt;
&lt;td&gt;0,2499&lt;/td&gt;
&lt;td&gt;57,34&lt;/td&gt;
&lt;td&gt;-0,37&lt;/td&gt;
&lt;td&gt;-0,16%&lt;/td&gt;
&lt;td&gt;-0,1000&lt;/td&gt;
&lt;td&gt;-0,04%&lt;/td&gt;
&lt;td&gt;-0,16&lt;/td&gt;
&lt;td&gt;-0,28%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node="7,2"&gt;-&amp;gt;&amp;nbsp;we can see what looks like an offset in the voltage measurement,&amp;nbsp;do you have any explanation for this?&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node="7,2"&gt;1- As a first step, we mounted 25 ppm resistors and then 10 ppm resistors &lt;span style="color:black;font-size:11pt;" data-olk-copy-source="MessageBody"&gt; for voltage channels&lt;/span&gt;, without improvement.&lt;/p&gt;
&lt;p data-path-to-node="7,2"&gt;&lt;/p&gt;
&lt;p data-path-to-node="7,2"&gt;2- After that, we monitored the input voltage at the entry of the ADE9000 on channel V2, and we didn&amp;#39;t get a real difference or drift after the resistor divider stage.&lt;/p&gt;
&lt;p data-path-to-node="7,2"&gt;3- Also, we measured the internal 1.2V Vref, and we didn&amp;#39;t see a large drift: Vref = 1.2556V @ 23&amp;deg;C and Vref = 1.2561V @ -5&amp;deg;C -&amp;gt; 11 ppm/&amp;deg;C.&lt;/p&gt;
&lt;p data-path-to-node="7,3"&gt;Now we aim to integrate drift and gain compensation over temperature, as mentioned in the datasheet.&lt;/p&gt;
&lt;p data-path-to-node="7,4"&gt;Is it possible to determine the drift profile of the ADE9000 in our hardware implementation?&lt;/p&gt;
&lt;p data-path-to-node="7,4"&gt;Can we determine a general compensation factor based on experimental tests, rather than requiring calibration for each product?&lt;/p&gt;
&lt;p data-path-to-node="7,5"&gt;Thanks,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Getting ADI_PQLIB_RESULT_WAVEFORM_NOT_READY</title><link>https://ez.analog.com/thread/605080?ContentTypeID=0</link><pubDate>Sat, 04 Jul 2026 07:17:30 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:5963e93e-6ffa-4f5f-bb73-59916478d5ee</guid><dc:creator>ADE9430I2CSupport</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/605080?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/605080/getting-adi_pqlib_result_waveform_not_ready/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have configured the ADE9430 evaluation board and tried running the library along with example code.&lt;/p&gt;
&lt;p&gt;Connected single phase voltage and current - 225V &amp;amp; 5A in R Phase.&lt;/p&gt;
&lt;p&gt;I gave following comman&lt;a href="https://ez.analog.com/cfs-file/__key/communityserver-discussions-components-files/357/CAPTURE2.TXT"&gt;ez.analog.com/.../CAPTURE2.TXT&lt;/a&gt;ds and getting the below:&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>We are looking for suggestions on setting up a Calibration  Power Source so we can properly calibrate our boards that are using the ADE9430</title><link>https://ez.analog.com/thread/605075?ContentTypeID=0</link><pubDate>Fri, 03 Jul 2026 13:18:16 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a4a35bdc-e8e2-4bde-951c-54da8fc8dd10</guid><dc:creator>ToxicAvenger</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/605075?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/605075/we-are-looking-for-suggestions-on-setting-up-a-calibration-power-source-so-we-can-properly-calibrate-our-boards-that-are-using-the-ade9430/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We are verifying our boards and on the way to production verification. Were are trying to come up with a solid voltage reference so we can properly calibrate the boards. Since you are the experts and have already gone through battle scars of setting up the calibration process we are hoping that you might suggest Calibration setup for us to use. We would be interested in any equipment you use to provide a gold standard power source, and any other expertise you can provide. Basically we are trying to setup our own lab station for calibration and thought you folks have gone through it already and would be willing to help us...&lt;/p&gt;
&lt;p&gt;Thanks - mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Power quality event can't be detected when process_data = 0</title><link>https://ez.analog.com/thread/604980?ContentTypeID=0</link><pubDate>Fri, 26 Jun 2026 10:05:57 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:fa21b034-5217-4440-a690-8e2f60fc59af</guid><dc:creator>YongLawrence</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604980?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604980/power-quality-event-can-t-be-detected-when-process_data-0/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; AD-PQMON-SL&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Obtain the waveform when a power quality event occurs&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem Description:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When process_data = 1, interrupt event can be detected.&lt;/li&gt;
&lt;li&gt;When process_data = 0, interrupt event failed to be detected.&lt;/li&gt;
&lt;li&gt;iio_device_attr_write_double() failed to overwrite process_data from 0 to 1.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error Video:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ez.analog.com/cfs-file/__key/communityserver-discussions-components-files/357/4477.Error-Video.mp4"&gt;ez.analog.com/.../4477.Error-Video.mp4&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting step that has been taken:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my full coding, I can overwrite process_data from 1 (default value) to 0 to enable waveform data collection.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coding:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;stdio.h&amp;gt;

#include &amp;lt;stdlib.h&amp;gt;

#include &amp;lt;iio.h&amp;gt;


int main() {

    // Configuration
    struct iio_context* ctx = iio_create_context_from_uri(&amp;quot;serial:/dev/ttyACM0,115200,8n1&amp;quot;);
    const struct iio_device* dev = iio_context_get_device(ctx, 0);
    struct iio_channel* chn = iio_device_get_channel(dev, 10);
    const char* chnName = iio_channel_get_name(chn);
    printf(&amp;quot;Channel[10] name: %s \n&amp;quot;, chnName);


    // Process Data
    double process_data = 9.0;
    iio_device_attr_write_double(dev, &amp;quot;process_data&amp;quot;, 1.0);
    iio_device_attr_read_double(dev, &amp;quot;process_data&amp;quot;, &amp;amp;process_data);
    printf(&amp;quot;Process data: %lf \n&amp;quot;, process_data);


	// Read countEvent
    double chnAttrValue = 0.0;

    while (true)
    {
        iio_channel_attr_read_double(chn, &amp;quot;countEvent&amp;quot;, &amp;amp;chnAttrValue);

        if (chnAttrValue != 0.0)
        {
            printf(&amp;quot;countEvent: %lf \n&amp;quot;, chnAttrValue);

            break;
        }
    }




    iio_context_destroy(ctx);

}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADEMA127 timing requirements</title><link>https://ez.analog.com/thread/604923?ContentTypeID=0</link><pubDate>Tue, 23 Jun 2026 16:49:41 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:9ac3ffbd-8d1e-4279-94b1-59541d348818</guid><dc:creator>thiagopradop</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604923?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604923/adema127-timing-requirements/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;We are designing a system with two ADCs (ADEMA127 and ADEMA124) that will be individually addressed, sharing the same clock source and configurations.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Our clock source is 5.12 MHz, which will result in a 10 ksps final sample rate.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;We could not find&amp;nbsp;the following two timing specifications in the&amp;nbsp;&lt;a href="https://www.analog.com/media/en/technical-documentation/data-sheets/adema124-127.pdf" rel="noopener noreferrer" target="_blank"&gt;ADEMA124/127 datasheet&lt;/a&gt;. We want to use the RESET pin to reset the ADCs before configuring them, and after setup, we will send the sync spi command + CS sync pulse.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;1.&amp;nbsp;How long must the RESET pin be held LOW to ensure a valid hardware reset of the ADC?&lt;/div&gt;
&lt;div&gt;2. How long must the CS pin be held low for triggering the sync?&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Any guidance would be appreciated.&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Power measurement time</title><link>https://ez.analog.com/thread/604916?ContentTypeID=0</link><pubDate>Tue, 23 Jun 2026 07:40:08 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:620f7b08-7457-4da8-8dfa-a9dc6ca41ca4</guid><dc:creator>Michelangelo</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/604916?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604916/power-measurement-time/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m currently reading the AWATT/AVAR/AVA registers for power, but I wanted to know if there&amp;#39;s another way to get data with faster update times (reducing the measurement window/buffer).&lt;br /&gt;The application we&amp;#39;re developing needs to be able to monitor power variations more quickly.&lt;br /&gt;I tried disabling the LPF2 filter, but the values ​​are too different to be usable.&lt;/p&gt;
&lt;p&gt;Thanks in advance for any suggestions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>When trying single point calibration mode on the ADE9430,  the APHCAL0 register appears to have limitations</title><link>https://ez.analog.com/thread/604897?ContentTypeID=0</link><pubDate>Mon, 22 Jun 2026 15:17:35 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:f0f9f9f1-f9d7-4380-9840-5fba2aca1e5c</guid><dc:creator>ToxicAvenger</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604897?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604897/when-trying-single-point-calibration-mode-on-the-ade9430-the-aphcal0-register-appears-to-have-limitations/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When trying single point calibration mode on the ADE9430,&amp;nbsp; the APHCAL0 register appears to have limitations&lt;/p&gt;
&lt;p&gt;Meaning if its effectively reading at .93 degrees between current and voltage can we expect to correct it and make it read zero or will calibration only work for much higher offsets?&lt;/p&gt;
&lt;p&gt;Best Regards&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- mike&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADE9430 and latest EN IEC 61000-4-30:2026 adoption in ADSW-PQ-CLS library</title><link>https://ez.analog.com/thread/604810?ContentTypeID=0</link><pubDate>Tue, 16 Jun 2026 11:51:27 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:673d60e5-a206-4adb-8d40-acfbf30eb20d</guid><dc:creator>s.Kleftogiannis</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/604810?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604810/ade9430-and-latest-en-iec-61000-4-30-2026-adoption-in-adsw-pq-cls-library/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;recently&amp;nbsp;EN IEC 61000-4-30:2026 was published.&lt;br /&gt;Do you have any plans of adopting it in&amp;nbsp;ADSW-PQ-CLS library for ADE9430, if so when would be released?&lt;/p&gt;
&lt;p&gt;Kind regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to simulate a dip event by using AD-PQMON-SL and Scopy?</title><link>https://ez.analog.com/thread/604522?ContentTypeID=0</link><pubDate>Fri, 29 May 2026 09:42:01 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:beab6a01-6f27-4f6d-86b4-39ead873c126</guid><dc:creator>YongLawrence</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604522?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604522/how-to-simulate-a-dip-event-by-using-ad-pqmon-sl-and-scopy/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; AD-PQMON-SL&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Software:&lt;/strong&gt; Scopy 2.0.0-b3d077f6&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expected Result:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When the single-phase voltage input &amp;lt;57.15V, a dip event is triggered.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error Result:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s no dip event.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ez.analog.com/cfs-file/__key/communityserver-discussions-components-files/357/8117.Error-Video.mp4"&gt;ez.analog.com/.../8117.Error-Video.mp4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting steps that I have taken:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I set the nominal voltage based on this formula
&lt;ul&gt;
&lt;li&gt;Nominal Voltage = {RMS*(&amp;radic;2)}/(Voltage Scale)&lt;/li&gt;
&lt;li&gt;Exp: {63.5*(&amp;radic;2)}/(1001)=0.09 V&amp;rsquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Try to refer manual but there&amp;rsquo;s no example in&amp;nbsp;&lt;a href="https://analogdevicesinc.github.io/scopy/plugins/pqm/harmonics.html#pq-events"&gt; Scopy documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Clarification request regarding ADE9430 energy accumulation, scaling and rollover handling</title><link>https://ez.analog.com/thread/604499?ContentTypeID=0</link><pubDate>Wed, 27 May 2026 18:57:38 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:d44d9097-8df1-4f99-bb9e-1cb75391e7a2</guid><dc:creator>Dabliu</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/604499?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604499/clarification-request-regarding-ade9430-energy-accumulation-scaling-and-rollover-handling/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-weight:400;"&gt;I am currently integrating the ADE9430 and I would like to request clarification regarding the correct usage of the energy accumulation registers and their scaling.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;My current configuration is:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;EGY_PWR_EN = 1 (Enable power and energy accumulation)&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;EGY_LD_ACCUM = 1&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;EGY_TMR_MODE = 0&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;RD_RST_EN = 0 (disabled due to the known issue described in the documentation: &lt;/span&gt;&lt;a href="https://wiki.analog.com/resources/eval/user-guides/ade9430#energy_accumulation_details"&gt;&lt;span style="font-weight:400;"&gt;https://wiki.analog.com/resources/eval/user-guides/ade9430#energy_accumulation_details&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;EGY_TIME = 7999, generating an EGYRDY interrupt approximately every second&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Configuration code:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;int32_t ConfigureAFE_EGYTIME(void){&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int32_t status = SYS_STATUS_SUCCESS;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint16_t egytime_value = 7999;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = AFEWrite16BitReg(REG_EGY_TIME, &amp;amp;egytime_value);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (status != 0) {&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = SYS_STATUS_AFE_EP_CFG_SET_EGY_PWR_EN_FAILED;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return status;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Energy accumulation handling:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;// -- External energy accumulator&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;#define ENERGY_CHANNELS &amp;nbsp; &amp;nbsp; 9&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;// Phase A: WATT, VAR, VA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;// Phase B: WATT, VAR, VA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;// Phase C: WATT, VAR, VA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;#define MAX_45BIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (1LL &amp;lt;&amp;lt; 44)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;#define RANGE_45BIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (1LL &amp;lt;&amp;lt; 45)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;#define ROLLOVER_THRESHOLD&amp;nbsp; (MAX_45BIT / 2)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;static int64_t&amp;nbsp; prev_raw[ENERGY_CHANNELS] = {0};&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;static bool &amp;nbsp; &amp;nbsp; first_read = true;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;The raw energy values are reconstructed as signed 45-bit values:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;int64_t assembled = ((int64_t)(int32_t)hr_hi &amp;lt;&amp;lt; 13)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| (int64_t)(hr_lo &amp;amp; 0x1FFF);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Energy conversion currently uses:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;#define ADI_PQLIB_PHASE_POWER_FACTOR 20694066 // AWATT FULL SCALE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;and:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;double ConvertEnergyType(&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADI_AFE_ENERGY_TYPE energy,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float voltageScale,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float currentScale)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;double energyValue;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;energyValue =&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;((double)energy) /&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;((double)ADI_PQLIB_PHASE_POWER_FACTOR);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return energyValue;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Since RD_RST_EN is disabled, I currently perform accumulation externally in the MCU using deltas between consecutive readings:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;static int64_t safe_delta(int64_t current, int64_t previous)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int64_t delta = current - previous;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp; &amp;nbsp; &amp;nbsp; (delta &amp;gt;&amp;nbsp; ROLLOVER_THRESHOLD) delta -= RANGE_45BIT;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else if (delta &amp;lt; -ROLLOVER_THRESHOLD) delta += RANGE_45BIT;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return delta;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Main concerns:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Is this configuration correct for obtaining accumulated energy values every second using EGYRDY interrupts?&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Is the energy conversion method correct?&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;Currently I only divide by:&lt;/span&gt;&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;ADI_PQLIB_PHASE_POWER_FACTOR = 20694066&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;However, I am unsure whether:&lt;/span&gt;&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;voltage scaling&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;current scaling&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;EGY_TIME&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;ADC full-scale&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;internal DSP accumulation timing&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;must also be included in the conversion to obtain Wh or kWh.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Is the external accumulation approach correct when RD_RST_EN = 0?&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;Since the registers do not appear to reset after each read, I assumed that the correct approach is to calculate a delta between consecutive reads.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Is the rollover handling method correct for the 45-bit signed accumulators?&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;When calculating:&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;int64_t delta = current - previous;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;sometimes:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;previous &amp;gt; current&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;delta becomes negative&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;total accumulated energy decreases&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Is this expected behavior due to:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;signed energy accumulation,&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;bidirectional power flow,&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;register rollover,&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;or is the accumulation procedure incorrect?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;For validation purposes:&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;If the measured load is approximately 4 kW constant active power, should the accumulated active energy increase approximately:&lt;/span&gt;&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;4 kWh after 1 hour,&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;8 kWh after 2 hours,&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;and approximately 1.11 Wh every second?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Currently the accumulated energy appears to grow significantly faster than expected.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Thank you very much for your support.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Fast RMS settling time behaviour on Pulse modulated waveform</title><link>https://ez.analog.com/thread/604492?ContentTypeID=0</link><pubDate>Wed, 27 May 2026 12:56:59 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:1956259c-fb3f-4fa0-9059-6f1954f838f3</guid><dc:creator>C714Mauro</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604492?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604492/fast-rms-settling-time-behaviour-on-pulse-modulated-waveform/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m having a tough problem here when trying to measure RMS current for three phase systems with short conduction cycles.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m trying to measure IRMS on a low frequency PWM controller and sometimes the conduction cycle can get very low reaching even 2-3 line cycles.&lt;/p&gt;
&lt;p&gt;On this thread -&amp;gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://ez.analog.com/energy-metering/f/q-a/603581/fast-rms-over-one-line-cycle"&gt;Fast RMS over one line Cycle&lt;/a&gt;&amp;nbsp;&amp;lt;-&amp;nbsp; the proposed method was to use the Ipeak register synchronized with the Zero crossing which worked flawlessly for single phase systems. Problem is that on three phase systems the IPEAK register only holds the maximum value out of the three phases. So monitoring any type of unbalance is not possible. What I triyed to do was to cycle between each phase enabling the peak detection only for the desired phase every time. It works, i can effectively get the peak for each phase and even if any unbalance happens i can detect it. But this breaks my surge protection feature as I am not able to monitor all three phases at the same time.&lt;/p&gt;
&lt;p&gt;Only solution I was able to find was using fast RMS and having my system only measure currents after a given conduction window.I&amp;#39;d be able to measure every phase, detect any unbalance and still be able to detect and treat surges on a single line cycle. But now &amp;#39;m not able to reach the settling times shown by the datasheet&amp;nbsp; (UG-1098) .&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:110px;max-width:378px;" alt=" " height="110" src="https://ez.analog.com/resized-image/__size/756x220/__key/communityserver-discussions-components-files/357/Settle_5F00_times.png" width="378" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I was able to confirm the 260mS by just keeping the default settings but was not able to measure anything when reducing the time to this 60mS. What register configurations are necessary to achieve this 60mS settling time?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried both RMS_SRC_SEL = 1 and 0 on Cofig0. also made sure the&amp;nbsp;HPFDIS and INTEN were at 0 (high pass filter not disabled(ON)&amp;nbsp; and Integrator not enabled(off)). LPF2 comes enabled by defautl at reset so I didn&amp;#39;t tampered with it.&lt;/p&gt;
&lt;p&gt;Also, just for more context, I&amp;#39;m running the tests with a conduction cycle of 120mS to provide at least one full conduction window (which i think should compensate for the random start of the capture).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For instance for a 60Hz signal:&lt;/p&gt;
&lt;p&gt;60ms(settling time) +16,67mS(one cycle) +8,33mS(half cycle for the update meas)+35mS(extra time) = 120mS(total time)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Configuration for 3 Phase 3 Wire system</title><link>https://ez.analog.com/thread/604471?ContentTypeID=0</link><pubDate>Mon, 25 May 2026 10:57:01 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:35cd3e73-bc43-498c-a6ba-dff347a099a1</guid><dc:creator>ManhNguyenMacnica</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604471?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604471/configuration-for-3-phase-3-wire-system/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m testing ADE7880 EVK for my 3 phase power meter project.&lt;/p&gt;
&lt;p&gt;I tested with default configuration of EVK for 3 Phase, 4 Wire before.&lt;/p&gt;
&lt;p&gt;My 3 Phase Voltage:&lt;/p&gt;
&lt;p&gt;+ Phase Voltage (Va-Vn): 220V&lt;/p&gt;
&lt;p&gt;+ Phase to Phase Voltage (Va-Vb): 380V&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If I modify EVK to work with 3 Phase, 3 Wire system (instead of 3 Phase, 4 Wire),&lt;/p&gt;
&lt;p&gt;Do I need I modify R26 (Rhigh = 1M Ohm) of input voltage divider to avoid saturation of ADE7880 ADC (maximum is 500mV peak).&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1779706343525v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Calibration Multi point Gain Switching</title><link>https://ez.analog.com/thread/604436?ContentTypeID=0</link><pubDate>Thu, 21 May 2026 12:03:48 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:745c449c-0dd6-497d-b16e-1c9a04c844b8</guid><dc:creator>rafeeth</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604436?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604436/calibration-multi-point-gain-switching/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have a scenario where i have enabled multipoint phase and gain compensation in&amp;nbsp;CONFIG0 register.&lt;/p&gt;
&lt;p&gt;Below are my current ranges.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;mtthrL0 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrL1 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;2.25&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrL2 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrL3 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrL4 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrH0 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;2.5&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrH1 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrH2 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrH3 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;mtthrH4 &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;26.78&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;i have written zeroed gain (0xF8000000) to AIGAIN0, BIGAIN0, CIGAIN0 registers. AIGAIN, BIGAIN, CIGAIN, AIGAIN(1-4), B&lt;span&gt;IGAIN(1-4), CIGAIN(1-4) have default reset values.&lt;/span&gt;&lt;/p&gt;
&lt;table width="229"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="101"&gt;&lt;/td&gt;
&lt;td width="64"&gt;EXPECTED&lt;/td&gt;
&lt;td width="64"&gt;ACTUAL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;current with 1A&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;current&amp;nbsp;&lt;/span&gt;with 5A&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="101"&gt;&lt;span&gt;current&amp;nbsp;&lt;/span&gt;with 5A, switch to 1A inbetween&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="101"&gt;&lt;span&gt;current&amp;nbsp;&lt;/span&gt;with 1A, switch to 5A inbetween&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The expectation is with 5A current, it should have switched to&amp;nbsp;&lt;span&gt;AIGAIN1, BIGAIN1, CIGAIN1 and started reading 5A current but it was reading 0A.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I followed the below sequence while writing gains.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Turn on ADE-&amp;gt; write gains-&amp;gt; set current ranges-&amp;gt; set configuration register-&amp;gt; writing RUN register.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Incorrect current readings on A channel while correct on B channel</title><link>https://ez.analog.com/thread/604419?ContentTypeID=0</link><pubDate>Wed, 20 May 2026 18:20:09 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:0a6c2620-1c98-4084-ade0-abf9369d5833</guid><dc:creator>gwentech</dc:creator><slash:comments>5</slash:comments><comments>https://ez.analog.com/thread/604419?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604419/incorrect-current-readings-on-a-channel-while-correct-on-b-channel/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello.&amp;nbsp; I use (3) of this ADE7953 meter IC to measure (6) CTs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: I&amp;#39;m able to read current on channel B of each chip, but channel A seems to be nonsense.&amp;nbsp; B channel is much closer to accurate, though I do see 84mA when there should be zero.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt;: Each of the (3) meter chips have their (2) current inputs and I&amp;rsquo;m using all 6.&amp;nbsp; A CT is connected to each meter input and I&amp;rsquo;m switching current through only one of them (relay 6, global input 5 / input B of meter 2) expecting 5.287A as read by a fluke meter, reading 52.8mV across the 10ohm burden resistor.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Attached is the relevant code and resulting log.&amp;nbsp; The log prints out measurements as it queries each of the (3) meter chips every second:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Board0 Meter0 216=0x0186BD 217=0xFFD1D8 21A=0x0DC1F7 21B=0x006285 228=0x12C500 22A=0x0060AF 280=0x400000 28C=0x400000 286=0x000000 292=0x000000 (A=1.765A, B=0.049A)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Board0 Meter1 216=0x016B19 217=0xFFE52C 21A=0x02D1AA 21B=0x00329C 228=0x01AE77 22A=0x0088B1 280=0x400000 28C=0x400000 286=0x000000 292=0x000000 (A=0.362A, B=0.025A)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Board0 Meter2 216=0x0238E8 217=0xFFB63A 21A=0x0D8BD8 21B=0x0098A5 228=0x0E9BF7 22A=0x543DF4 280=0x400000 28C=0x400000 286=0x000000 292=0x000000 (A=1.738A, B=0.076A)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the log, I switched power ON to meter 2 as seen with:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Relay 6 pulse on&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;GSO WRITE: board=0 value=0x1800&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;GSO MCP READBACK: board=0 wrote=0x1800 read=0x1800&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Outlet relay 6 ON pulse started (board=0 local=6)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;GSO WRITE: board=0 value=0x1000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;GSO MCP READBACK: board=0 wrote=0x1000 read=0x1000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#3366ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Outlet pulse ended (board=0 bit=11)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;From there, I can measure the 52mV on the burden resistor R15 and readings go from:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="color:#3366ff;"&gt;Board0 Meter2 216=0x0AAD04 217=0xFFAEF4 21A=0x0D6DBE&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;21B=0x00A823&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;228=0x0E6233 22A=0x007C65 280=0x400000 28C=0x400000 286=0x000000 292=0x000000 (A=1.722A, B=0.084A)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;-to-&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span style="color:#3366ff;"&gt;Board0 Meter2 216=0x015C72 217=0xE20797 21A=0x0F1AFC&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;21B=0x29EC52&lt;/span&gt; &lt;span style="color:#3366ff;"&gt;228=0x0E6233 22A=0x543DF4 280=0x400000 28C=0x400000 286=0x000000 292=0x000000 (A=1.938A, B=5.377A)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; B channel clearly changes and is close to the right value, so good for now.&amp;nbsp; Before switched on, B channel shows 84mA, so something is wrong, but not the main concern.&amp;nbsp; It is the A inputs that should read near zero that are the problem.&amp;nbsp; Example, A=1.722A &amp;ndash; should be near zero.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Configuration of each meter is like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; if(!gsoWriteReg8(GSO_ADE7953_ADDR, 0x00FE, 0xAD))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; if(!gsoWriteReg16(GSO_ADE7953_ADDR, 0x0120, 0x0030))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; if(!gsoWriteReg16(GSO_ADE7953_ADDR, 0x0102, 0x0000))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; if(!gsoWriteReg8(GSO_ADE7953_ADDR, 0x0008, ADE_PGA_GAIN_2))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; if(!gsoWriteReg8(GSO_ADE7953_ADDR, 0x0009, ADE_PGA_GAIN_2))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; delay(500);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; uint16_t runreg;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; gsoReadReg16(GSO_ADE7953_ADDR, 0x0120, &amp;amp;runreg);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; Serial.printf(&amp;quot;RUN reg runtime = 0x%04X\n&amp;quot;, runreg);&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>The Power Quality Library Software and CRC</title><link>https://ez.analog.com/thread/604300?ContentTypeID=0</link><pubDate>Tue, 12 May 2026 15:14:39 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:5d4f782e-ddb7-49a0-9f2a-416fbc45eefc</guid><dc:creator>ToxicAvenger</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604300?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604300/the-power-quality-library-software-and-crc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am running Version 1.2.0 of the Power Quality Library on the EVAL-ADE9430 Board.&amp;nbsp; I could be wrong but it appears the code in the Power Quality Library is defaulting to&amp;nbsp; disabling CRC verification.&amp;nbsp; The code that initializes the SPI Bus is in the file afe_config.c.&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;span&gt;MXSPIInit(void) function is setting the&amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;hSPI.Init.CRCCalculation = &lt;strong&gt;SPI_CRCCALCULATION_DISABLE&lt;/strong&gt;;&amp;quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;When I enable CRC (&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;hSPI.Init.CRCCalculation =&amp;nbsp;&lt;strong&gt;SPI_CRCCALCULATION_ENABLE&lt;/strong&gt;;&amp;quot;) I&lt;/span&gt;&amp;nbsp;am seeing errors when I try to do simple register reads via the console.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The Terminal Output is shown in the table&amp;nbsp; below with CRC ENABLED on the left and&amp;nbsp;&lt;span&gt;CRC DISABLED on the right. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can see when CRC is enabled (left) it has trouble reading ADE9430 registers.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:334px;max-width:618px;" alt=" " src="https://ez.analog.com/resized-image/__size/1236x668/__key/communityserver-discussions-components-files/357/pastedimage1778598364019v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;I want to make sure I am not doing something wrong here. The only thing I did was enable CRC to start seeing these failures.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks - mike&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to add timestamp into waveform buffer?</title><link>https://ez.analog.com/thread/604185?ContentTypeID=0</link><pubDate>Thu, 30 Apr 2026 09:46:57 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:91bf2ac9-bad7-4bbd-8688-670e596f9bd9</guid><dc:creator>YongLawrence</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/604185?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604185/how-to-add-timestamp-into-waveform-buffer/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; AD-PQMON-SL&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Array Index&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Channel&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;Millisecond Epoch Timestamp&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;current0&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;2&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;voltage0&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;3&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;current1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;4&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;voltage1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;5&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;current2&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;6&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;voltage2&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;7&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;current3&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem Description:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Millisecond Epoch Timestamp is needed before every waveform acquisition, so we can cross-reference check with power quality events.&lt;/li&gt;
&lt;li&gt;But I don&amp;rsquo;t know how to add a timestamp to the waveform buffer.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting steps that I have taken:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add new timestamp attributes in iio_pqm.c I think is not suitable because there are so many timestamps in every waveform, it&amp;rsquo;s difficult for logging&lt;/li&gt;
&lt;li&gt;I try to add adi_pqlib_GetTime() in pqlib_afe.c&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;diff --git a/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h b/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
index aec99dac..573274a6 100644
--- a/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
+++ b/projects/eval-pqmon/pqlib_dir/include/adi_pqlib.h
@@ -33,7 +33,7 @@ extern &amp;quot;C&amp;quot; {
  */
 
 /** Total number of waveform channels in AFE output */
-#define ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS 7
+#define ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS 8
 
 /** Size required for a waveform buffer for one channel. */
 #define ADI_PQLIB_WAVEFORM_BLOCK_SIZE 256
diff --git a/projects/eval-pqmon/src/common/pqlib_afe.c b/projects/eval-pqmon/src/common/pqlib_afe.c
index f7dee1b2..6b3758f4 100644
--- a/projects/eval-pqmon/src/common/pqlib_afe.c
+++ b/projects/eval-pqmon/src/common/pqlib_afe.c
@@ -236,9 +236,13 @@ int get_afe_input()
 	}
 
 	if ((status == 0) &amp;amp;&amp;amp; (pOneCycle-&amp;gt;STATUS0 &amp;amp; BITM_STATUS0_COH_PAGE_RDY)) {
+		
 		status = afe_read_waveform(
 				 (uint16_t *) &amp;amp; (pqlibExample.inputWaveform.waveform),
 				 ADI_PQLIB_WAVEFORM_BLOCK_SIZE * ADI_PQLIB_TOTAL_WAVEFORM_CHANNELS);
+
+		adi_pqlib_GetTime(pqlibExample.hDevice, &amp;amp;pqlibExample.inputWaveform.waveform[256]);
+
 		pWaveform-&amp;gt;isDataProcessed = 0;
 		pWaveform-&amp;gt;sequenceNumber++;
 		if (pqlibExample.no_os_cb_desc &amp;amp;&amp;amp; !processData) {
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>KWH energy reading reading more than KVAH</title><link>https://ez.analog.com/thread/604168?ContentTypeID=0</link><pubDate>Wed, 29 Apr 2026 10:17:06 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:b6ca37c5-4088-477d-9cef-1e33b5853a5a</guid><dc:creator>rafeeth</dc:creator><slash:comments>14</slash:comments><comments>https://ez.analog.com/thread/604168?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604168/kwh-energy-reading-reading-more-than-kvah/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;
&lt;p&gt;Hi, I&amp;rsquo;m using the ADE9000 metering IC in my product. I read phase wise energy registers AWATTHR_HI, BWATTHR_HI, CWATTHR_HI, AVARHR_HI, BVARHR_HI, CVARHR_HI, AVAHR_HI, BVAHR_HI, and CVAHR_HI in the same sequence inside the ISR whenever an EGY_READY interrupt occurs.&lt;/p&gt;
&lt;p&gt;The EGY_TIME is configured for 999 samples. My ideal input load is 63.5 V, 5 A at UPF. While the measured power values are correct, I am observing a mismatch between &lt;span&gt;KWH&amp;nbsp;&lt;/span&gt;and &lt;span&gt;KVAH&amp;nbsp;&lt;/span&gt;in the energy (KWH &amp;gt; KVAH).&lt;/p&gt;
&lt;p&gt;The behavior is frequent when switching test is done (power cycle is given continuously at an interval of 30sec). Note: The device is calibrated.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1777457211439v1.png" alt=" " /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1777457241358v2.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Power factor on Delta load</title><link>https://ez.analog.com/thread/604130?ContentTypeID=0</link><pubDate>Mon, 27 Apr 2026 13:43:59 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:92b183dc-97e0-4c4c-9b03-602c7dfdd088</guid><dc:creator>C714Mauro</dc:creator><slash:comments>2</slash:comments><comments>https://ez.analog.com/thread/604130?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604130/power-factor-on-delta-load/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi!&lt;br /&gt;I&amp;#39;m on a delta connection measuring power factor with the ADE9000.&lt;/p&gt;
&lt;p&gt;My setup has a 220/127 source and three 40.33 Ohms load on each phase&lt;/p&gt;
&lt;p&gt;The datasheet(UG-1098) says this &lt;br /&gt;&amp;quot;In a Blondel compliant 3-wire delta meter, only the overall power consumed by the system is meaningful; the individual phase powers are &lt;br /&gt;not meaningful because a line current is multiplied by a line to line voltage&lt;br /&gt;To obtain the overall power consumed by the system (active, reactive,&lt;br /&gt;and apparent), add the contribution from Phase A and Phase C.&amp;quot;&lt;/p&gt;
&lt;p&gt;and indeed when measuring active power I get &lt;br /&gt;P_A:1802.82&amp;nbsp; &amp;nbsp;--&amp;nbsp; &amp;nbsp;P_B: 5.75&amp;nbsp; --&amp;nbsp; P_C: 1812.86&lt;/p&gt;
&lt;p&gt;PA+PC = 3615.68 (close to the 3600W I expected)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;this also affects power factor as I get 0.87 on&amp;nbsp;phases A and B (which in my understanding is right for a delta connection if I measure Line current and line to line voltage)&lt;/p&gt;
&lt;p&gt;Is there any way or configuration i can try to get a power factor of 1 directly from the ADE9000? Or really the only way of getting power factor on this setup is by doing P/S?&lt;/p&gt;
&lt;p&gt;what about the true power factor on each phase?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADE7758 Interrupt Correct Connection with optocoupler</title><link>https://ez.analog.com/thread/604073?ContentTypeID=0</link><pubDate>Thu, 23 Apr 2026 12:48:53 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:4bd9cbfa-b30d-426e-978c-a678382b0d91</guid><dc:creator>AHTISHAM</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604073?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604073/ade7758-interrupt-correct-connection-with-optocoupler/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;The IRQ logic output is active low. However, when it&amp;#39;s not active, will it output 5V? I&amp;#39;m confused about this. Please review three designs to determine which is correct for using an IRQ with an optocoupler and the ESP32 to read the IRQ signal.&lt;/p&gt;
&lt;p&gt;Schematic 1 (Design1) seems correct to me according to the data sheet, but please review it once.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/45648dc5_2D00_8b92_2D00_424c_2D00_84bf_2D00_49c589abd7b2.jpg" alt=" " /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/1a783dcd_2D00_c1f9_2D00_40a0_2D00_b982_2D00_7b2597b19efd.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/f9626760_2D00_4d7c_2D00_41ac_2D00_8c75_2D00_03ebf7f57c2e.jpg_2D00_640x480.jpg" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Need help on Update File Path for maxim.mk in no-OS</title><link>https://ez.analog.com/thread/604065?ContentTypeID=0</link><pubDate>Thu, 23 Apr 2026 06:12:06 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:a46252f0-bbc6-4efa-8b93-50ac1e878737</guid><dc:creator>YongLawrence</dc:creator><slash:comments>3</slash:comments><comments>https://ez.analog.com/thread/604065?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604065/need-help-on-update-file-path-for-maxim-mk-in-no-os/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; AD-PQMON-SL&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Software:&lt;/strong&gt; &lt;a href="https://github.com/analogdevicesinc/msdk/releases/tag/v2024_10"&gt;Maxim SDK October Release 2024&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error Message in Git Bash:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;YongYH@YongYH-Laptop MINGW64 ~
$ cd /c/Users/YongYH/no-OS/projects/eval-pqmon &amp;amp;&amp;amp; ./build_hex.sh
[INFO] Cleaning previous build...
Using USB as interface for IIO communication
find: ‘C:/MaximSDK/Libraries/../../../Tools/gcc/arm-none-eabi’: No such file or directory
which: no arm-none-eabi-gcc in (/c/Users/YongYH/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/usr/bin:/mingw64/bin:/usr/bin:/c/Users/YongYH/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/c/Program Files/PuTTY:/cmd:/c/Program Files/MongoDB/Server/6.0/bin:/c/Program Files/mongosh-1.8.0-win32-x64/bin:/c/Python27:/c/MinGW/bin:/c/ProgramData/chocolatey/bin:/c/Python/Python311/Scripts:/c/Program Files/PowerShell/7-preview/preview:/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/c/Program Files/PowerShell/7:/c/Program Files/PVsyst8.0.17:/c/Users/YongYH/AppData/Local/Programs/Python/Python310/Scripts:/c/Users/YongYH/AppData/Local/Programs/Python/Python310:/c/Users/YongYH/AppData/Local/Microsoft/WindowsApps:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/usr/bin/vendor_perl:/usr/bin/core_perl)
which: no arm-none-eabi-gcc in (/c/Users/YongYH/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/usr/bin:/mingw64/bin:/usr/bin:/c/Users/YongYH/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/c/Program Files/PuTTY:/cmd:/c/Program Files/MongoDB/Server/6.0/bin:/c/Program Files/mongosh-1.8.0-win32-x64/bin:/c/Python27:/c/MinGW/bin:/c/ProgramData/chocolatey/bin:/c/Python/Python311/Scripts:/c/Program Files/PowerShell/7-preview/preview:/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/c/Program Files/PowerShell/7:/c/Program Files/PVsyst8.0.17:/c/Users/YongYH/AppData/Local/Programs/Python/Python310/Scripts:/c/Users/YongYH/AppData/Local/Programs/Python/Python310:/c/Users/YongYH/AppData/Local/Microsoft/WindowsApps:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/usr/bin/vendor_perl:/usr/bin/core_perl)
which: no arm-none-eabi-gcc in (/c/Users/YongYH/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/usr/bin:/mingw64/bin:/usr/bin:/c/Users/YongYH/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/c/Program Files/PuTTY:/cmd:/c/Program Files/MongoDB/Server/6.0/bin:/c/Program Files/mongosh-1.8.0-win32-x64/bin:/c/Python27:/c/MinGW/bin:/c/ProgramData/chocolatey/bin:/c/Python/Python311/Scripts:/c/Program Files/PowerShell/7-preview/preview:/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/c/Program Files/PowerShell/7:/c/Program Files/PVsyst8.0.17:/c/Users/YongYH/AppData/Local/Programs/Python/Python310/Scripts:/c/Users/YongYH/AppData/Local/Programs/Python/Python310:/c/Users/YongYH/AppData/Local/Microsoft/WindowsApps:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311:/c/Users/ChooYC/AppData/Local/Programs/Python/Python311/Scripts:/usr/bin/vendor_perl:/usr/bin/core_perl)
&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maxim.mk:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;Updated based on&amp;nbsp;&lt;a href="https://ez.analog.com/energy-metering/f/q-a/603596/fail-to-use-the-function-max31343_reg_read_time_stamp/599190"&gt;(+) Fail to use the function max31343_reg_read_time_stamp() - Q&amp;amp;A - Energy - EngineerZone&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;pre class="ui-code" data-mode="text"&gt;diff --git a/tools/scripts/maxim.mk b/tools/scripts/maxim.mk
index 434ac812..5199a93a 100644
--- a/tools/scripts/maxim.mk
+++ b/tools/scripts/maxim.mk
@@ -15,7 +15,7 @@ OC=arm-none-eabi-objcopy
 SIZE=arm-none-eabi-size
 
 PYTHON = python
-ARM_COMPILER_PATH = $(realpath $(dir $(shell find $(MAXIM_LIBRARIES)/../Tools/GNUTools -wholename &amp;quot;*bin/$(CC)&amp;quot; -o -name &amp;quot;$(CC).exe&amp;quot;)))
+ARM_COMPILER_PATH = $(realpath $(dir $(shell find $(MAXIM_LIBRARIES)/../../../Tools/gcc/arm-none-eabi -wholename &amp;quot;*bin/$(CC)&amp;quot; -o -name &amp;quot;$(CC).exe&amp;quot;)))
 
 # Use the user provided compiler if the SDK doesn&amp;#39;t contain it.
 ifeq ($(ARM_COMPILER_PATH),)
@@ -51,6 +51,11 @@ include $(MAXIM_LIBRARIES)/CMSIS/Device/Maxim/$(TARGET_UCASE)/Source/GCC/$(TARGE
 endif
 include $(MAXIM_LIBRARIES)/PeriphDrivers/$(TARGET_LCASE)_files.mk
 
+PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SYS/mxc_assert.c
+PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SYS/mxc_delay.c
+PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SYS/nvic_table.c
+PERIPH_DRIVER_C_FILES += $(SOURCE_DIR)/SYS/mxc_lock.c
+
 HEX=$(basename $(BINARY)).hex
 TARGET_REV=0x4131
 
&lt;/pre&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting Step that I have taken:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File path in Windows:&amp;nbsp;C:\MaximSDK\Tools\GNUTools\10.3\lib\gcc\arm-none-eabi&lt;/li&gt;
&lt;li&gt;Update to&amp;nbsp;ARM_COMPILER_PATH = $(MAXIM_LIBRARIES)/Tools/GNUTools/10.3/lib/gcc/arm-none-eabi&lt;/li&gt;
&lt;li&gt;But there&amp;#39;s new error message&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="powershell"&gt;YongYH@YongYH-Laptop MINGW64 ~
$ cd /c/Users/YongYH/no-OS/projects/eval-pqmon &amp;amp;&amp;amp; ./build_hex.sh
[INFO] Cleaning previous build...
Using USB as interface for IIO communication
[14:09:53] [Delete] C:/Users/YongYH/no-OS/projects/eval-pqmon/build
[INFO] Building new HEX...
Using USB as interface for IIO communication
[14:09:55] Building for maxim
Using USB as interface for IIO communication
[14:09:58] Building for target max32650
[14:09:58] Creating IDE project
Using USB as interface for IIO communication
Using USB as interface for IIO communication
[14:11:37] Generating build flags
[14:11:45] Creating symlinks to source files
Using USB as interface for IIO communication
[14:11:49] [CC] heap.c
process_begin: CreateProcess(NULL, arm-none-eabi-gcc -c @C:/Users/YongYH/no-OS/projects/eval-pqmon/build/eval-pqmon-cflags.txt C:/Users/YongYH/no-OS/projects/eval-pqmon/build/app/root/MaximSDK/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.c -o C:/Users/YongYH/no-OS/projects/eval-pqmon/build/objs/eval-pqmon/build/app/root/MaximSDK/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.o, ...) failed.
make (e=2): The system cannot find the file specified.
make[1]: *** [../../tools/scripts/generic.mk:289: C:/Users/YongYH/no-OS/projects/eval-pqmon/build/objs/eval-pqmon/build/app/root/MaximSDK/Libraries/CMSIS/Device/Maxim/MAX32650/Source/heap.o] Error 2
make: *** [../../tools/scripts/generic.mk:268: all] Error 2
[ERROR] HEX file not found: /c/Users/YongYH/no-OS/projects/eval-pqmon/build/eval-pqmon.hex
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Where to download latest release (not build) Maxim SDK?</title><link>https://ez.analog.com/thread/604042?ContentTypeID=0</link><pubDate>Wed, 22 Apr 2026 07:13:41 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:3a0e9dfe-1a21-4c65-97b7-b351dadfa61e</guid><dc:creator>YongLawrence</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604042?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604042/where-to-download-latest-release-not-build-maxim-sdk/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt; AD-PQMON-SL&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem Description:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Where to download latest release (not build) Maxim SDK?&lt;/li&gt;
&lt;li&gt;Because I want to avoid use delay in my coding:&amp;nbsp;&lt;a href="https://ez.analog.com/energy-metering/f/q-a/603596/fail-to-use-the-function-max31343_reg_read_time_stamp/599190"&gt;Fail to use the function max31343_reg_read_time_stamp() - Q&amp;amp;A - Energy - EngineerZone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Currently my Maxim SDK version is 1.0.0:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting Steps that I have taken:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Update in&amp;nbsp;MaintenanceTool.exe but show no update&lt;/p&gt;
&lt;p&gt;&lt;img style="height:349px;max-height:349px;max-width:789px;" alt=" " height="246" src="https://ez.analog.com/resized-image/__size/1578x698/__key/communityserver-discussions-components-files/357/Maxim-Update.JPG" width="788" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Correct Neutral connection of Ac voltage  with Vn pin of ADE7758</title><link>https://ez.analog.com/thread/604007?ContentTypeID=0</link><pubDate>Mon, 20 Apr 2026 07:21:32 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:9d1660f0-e7ee-41ec-aea9-a6ae032091f4</guid><dc:creator>AHTISHAM</dc:creator><slash:comments>1</slash:comments><comments>https://ez.analog.com/thread/604007?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/604007/correct-neutral-connection-of-ac-voltage-with-vn-pin-of-ade7758/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello ADI Team&lt;br /&gt;&lt;br /&gt;We are developing a three-phase energy meter using the ADE7758 chip, which can support both delta and wye connections.&lt;br /&gt;&lt;br /&gt;Before we proceed with PCB manufacturing, we need your input on the VN connection of the ADE7758. We have compared the schematic of the ADE7758 evaluation board with a locally available evaluation board in our country, and they have different connections. Please review this and share your perspective with us.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1776669481837v5.jpeg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This image is from AN-1334&lt;br /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/fig_2D00_12.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADE9000 – Current channels drifting 853–1127 ppm/°C while voltage channels remain stable</title><link>https://ez.analog.com/thread/603960?ContentTypeID=0</link><pubDate>Thu, 16 Apr 2026 15:07:38 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:c7b4c7fe-830b-4f40-8bf0-f0a646e71608</guid><dc:creator>Gustavo Garcia</dc:creator><slash:comments>8</slash:comments><comments>https://ez.analog.com/thread/603960?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/603960/ade9000-current-channels-drifting-853-1127-ppm-c-while-voltage-channels-remain-stable/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We are developing a three-phase energy analyzer using the ADE9000, and we have observed a consistent and reproducible thermal drift issue exclusively on the current channels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Two independent ADE9000 units purchased from DigiKey &amp;mdash; both exhibit identical behavior&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Current source: HIOKI 9660 clamp sensor, 1 mV/A, internal burden, 2 &amp;Omega; output impedance, located 50 cm from the chip&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Input signal level: approximately 120 mV RMS on both current and voltage channels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Observed behavior:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Current channels drift: 853&amp;ndash;1127 ppm/&amp;deg;C&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Voltage channels: completely stable across the same temperature range&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;This asymmetry is consistent across both chips and all three current phases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Troubleshooting already performed:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Thermal pad verified &amp;mdash; &amp;Delta;T = 0.2&amp;deg;C, negligible&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Internal voltage reference measured stable at 1.2493&amp;ndash;1.2498 V across temperature&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;Crystal replaced &amp;mdash; noise improved slightly but drift persisted&lt;/li&gt;
&lt;li class="whitespace-normal break-words pl-2"&gt;AVDDOUT measured at 1.921&amp;ndash;1.924 V with a +0.15 mV/&amp;deg;C coefficient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The drift magnitude is 45x above the &amp;plusmn;25 ppm/&amp;deg;C maximum specified in the datasheet. Since both chips show identical behavior and the signal source is a precision laboratory instrument with negligible output impedance, we believe this points to a systematic internal difference between the current and voltage channel datapaths.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; Is there any known architectural difference between the current and voltage ADC channels that could explain this asymmetry? Is there an errata or application note addressing this behavior?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ADE9430 Harmonics Magnitude</title><link>https://ez.analog.com/thread/603943?ContentTypeID=0</link><pubDate>Thu, 16 Apr 2026 03:11:38 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:bab25fbf-6268-461d-a5a1-c8b8cd17931c</guid><dc:creator>NXTLAB</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/603943?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/603943/ade9430-harmonics-magnitude/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;Hi,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;br /&gt;Is it Possible to read the harmonics values in its own magnitude?&amp;nbsp; As far as I know, wit the standard functions of the PQ library the harmonics values are presented in terms of the fundamental RMS value, I would like to know how can I read those values in its own magnitude (A &amp;amp; V respectively)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Also, Is it possible to &amp;quot;hardcode&amp;quot; a constant number in the library&amp;nbsp; to get the Total Demand Distortion (TDD) Instead of the THD?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Thank you in advance&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Reading Random values on SPI from Metering IC</title><link>https://ez.analog.com/thread/603722?ContentTypeID=0</link><pubDate>Wed, 01 Apr 2026 13:48:30 GMT</pubDate><guid isPermaLink="false">a884d118-f55f-49de-87eb-b9dbaf99b3e3:510798b4-bd89-4340-8fd7-300ea6d9b0e1</guid><dc:creator>JustdoinGodswork</dc:creator><slash:comments>0</slash:comments><comments>https://ez.analog.com/thread/603722?ContentTypeID=0</comments><wfw:commentRss>https://ez.analog.com/energy-metering/f/q-a/603722/reading-random-values-on-spi-from-metering-ic/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I made a custom PCB with following the datasheet reference diagram.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1775050634664v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://ez.analog.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/357/pastedimage1775050710579v2.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;I have tested PCB with connected AC Neutral to DGND&lt;br /&gt;DGND to AGND for a common ground reference.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Also removed the 1K (R14) resistor to feed neutral directly to the Metering IC.&lt;/p&gt;
&lt;p&gt;On the IC Pins I checked the voltage level,&lt;br /&gt;Since testing with single phase AC on VAP for now.&lt;/p&gt;
&lt;p&gt;At 240VAC, on the IC pin 16 VAP i got 0.240V AC (Checked with multimeter from the Neutral and DGND)&lt;br /&gt;&lt;br /&gt;Getting random voltage reading from IC, it reading random values even when no AC input.&lt;br /&gt;&lt;code&gt;04:08:44.097 -&amp;gt; ADE debug registers:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.129 -&amp;gt; VERSION: 0x2&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.129 -&amp;gt; OPMODE : 0x4&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.161 -&amp;gt; STATUS : 0xC0E00&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.161 -&amp;gt; RSTATUS: 0xC0E00&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.193 -&amp;gt; AIRMS : 681&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.193 -&amp;gt; BIRMS : 5D1&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.226 -&amp;gt; CIRMS : 10F8&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.226 -&amp;gt; AVRMS : 17CBD9&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.259 -&amp;gt; BVRMS : 188CEE&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.259 -&amp;gt; CVRMS : F3B79&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:44.291 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:52.771 -&amp;gt; VOLTAGE RMS readings for each phase:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:53.702 -&amp;gt; 180.73&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:54.602 -&amp;gt; 193.06&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:55.533 -&amp;gt; 110.74&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:08:55.533 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:16.945 -&amp;gt; VOLTAGE RMS readings for each phase:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:17.862 -&amp;gt; 181.23&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:18.822 -&amp;gt; 170.60&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:19.707 -&amp;gt; 110.11&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:19.707 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:21.014 -&amp;gt; VOLTAGE RMS readings for each phase:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:21.952 -&amp;gt; 182.64&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:22.865 -&amp;gt; 189.44&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:23.770 -&amp;gt; 108.69&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:23.770 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:24.064 -&amp;gt; VOLTAGE RMS readings for each phase:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:24.971 -&amp;gt; 185.55&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:25.924 -&amp;gt; 166.75&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:26.829 -&amp;gt; 108.37&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:26.829 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:27.939 -&amp;gt; VOLTAGE RMS readings for each phase:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:28.890 -&amp;gt; 185.73&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:29.769 -&amp;gt; 188.56&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:30.717 -&amp;gt; 109.96&lt;/code&gt;&lt;br /&gt;&lt;code&gt;04:09:30.717 -&amp;gt; Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here is the code I&amp;#39;m testing with&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;Arduino.h&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;SPI.h&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;ADE7758Lib.h&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; inputChar = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;bool&lt;/span&gt;&lt;span&gt; rx = &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;ADE7758 &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;(&amp;amp;SPI,&lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;runSPITest&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; samples = &lt;/span&gt;&lt;span&gt;50&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; version0 = &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(VERSION);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; opmode0 = &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(OPMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; versionMismatch = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; opmodeMismatch = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &amp;lt; samples; i++) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(VERSION) != version0) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; versionMismatch++;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(OPMODE) != opmode0) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; opmodeMismatch++;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; (&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(MMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; mmodeOriginal = &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(MMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; mmodeTest = (&lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt;)(mmodeOriginal ^ 0x&lt;/span&gt;&lt;span&gt;01&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(MMODE, mmodeTest);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; mmodeReadback = &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(MMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(MMODE, mmodeOriginal);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; mmodeRestored = &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(MMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;SPI self-test:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;VERSION fixed: 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(version0, HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot; mismatches=&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(versionMismatch);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;OPMODE &amp;nbsp;fixed: 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(opmode0, HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot; mismatches=&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(opmodeMismatch);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;MMODE write/read: wrote 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(mmodeTest, HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot; read 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(mmodeReadback, HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;MMODE restore &amp;nbsp; : 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(mmodeRestored, HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;bool&lt;/span&gt;&lt;span&gt; pass = (versionMismatch == &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) &amp;amp;&amp;amp;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (opmodeMismatch == &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) &amp;amp;&amp;amp;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (mmodeReadback == mmodeTest) &amp;amp;&amp;amp;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (mmodeRestored == mmodeOriginal);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(pass ? &lt;/span&gt;&lt;span&gt;&amp;quot;SPI RESULT: PASS&amp;quot;&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;&amp;quot;SPI RESULT: FAIL&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;setup&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;begin&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;9600&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;SPI&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;begin&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;begin&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;ADE7758 begins operating&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug, s=spi-test&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1000&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;loop&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;available&lt;/span&gt;&lt;span&gt;() &amp;gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; inputChar = (&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (inputChar != &lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;\r&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt; &amp;amp;&amp;amp; inputChar != &lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span&gt;&amp;#39;&lt;/span&gt;&lt;span&gt; &amp;amp;&amp;amp; inputChar != &lt;/span&gt;&lt;span&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; rx = &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (rx) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;switch&lt;/span&gt;&lt;span&gt;(inputChar){&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;ENERGY readings for each phase:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(PHASE_A), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;CURRENT RMS readings for each phase:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;IRMS&lt;/span&gt;&lt;span&gt;(PHASE_A), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;IRMS&lt;/span&gt;&lt;span&gt;(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;IRMS&lt;/span&gt;&lt;span&gt;(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;VOLTAGE RMS readings for each phase:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;float&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;VRMS&lt;/span&gt;&lt;span&gt;(PHASE_A) * &lt;/span&gt;&lt;span&gt;0.000159024&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;float&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;VRMS&lt;/span&gt;&lt;span&gt;(PHASE_B) * &lt;/span&gt;&lt;span&gt;0.000159024&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;float&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;VRMS&lt;/span&gt;&lt;span&gt;(PHASE_C) * &lt;/span&gt;&lt;span&gt;0.000159024&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Serial.println(myADE.VRMS(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Serial.println(myADE.VRMS(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;d&amp;#39;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Complex Energy readings for each phase:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(PHASE_A), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;v&amp;#39;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;ADE debug registers:&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;VERSION: 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(VERSION), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;OPMODE : 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(OPMODE), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;STATUS : 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getInterruptStatus&lt;/span&gt;&lt;span&gt;(), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;RSTATUS: 0x&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getResetInterruptStatus&lt;/span&gt;&lt;span&gt;(), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;AIRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(PHASE_A), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;BIRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;CIRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;AVRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(PHASE_A), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;BVRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(PHASE_B), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;CVRMS &amp;nbsp;: &amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;myADE&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(PHASE_C), HEX);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;case&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;#39;s&amp;#39;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;runSPITest&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;unknown command&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; rx = &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;Serial&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;println&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;quot;Send command: a=Wh, b=Irms, c=Vrms, d=VAh, v=debug, s=spi-test&amp;quot;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;//ADE7758Lib.h&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#ifndef&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;_ADE7758LIB_h&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;_ADE7758LIB_h&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;SPI.h&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AWATTHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;01&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BWATTHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;02&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CWATTHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;03&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVARHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;04&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVARHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;05&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVARHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;06&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVAHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;07&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVAHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;08&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVAHR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;09&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AIRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0A&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BIRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0B&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CIRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0C&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0D&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0E&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVRMS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;0F&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;FREQ&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;TEMP&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;11&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WFORM&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;12&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OPMODE&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;13&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MMODE&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;14&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WAVMODE&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;15&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;COMPMODE&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;LCYCMODE&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;17&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MASK&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;18&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;STATUS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;19&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;RSTATUS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;1A&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXTOUT&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;1B&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;LINECYC&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;1C&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SAGCYC&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;1D&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SAGLVL&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;1E&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VPINTLVL&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;1F&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IPINTLVL&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;20&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VPEAK&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;21&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IPEAK&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;22&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GAIN&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;23&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVRMSGAIN&lt;/span&gt;&lt;span&gt; 0x&lt;/span&gt;&lt;span&gt;24&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVRMSGAIN&lt;/span&gt;&lt;span&gt; 0x&lt;/span&gt;&lt;span&gt;25&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVRMSGAIN&lt;/span&gt;&lt;span&gt; 0x&lt;/span&gt;&lt;span&gt;26&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AIGAIN&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;27&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BIGAIN&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;28&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CIGAIN&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;29&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AWG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2A&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BWG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2B&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CWG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2C&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVARG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2D&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVARG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2E&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVARG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;2F&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVAG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;30&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVAG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;31&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVAG&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;32&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;33&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;34&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;35&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AIRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;36&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BIRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;37&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CIRMSOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;38&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AWAITOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;39&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BWAITOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;3A&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CWAITOS&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;3B&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AVAROS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;3C&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BVAROS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;3D&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CVAROS&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;3E&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;APHCAL&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;3F&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;BPHCAL&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;40&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CPHCAL&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;41&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WDIV&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;42&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VADIV&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;44&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VARDIV&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;43&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;APCFNUM&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;45&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;APCFDEN&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;46&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VARCFNUM&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;47&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VARCFDEN&lt;/span&gt;&lt;span&gt; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;48&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CHKSUM&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;0x&lt;/span&gt;&lt;span&gt;7E&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VERSION&lt;/span&gt;&lt;span&gt; &amp;nbsp; 0x&lt;/span&gt;&lt;span&gt;7F&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REG_READ&lt;/span&gt;&lt;span&gt;(reg) reg&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REG_WRITE&lt;/span&gt;&lt;span&gt;(reg) &amp;nbsp;(&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;)((reg) | 0x&lt;/span&gt;&lt;span&gt;80&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;//PHASE_SEL&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PHASE_A&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PHASE_B&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PHASE_C&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;//WAV_SEL&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CURRENT&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VOLTAGE&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ACT_PWR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REACT_PWR&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;APP_PWR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;//interrupt mask/status bit&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;AEHF&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REHF&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VAEHF&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SAGA&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SAGB&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SAGC&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;5&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXTOA&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;6&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXTOB&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXTOC&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXA&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;9&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXB&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZXC&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;11&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;LENERGY&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;12&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;RESET&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;13&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PKV&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;14&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PKI&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;15&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WFSM&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REVPAP&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;17&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;REVPRP&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;18&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SEQERR&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;19&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WAVMODE_VALUE&lt;/span&gt;&lt;span&gt;(phase, wave) &amp;nbsp; (((wave)&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;)|(phase))&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; ADE7758&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;public:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;ADE7758&lt;/span&gt;&lt;span&gt; (SPIClass *,&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;begin&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WattHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VARHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VAHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;VRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;waveform&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; ,&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;lineFreq&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;accumulateEnergy&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;powerOff&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;powerON&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;sleep&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;wakeUp&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getInterruptStatus&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getResetInterruptStatus&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; , &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;write16bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; , &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getVARHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; );&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;private:&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; SPIClass *_ADE7758SPI;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; _SSpin; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuWattHRA;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuWattHRB;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuVARHRA;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuVARHRB;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuVAHRA;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; accuVAHRB;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;};&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#endif&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;code&gt;&lt;span&gt;//ADE7758Lib.cpp&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/code&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;Arduino.h&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;SPI.h&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#include&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;ADE7758Lib.h&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#if&lt;/span&gt;&lt;span&gt; !&lt;/span&gt;&lt;span&gt;defined&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;MSBFIRST&lt;/span&gt;&lt;span&gt;) &amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;defined&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;SPI_MSBFIRST&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MSBFIRST&lt;/span&gt;&lt;span&gt; SPI_MSBFIRST&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;#endif&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;extern&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;isrGDO0event&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;SPISettings &lt;/span&gt;&lt;span&gt;ADESETTINGS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;125000&lt;/span&gt;&lt;span&gt;, MSBFIRST, SPI_MODE1);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;//public&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;ADE7758::&lt;/span&gt;&lt;span&gt;ADE7758&lt;/span&gt;&lt;span&gt;(SPIClass *ADESPI, &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; SSpin)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; _ADE7758SPI=ADESPI;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; _SSpin=SSpin;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;digitalWrite&lt;/span&gt;&lt;span&gt;(_SSpin, HIGH);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; //Ensure Chip select pin is output&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;pinMode&lt;/span&gt;&lt;span&gt;(_SSpin, OUTPUT);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;begin&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; // Allow device power-up to settle before first config write.&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;20&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; // Normal operating mode.&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(OPMODE, 0x&lt;/span&gt;&lt;span&gt;04&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; // Read reset/status once to clear startup latched flags.&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; (&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;getResetInterruptStatus&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; (&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;getInterruptStatus&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(AWATTHR+phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getVARHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(AVARHR+phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(AVAHR+phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;VRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; volts = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; samples = &lt;/span&gt;&lt;span&gt;50&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(phase);&lt;/span&gt;&lt;span&gt; // Dummy read to clear old data&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; i = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; i &amp;lt; samples; i++) {&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; volts += &lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delayMicroseconds&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1000&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;span&gt; // 1ms delay * 50 = 50ms averaging window&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; volts / samples;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;IRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; i=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; current=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(phase);&lt;/span&gt;&lt;span&gt;//Ignore first reading&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;for&lt;/span&gt;&lt;span&gt;(i=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;i&amp;lt;&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;;++i){&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; current+=&lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delayMicroseconds&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;50&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; }&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; //average&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; current/&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;accumulateEnergy&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; accuWattHRA += &lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(PHASE_A);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; accuWattHRB += &lt;/span&gt;&lt;span&gt;getWattHR&lt;/span&gt;&lt;span&gt;(PHASE_B);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; // Add Phase C if needed&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; accuVAHRA += &lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(PHASE_A);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; accuVAHRB += &lt;/span&gt;&lt;span&gt;getVAHR&lt;/span&gt;&lt;span&gt;(PHASE_B);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;waveform&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase,&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; source)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;powerOff&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;powerON&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;sleep&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;wakeUp&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getInterruptStatus&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;){&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(STATUS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getResetInterruptStatus&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt;){&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(RSTATUS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;lineFreq&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase){&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; mmode;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; mmode = &lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(MMODE);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(MMODE,(mmode&amp;amp;0x&lt;/span&gt;&lt;span&gt;11111100&lt;/span&gt;&lt;span&gt; )| phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(FREQ);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;//private&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;digitalWrite&lt;/span&gt;&lt;span&gt;(_SSpin, LOW);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;digitalWrite&lt;/span&gt;&lt;span&gt;(_SSpin, HIGH);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;write8bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; reg, &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; data)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;beginTransaction&lt;/span&gt;&lt;span&gt;(ADESETTINGS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;REG_WRITE&lt;/span&gt;&lt;span&gt;(reg));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(data);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;endTransaction&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;void&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;write16bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; reg, &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; data)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;beginTransaction&lt;/span&gt;&lt;span&gt;(ADESETTINGS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;REG_WRITE&lt;/span&gt;&lt;span&gt;(reg));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;)((data&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;span&gt;)&amp;amp;0x&lt;/span&gt;&lt;span&gt;FF&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt;)(data&amp;amp;0x&lt;/span&gt;&lt;span&gt;FF&lt;/span&gt;&lt;span&gt;));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;endTransaction&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;read8bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; reg)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;beginTransaction&lt;/span&gt;&lt;span&gt;(ADESETTINGS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; ret;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;REG_READ&lt;/span&gt;&lt;span&gt;(reg));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; ret=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;endTransaction&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; ret;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;read16bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; reg)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;beginTransaction&lt;/span&gt;&lt;span&gt;(ADESETTINGS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ret=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; ret0=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;REG_READ&lt;/span&gt;&lt;span&gt;(reg));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; ret=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; ret0=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;endTransaction&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; ret= (ret&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;span&gt;)|ret0;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; ret;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; reg)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;beginTransaction&lt;/span&gt;&lt;span&gt;(ADESETTINGS);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;enableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ret=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; ret1=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;unsigned&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; ret0=&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;REG_READ&lt;/span&gt;&lt;span&gt;(reg));&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; ret=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; ret1=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; ret0=&lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;transfer&lt;/span&gt;&lt;span&gt;(0x&lt;/span&gt;&lt;span&gt;00&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;delay&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;disableChip&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;_ADE7758SPI&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;endTransaction&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; ret= (ret&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;)|(ret1&amp;lt;&amp;lt;&lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;span&gt;)|ret0;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; ret;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getIRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(AIRMS+phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;long&lt;/span&gt;&lt;span&gt; ADE7758::&lt;/span&gt;&lt;span&gt;getVRMS&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;char&lt;/span&gt;&lt;span&gt; phase)&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;read24bits&lt;/span&gt;&lt;span&gt;(AVRMS+phase);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;code&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>