MMA8451Q Int not clearing

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

MMA8451Q Int not clearing

1,436 次查看
scottbuchanan
Contributor I

Description:  I'm using one of your MMA8451 3axis devices with a Nordic

Semi nrf51822.  I'm using the built-in function to detect a tap and

a flip.  The tap is directed to INT1 and the flip is directed to INT2. 

I can currently detect both interrupts and distinguish between

them based on which GPIO pin on the nrf51822 is driven.  The

GPIO pins are configured as pull-up's.

I've been using int1 and the tap detection for a while with no

problem.  I added the flip detection to INT2 today and now,

occasionally, after the int serv. routine is triggered one, or the

other (depending on which was triggered) will not reset after

reading the appropriate status register.  I do read both status

registers each time to be safe - PL_STATUS_REG and

PULSE_SRC_REG - and the values look correct.

I'm measuring the INT pin voltages and once this occurs either

INT1 or INT2 stays low and no more interrupts are generated by

the accel until a power cycle.

Can you help with some suggestions as to what I'm doing

wrong?

The init routing to set up the accel is in the attached file after the

pre-processor.


void accel_init(void)

{

    uint8_t regValue, newRegValue;

    turn_off_accel();

    newRegValue = 0x10;

    regValue = twi_read_register(0x3A, 0x2A);

    twi_write_register(0x3A, 0x2A, (regValue & 0xC7) | 0x10);

    twi_write_register(0x3A, 0x21, (0x00 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 1 << 0));

    uint8_t ac = ((uint8_t)((double)1.575/0.063));

    twi_write_register(0x3A, 0x23, ((uint8_t)((double)1.575/0.063)));

    twi_write_register(0x3A, 0x24, ((uint8_t)((double)1.575/0.063)));

    twi_write_register(0x3A, 0x25, ((uint8_t)((double)2.65/0.063)));

    twi_write_register(0x3A, 0x26, ((uint8_t)(50 / 2.5)));

    twi_write_register(0x3A,0x27, ((uint8_t)(140 / 5.0)));

    twi_write_register(0x3A, 0x2A, 0x10 | 0 << 2);

    twi_write_register(0x3A, 0x2B, (0x00 | 1 << 0 | 1 << 3 | 1 << 1 | 1 << 4 | 0 << 2));

    twi_write_register(0x3A, 0x2C, 0x00);

    twi_write_register(0x3A, 0x2D, (0x00 | 0 << 2 | 1 << 3 | 1 << 4));

    twi_write_register(0x3A, 0x2E, (0x00 | 0 << 2 | 1 << 3 | 0 << 4));

    twi_write_register(0x3A, 0x11, 0x40);

    twi_write_register(0x3A, 0x13, 0xC0);

    twi_write_register(0x3A, 0x14, (0x07 << 3 | 0x01));

    twi_write_register(0x3A, 0x12, ((uint8_t)(100 / 5.0)));

标签 (1)
0 项奖励
0 回复数
%3CLINGO-SUB%20id%3D%22lingo-sub-323149%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMMA8451Q%20Int%20%E6%9C%AA%E6%B8%85%E9%9B%B6%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-323149%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E6%8F%8F%E8%BF%B0%EF%BC%9A%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E4%BD%A0%E7%9A%84%E4%B8%80%E5%8F%B0%20MMA8451%203%20%E8%BD%B4%E8%AE%BE%E5%A4%87%E5%92%8C%20Nordic%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3ESemi%20nrf51822%E3%80%82%20%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E5%86%85%E7%BD%AE%E5%8A%9F%E8%83%BD%E6%9D%A5%E6%A3%80%E6%B5%8BTAP%E5%92%8C%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E7%BF%BB%E8%BD%AC%E3%80%82%20TAP%20%E5%AE%9A%E5%90%91%E5%88%B0%20INT1%EF%BC%8C%E7%BF%BB%E8%BD%AC%E5%AE%9A%E5%90%91%E5%88%B0%20INT2%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E7%9B%AE%E5%89%8D%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E6%A3%80%E6%B5%8B%E5%88%B0%E8%BF%99%E4%B8%A4%E4%B8%AA%E4%B8%AD%E6%96%AD%EF%BC%8C%E5%B9%B6%E5%B0%86%E5%85%B6%E5%8C%BA%E5%88%86%E4%B8%BA%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E5%AE%83%E4%BB%AC%E5%8F%96%E5%86%B3%E4%BA%8E%E9%A9%B1%E5%8A%A8%20nrf51822%20%E4%B8%8A%E7%9A%84%E5%93%AA%E4%B8%AA%20GPIO%20%E5%BC%95%E8%84%9A%E3%80%82%20%22(%E3%80%8A%E4%B8%96%E7%95%8C%E4%BA%BA%E6%9D%83%E5%AE%A3%E8%A8%80%E3%80%8B)%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3EGPIO%20%E5%BC%95%E8%84%9A%E9%85%8D%E7%BD%AE%E4%B8%BA%E4%B8%8A%E6%8B%89%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E6%88%91%E4%BD%BF%E7%94%A8%20int1%20%E5%92%8C%20TAP%20%E6%A3%80%E6%B5%8B%E5%B7%B2%E6%9C%89%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E4%BA%86%EF%BC%8C%E6%B2%A1%E6%9C%89%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E9%97%AE%E9%A2%98%20%E4%BB%8A%E5%A4%A9%EF%BC%8C%E6%88%91%E5%9C%A8%20INT2%20%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%BA%86%E7%BF%BB%E8%BD%AC%E6%A3%80%E6%B5%8B%E5%8A%9F%E8%83%BD%E3%80%81%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E5%81%B6%E5%B0%94%EF%BC%8C%E5%9C%A8%E6%9C%8D%E5%8A%A1%E4%B9%8B%E5%90%8E%E3%80%82%E4%BE%8B%E7%A8%8B%E8%A2%AB%E8%A7%A6%E5%8F%91%E4%B8%80%E4%B8%AA%EF%BC%8C%E6%88%96%E8%80%85%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E5%85%B6%E4%BB%96%EF%BC%88%E5%8F%96%E5%86%B3%E4%BA%8E%E8%A7%A6%E5%8F%91%E4%BA%86%E5%93%AA%E4%B8%AA%EF%BC%89%E4%B9%8B%E5%90%8E%E4%B8%8D%E4%BC%9ARESET%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E8%AF%BB%E5%8F%96%E7%9B%B8%E5%BA%94%E7%9A%84%E7%8A%B6%E6%80%81%E5%AF%84%E5%AD%98%E5%99%A8%E3%80%82%20%E6%88%91%E7%A1%AE%E5%AE%9E%E9%98%85%E8%AF%BB%E4%BA%86%E8%BF%99%E4%B8%A4%E7%A7%8D%E7%8A%B6%E6%80%81%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E4%B8%BA%E4%BA%86%E5%AE%89%E5%85%A8%E8%B5%B7%E8%A7%81%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%AF%84%E5%AD%98%E5%99%A8%20-%20PL_STATUS_REG%20%E5%92%8C%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3EPULSE_SRC_REG%20-%20%E6%95%B0%E5%80%BC%E7%9C%8B%E8%B5%B7%E6%9D%A5%E6%98%AF%E6%AD%A3%E7%A1%AE%E7%9A%84%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E6%B5%8B%E9%87%8F%20INT%20%E5%BC%95%E8%84%9A%E7%9A%84%E7%94%B5%E5%8E%8B%EF%BC%8C%E4%B8%80%E6%97%A6%E5%87%BA%E7%8E%B0%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%EF%BC%8C%E8%A6%81%E4%B9%88%E6%98%AF%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3EINT1%20%E6%88%96%20INT2%20%E4%BF%9D%E6%8C%81%E4%BD%8E%E7%94%B5%E5%B9%B3%EF%BC%8C%E4%B8%8D%E5%86%8D%E4%BA%A7%E7%94%9F%E4%B8%AD%E6%96%AD%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E7%9B%B4%E5%88%B0%E7%94%B5%E6%BA%90%E5%BE%AA%E7%8E%AF%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E6%82%A8%E8%83%BD%E5%B0%B1%E6%88%91%E6%AD%A3%E5%9C%A8%E5%81%9A%E7%9A%84%E4%BA%8B%E6%83%85%E6%8F%90%E4%BE%9B%E4%B8%80%E4%BA%9B%E5%BB%BA%E8%AE%AE%E5%90%97%EF%BC%9F%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E9%94%99%E4%BA%86%E5%90%97%EF%BC%9F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E8%AE%BE%E7%BD%AE%20accel%20%E7%9A%84%E5%88%9D%E5%A7%8B%E8%B7%AF%E7%94%B1%E4%BD%8D%E4%BA%8E%E9%99%84%E4%BB%B6%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%AD%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22color%3A%20%23000000%3B%20font-family%3A%20Helvetica%3B%20font-size%3A%2012px%3B%22%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3Evoid%20accel_init(void)%3C%2FP%3E%3CP%3E%7B%3C%2FP%3E%3CP%3E%20%20%20%20uint8_t%20regValue%E3%80%81newRegValue%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20turn_off_accel()%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20newRegValue%20%3D%200x10%EF%BC%9B%3C%2FP%3E%3CP%3E%20%20%20%20regValue%20%3D%20twi_read_register%EF%BC%880x3A%EF%BC%8C0x2A%EF%BC%89%EF%BC%9B%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2A%2C%20(regValue%26amp%3B%200xC7)%20%7C%200x10)%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x21%2C%20(0x00%20%7C%200%26lt%3B%26lt%3B%206%20%7C%200%26lt%3B%26lt%3B%205%20%7C%201%26lt%3B%26lt%3B%204%20%7C%200%26lt%3B%26lt%3B%203%20%7C%201%26lt%3B%26lt%3B%202%20%7C%200%26lt%3B%26lt%3B%201%20%7C%201%26lt%3B%26lt%3B%200))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20uint8_t%20ac%20%3D%20((uint8_t)((double)1.575%2F0.063))%EF%BC%9B%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x23%2C%20((uint8_t)((double)1.575%2F0.063)))%EF%BC%9B%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x24%2C%20((uint8_t)((double)1.575%2F0.063)))%EF%BC%9B%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x25%2C%20((uint8_t)((double)2.65%2F0.063)))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x26%2C%20((uint8_t)(50%20%2F%202.5)))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C0x27%2C%20((uint8_t)(140%20%2F%205.0)))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2A%2C%200x10%20%7C%200%26lt%3B%26lt%3B%202)%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2B%2C%20(0x00%20%7C%201%26lt%3B%26lt%3B%200%20%7C%201%26lt%3B%26lt%3B%203%20%7C%201%26lt%3B%26lt%3B%201%20%7C%201%26lt%3B%26lt%3B%204%20%7C%200%26lt%3B%26lt%3B%202))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2C%2C%200x00)%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2D%2C%20(0x00%20%7C%200%26lt%3B%26lt%3B%202%20%7C%201%26lt%3B%26lt%3B%203%20%7C%201%26lt%3B%26lt%3B%204))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x2E%2C%20(0x00%20%7C%200%26lt%3B%26lt%3B%202%20%7C%201%26lt%3B%26lt%3B%203%20%7C%200%26lt%3B%26lt%3B%204))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x11%2C%200x40)%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x13%2C%200xC0)%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x14%2C%20(0x07%26lt%3B%26lt%3B%203%20%7C%200x01))%EF%BC%9B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%20%20%20%20twi_write_register(0x3A%2C%200x12%2C%20((uint8_t)(100%20%2F%205.0)))%EF%BC%9B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-323149%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E5%8A%A0%E9%80%9F%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E