<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Sensors中的主题 Re: MAG3110 Interrupt Pin Always HIGH</title>
    <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340819#M966</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tomas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Oh, wow, that is very shame of me :smileysad:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your very kind help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Jan 2015 10:49:28 GMT</pubDate>
    <dc:creator>abdullahkahrama</dc:creator>
    <dc:date>2015-01-15T10:49:28Z</dc:date>
    <item>
      <title>MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340812#M959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to implement MAG3110 to my project and I have already communicated with the device and read the register contents. I am also reading &lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;ZYXDR bit successfully of which I can see that it changes. The datasheet says that this bit is logically connected to the interrupt pin but the interrupt pin doesn't change. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;I am using FRDM-KL25Z to interface the sensor. I have connected the interrupt pin of MAG3110 to NMI pin. Also, for test purposes I have left this pin floating but nothing changes. It is always HIGH.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;Here is my code:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 9pt; color: #000000; font-style: normal;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14211604615592705" jivemacro_uid="_14211604615592705"&gt;
&lt;P&gt;/* ###################################################################&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename&amp;nbsp;&amp;nbsp;&amp;nbsp; : main.c&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Project&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MAG3110-Breakout&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor&amp;nbsp;&amp;nbsp; : MKL25Z128VLK4&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Driver 01.01&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compiler&amp;nbsp;&amp;nbsp;&amp;nbsp; : GNU C Compiler&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date/Time&amp;nbsp;&amp;nbsp; : 2015-01-10, 19:02, # CodeGen: 0&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Abstract&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Settings&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Contents&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No public methods&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;** ###################################################################*/&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;** @file main.c&lt;/P&gt;
&lt;P&gt;** @version 01.01&lt;/P&gt;
&lt;P&gt;** @brief&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main module.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This module contains user's application code.&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;**&amp;nbsp; @addtogroup main_module main module documentation&lt;/P&gt;
&lt;P&gt;**&amp;nbsp; @{&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/* MODULE main */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/* Including needed modules to compile this module/procedure */&lt;/P&gt;
&lt;P&gt;#include "Cpu.h"&lt;/P&gt;
&lt;P&gt;#include "Events.h"&lt;/P&gt;
&lt;P&gt;#include "I2C0.h"&lt;/P&gt;
&lt;P&gt;#include "PTA.h"&lt;/P&gt;
&lt;P&gt;#include "SysTick.h"&lt;/P&gt;
&lt;P&gt;/* Including shared modules, which are used for whole project */&lt;/P&gt;
&lt;P&gt;#include "PE_Types.h"&lt;/P&gt;
&lt;P&gt;#include "PE_Error.h"&lt;/P&gt;
&lt;P&gt;#include "PE_Const.h"&lt;/P&gt;
&lt;P&gt;#include "IO_Map.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;/P&gt;
&lt;P&gt;#include "I2C.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;unsigned int _1_ms_ctr = 0;&lt;/P&gt;
&lt;P&gt;unsigned int dr_status;&lt;/P&gt;
&lt;P&gt;int mag3310_x = 0;&lt;/P&gt;
&lt;P&gt;int mag3310_y = 0;&lt;/P&gt;
&lt;P&gt;int mag3310_z = 0;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void main_loop(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static volatile unsigned char sysmod = 0;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_WriteRegister(MAG3110_addr, MAG3110_CTRL_REG2, 0x80);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_WriteRegister(MAG3110_addr, MAG3110_CTRL_REG1, 0x79);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sysmod = I2C_ReadRegister(MAG3110_addr, MAG3110_SYSMOD);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sysmod == 2)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dr_status = I2C_ReadRegister(MAG3110_addr, MAG3110_DR_STATUS);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dr_status &amp;gt; 7)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_x = I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_X_MSB);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_x &amp;lt;&amp;lt;= 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_x += I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_X_LSB);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_y = I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_Y_MSB);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_y &amp;lt;&amp;lt;= 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_y += I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_Y_LSB);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_z = I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_Z_MSB);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_z &amp;lt;&amp;lt;= 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mag3310_z += I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_Z_LSB);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/*lint -save&amp;nbsp; -e970 Disable MISRA rule (6.3) checking. */&lt;/P&gt;
&lt;P&gt;int main(void)&lt;/P&gt;
&lt;P&gt;/*lint -restore Enable MISRA rule (6.3) checking. */&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write your local variable definition here */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PE_low_level_init();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** End of Processor Expert internal initialization.&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;&amp;nbsp; ***/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write your code here */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* For example: for(;;) { } */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; main_loop();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** Don't write any code pass this line, or it will be deleted during code generation. ***/&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/&lt;/P&gt;
&lt;P&gt;&amp;nbsp; #ifdef PEX_RTOS_START&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PEX_RTOS_START();&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; /* Startup of the selected RTOS. Macro is defined by the RTOS component. */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; #endif&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /*** End of RTOS startup code.&amp;nbsp; ***/&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/&lt;/P&gt;
&lt;P&gt;&amp;nbsp; for(;;){}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/&lt;/P&gt;
&lt;P&gt;} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/* END main */&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;** @}&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;** ###################################################################&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file was created by Processor Expert 10.3 [05.09]&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the Freescale Kinetis series of microcontrollers.&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;** ###################################################################&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_142116047199459" jivemacro_uid="_142116047199459" modifiedtitle="true"&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt; * I2C.h&lt;/P&gt;
&lt;P&gt; *&lt;/P&gt;
&lt;P&gt; *&amp;nbsp; Created on: Jan 10, 2015&lt;/P&gt;
&lt;P&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Abdullah&lt;/P&gt;
&lt;P&gt; */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#ifndef I2C_H_&lt;/P&gt;
&lt;P&gt;#define I2C_H_&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define I2C_DisableAck()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 |= I2C_C1_TXAK_MASK&lt;/P&gt;
&lt;P&gt;#define I2C_EnableAck()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 &amp;amp;= ~I2C_C1_TXAK_MASK&lt;/P&gt;
&lt;P&gt;#define I2C_RepeatedStart()&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 |= I2C_C1_RSTA_MASK&lt;/P&gt;
&lt;P&gt;#define I2C_EnterRxMode()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 &amp;amp;= ~I2C_C1_TX_MASK&lt;/P&gt;
&lt;P&gt;#define I2C_write_byte(data)&amp;nbsp;&amp;nbsp; I2C0_D = data&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define I2C_Start()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 |= I2C_C1_TX_MASK;\&lt;/P&gt;
&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 |= I2C_C1_MST_MASK&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define I2C_Stop()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 &amp;amp;= ~I2C_C1_MST_MASK;\&lt;/P&gt;
&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_C1 &amp;amp;= ~I2C_C1_TX_MASK&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define I2C_Wait()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((I2C0_S &amp;amp; I2C_S_IICIF_MASK)==0) {} \&lt;/P&gt;
&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_S |= I2C_S_IICIF_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define MAG3110_addr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0E&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define MAG3110_DR_STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_X_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_X_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_Y_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_Y_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_Z_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x05&lt;/P&gt;
&lt;P&gt;#define MAG3110_OUT_Z_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x06&lt;/P&gt;
&lt;P&gt;#define MAG3110_WHO_AM_I&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x07&lt;/P&gt;
&lt;P&gt;#define MAG3110_SYSMOD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_X_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x09&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_X_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0A&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_Y_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0B&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_Y_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_Z_MSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0D&lt;/P&gt;
&lt;P&gt;#define MAG3110_OFF_Z_LSB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0E&lt;/P&gt;
&lt;P&gt;#define MAG3110_DIE_TEMP&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0F&lt;/P&gt;
&lt;P&gt;#define MAG3110_CTRL_REG1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&lt;/P&gt;
&lt;P&gt;#define MAG3110_CTRL_REG2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x11&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void I2C_WriteRegister(unsigned char u8SlaveAddress,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char u8RegisterAddress, /*unsigned*/char u8Data);&lt;/P&gt;
&lt;P&gt;unsigned char I2C_ReadRegister(unsigned char u8SlaveAddress,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char u8RegisterAddress);&lt;/P&gt;
&lt;P&gt;void I2C_ReadMultiRegisters(unsigned char u8SlaveAddress,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char u8RegisterAddress, unsigned char n, unsigned char *r);&lt;/P&gt;
&lt;P&gt;void Pause(int number);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#endif /* I2C_H_ */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_1421160461536468 jive_macro_code" jivemacro_uid="_1421160461536468"&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;* I2C.c&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;*&amp;nbsp; Created on: Jan 10, 2015&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Author: Abdullah&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#include "Cpu.h"&lt;/P&gt;
&lt;P&gt;#include "I2C.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;unsigned int time_buffer;&lt;/P&gt;
&lt;P&gt;extern unsigned int _1_ms_ctr;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void I2C_WriteRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress, char u8Data)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8SlaveAddress &amp;lt;&amp;lt; 1;&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;&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; /* Send I2C device address with W/R bit = 0 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8RegisterAddress;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send register address */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8Data;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send the data */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Stop();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause(500);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;unsigned char I2C_ReadRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char result;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8SlaveAddress &amp;lt;&amp;lt; 1;&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;&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; /* Send I2C device address with W/R bit = 0 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&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;&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;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8RegisterAddress;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send register address */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_RepeatedStart();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = (u8SlaveAddress &amp;lt;&amp;lt; 1) | 0x01;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send I2C device address this time with W/R bit = 1 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_EnterRxMode();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_DisableAck();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = I2C0_D;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Stop();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = I2C0_D;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause(500);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void I2C_ReadMultiRegisters(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress, unsigned char n, unsigned char *r)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char i;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8SlaveAddress &amp;lt;&amp;lt; 1;&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;&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; /* Send I2C device address with W/R bit = 0 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&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;&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;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = u8RegisterAddress;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send register address */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_RepeatedStart();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C0_D = (u8SlaveAddress &amp;lt;&amp;lt; 1) | 0x01;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send I2C device address this time with W/R bit = 1 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_EnterRxMode();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_EnableAck();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = I2C0_D;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0; i&amp;lt;n-2; i++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *r = I2C0_D;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r++;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_DisableAck();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *r = I2C0_D;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r++;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Wait();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_Stop();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *r = I2C0_D;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pause(500);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void Pause(int number)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int cnt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(cnt=0; cnt&amp;lt;number; cnt++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14211604614977191" jivemacro_uid="_14211604614977191"&gt;
&lt;P&gt;/* ###################################################################&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename&amp;nbsp;&amp;nbsp;&amp;nbsp; : Events.c&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Project&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MAG3110-Breakout&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor&amp;nbsp;&amp;nbsp; : MKL25Z128VLK4&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Component&amp;nbsp;&amp;nbsp; : Events&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Driver 01.00&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compiler&amp;nbsp;&amp;nbsp;&amp;nbsp; : GNU C Compiler&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date/Time&amp;nbsp;&amp;nbsp; : 2015-01-10, 19:02, # CodeGen: 0&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Abstract&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is user's event module.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Put your event handler code here.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Settings&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Contents&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cpu_OnNMIINT - void Cpu_OnNMIINT(void);&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;** ###################################################################*/&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;** @file Events.c&lt;/P&gt;
&lt;P&gt;** @version 01.00&lt;/P&gt;
&lt;P&gt;** @brief&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is user's event module.&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Put your event handler code here.&lt;/P&gt;
&lt;P&gt;*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;**&amp;nbsp; @addtogroup Events_module Events module documentation&lt;/P&gt;
&lt;P&gt;**&amp;nbsp; @{&lt;/P&gt;
&lt;P&gt;*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;/* MODULE Events */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#include "Cpu.h"&lt;/P&gt;
&lt;P&gt;#include "Events.h"&lt;/P&gt;
&lt;P&gt;#include "I2C.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#ifdef __cplusplus&lt;/P&gt;
&lt;P&gt;extern "C" {&lt;/P&gt;
&lt;P&gt;#endif&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;extern unsigned int _1_ms_ctr;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/* User includes (#include below this line is not maintained by Processor Expert) */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;** ===================================================================&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp; Cpu_OnNMIINT (module Events)&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Component&amp;nbsp;&amp;nbsp; :&amp;nbsp; Cpu [MKL25Z128LK4]&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @brief&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This event is called when the Non maskable interrupt had&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; occurred. This event is automatically enabled when the [NMI&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt] property is set to 'Enabled'.&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/* ===================================================================*/&lt;/P&gt;
&lt;P&gt;void Cpu_OnNMIINT(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; static volatile unsigned char result = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; result = I2C_ReadRegister(MAG3110_addr, MAG3110_OUT_X_MSB);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void SysTick_Interrupt(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _1_ms_ctr++;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void I2C0_Interrupt(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/* END Events */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#ifdef __cplusplus&lt;/P&gt;
&lt;P&gt;}&amp;nbsp; /* extern "C" */&lt;/P&gt;
&lt;P&gt;#endif&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt;** @}&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;** ###################################################################&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file was created by Processor Expert 10.3 [05.09]&lt;/P&gt;
&lt;P&gt;**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the Freescale Kinetis series of microcontrollers.&lt;/P&gt;
&lt;P&gt;**&lt;/P&gt;
&lt;P&gt;** ###################################################################&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 21:03:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340812#M959</guid>
      <dc:creator>abdullahkahrama</dc:creator>
      <dc:date>2026-02-03T21:03:07Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340813#M960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdullah,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please try using my simple example code I have just created to illustrate the INT1 pin behavior? I am also using the &lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25Z"&gt;FRDM-KL25Z&lt;/A&gt; board in conjunction with the &lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-FXS-MULTI-B"&gt;FRDM-FXS-MULTI-B&lt;/A&gt; board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached you can also find a datalog file (MAG3110FC INT1_SCL_SDA pins.logicdata) with all INT1, SCL and SDA lines. I am using a Saleae Logic16 logic analyzer, so you will need to download their &lt;A href="https://www.saleae.com/downloads"&gt;software&lt;/A&gt; to look at my datalog file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can notice, the first tiny interrupt (~500ns wide) happens after POR which indicates completion of ASIC initialization (wakeup, fuse read, sensor reset etc.) and other interrupts, wider than the first one , indicate data is ready for read and get cleared after reading the data (OUT_X_MSB register).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Arial, sans-serif; color: #333333;"&gt;&lt;EM&gt;&lt;SPAN style="color: #3d3d3d; font-style: inherit; font-size: 11px; font-family: inherit; font-weight: inherit;"&gt;&lt;EM&gt;PS:&lt;SPAN class="Apple-converted-space" style="font-weight: inherit; font-style: inherit; font-family: inherit;"&gt;&lt;SPAN class="Apple-converted-space"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: inherit; color: #3d3d3d;"&gt;If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 09:30:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340813#M960</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-01-14T09:30:24Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340814#M961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As you can see, my code is basically yours, already. I have copied your routines and such :smileyhappy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have downloaded your project files and changed it to use I2C0 instead of I2C1 and still, the result is the same. I cannot see any LOW level on interrupt pin after power up. When I check it with the oscilloscope, it just jumps to 3.3V and stays like that. Then, after about 4ms, KL25Z&amp;nbsp; starts the data transfer and successfully communicates, but still, nothing changes on the interrupt pin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to what you say about the behavior of MAG3110, even if there is no MCU controlling it, there should be a low pulse of 500ns after POR. But I can see no change at all.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 10:12:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340814#M961</guid>
      <dc:creator>abdullahkahrama</dc:creator>
      <dc:date>2015-01-14T10:12:11Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340815#M962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdullah,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;It is strange, I have not heard of such a problem before. &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Are you using your own board or one of our boards with the MAG3110FC? If you are using your own board, could you please share here its schematic? &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif'; color: #3d3d3d; background: white;"&gt;How many parts have you tested so far&lt;/SPAN&gt;? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 13:39:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340815#M962</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-01-14T13:39:17Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340816#M963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using my own homemade board and I will try to change the part now. Maybe I was not able to solder it properly. Below is my schematic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="sch.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47413iC1343128278251F7/image-size/large?v=v2&amp;amp;px=999" role="button" title="sch.png" alt="sch.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 13:46:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340816#M963</guid>
      <dc:creator>abdullahkahrama</dc:creator>
      <dc:date>2015-01-14T13:46:15Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340817#M964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have changed the PCB and the MAG3110 with new ones, and this time INT pin goes down to only about 3 volts. Below is a photo of the PCB and a screenshot of the oscilloscope. CH1 (red) is I2C_CLK and CH2 (yellow) is INT pin while it is floating. When I connect INT pin to KL25Z's pin that is configured as input and NMI, the peak to peak value of the squarish wave gets reduced by about 100 times, so it basically almost 3.3V with little fluctuations on top.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="20150114_552450.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47739i93903FFE5067B042/image-size/large?v=v2&amp;amp;px=999" role="button" title="20150114_552450.png" alt="20150114_552450.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitleda.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/47849iD2A0AC3B749BF997/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitleda.png" alt="Untitleda.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="IMG_20150114_181451.JPG.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/48102i91077C827DC296A0/image-size/large?v=v2&amp;amp;px=999" role="button" title="IMG_20150114_181451.JPG.jpg" alt="IMG_20150114_181451.JPG.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Jan 2015 16:38:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340817#M964</guid>
      <dc:creator>abdullahkahrama</dc:creator>
      <dc:date>2015-01-14T16:38:05Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340818#M965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdullah,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;After reviewing your layout and looking at your board, I guess I found where the problem is. It looks like you accidentally swapped both INT1 and VDDIO pins, having the INT1 pin (#9) connected to VDD and VDDIO pin (#8) to INT1. You will have to modify your layout or cut the traces at those pins and use wires to connect them properly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;I hope this helps.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Arial','sans-serif';"&gt;Tomas&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 09:12:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340818#M965</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-01-15T09:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: MAG3110 Interrupt Pin Always HIGH</title>
      <link>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340819#M966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tomas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Oh, wow, that is very shame of me :smileysad:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your very kind help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 10:49:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/MAG3110-Interrupt-Pin-Always-HIGH/m-p/340819#M966</guid>
      <dc:creator>abdullahkahrama</dc:creator>
      <dc:date>2015-01-15T10:49:28Z</dc:date>
    </item>
  </channel>
</rss>

