Why is PIO1_8 not working for external interrupt input on LPC1519?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Why is PIO1_8 not working for external interrupt input on LPC1519?

1,455件の閲覧回数
Trups_123
Contributor I

I am working with the LPC1519 (ARM Cortex-M3) and trying to use Port 1, Pin 8 (PIO1_8) as an external interrupt input for a water flow sensor.

I configured PIO1_8 as a GPIO input and routed it to a PININT channel using the INMUX, then enabled falling-edge detection and enabled the IRQ. However, the interrupt never triggers when pulses are applied to P1_8.

0 件の賞賛
返信
5 返答(返信)

1,419件の閲覧回数
Trups_123
Contributor I

#include "chip.h"
#include <stdio.h>

#define FLOW_PIN_PORT 1
#define FLOW_PIN_NUM 8
#define FLOW_IRQ_NUM PIN_INT0_IRQn // Using PININT0
#define FLOW_CH PININTCH0

volatile uint32_t pulse_count = 0;

/* Interrupt Service Routine for flow sensor */
void PIN_INT0_IRQHandler(void) {
if (Chip_PININT_GetFallStates(LPC_PININT) & (1 << FLOW_CH)) {
pulse_count++; // Count pulses
Chip_PININT_ClearIntStatus(LPC_PININT, FLOW_CH);
}
}

int main(void) {
SystemCoreClockUpdate();

// Initialize GPIO
Chip_GPIO_Init(LPC_GPIO_PORT);
Chip_IOCON_PinMuxSet(LPC_IOCON, FLOW_PIN_PORT, FLOW_PIN_NUM,
(IOCON_FUNC0 | IOCON_MODE_PULLUP));
Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, FLOW_PIN_PORT, FLOW_PIN_NUM);

// Map pin to interrupt channel (channel 0)
Chip_INMUX_PinIntSel(0, FLOW_PIN_PORT, FLOW_PIN_NUM);

// Configure falling-edge interrupt
Chip_PININT_ClearIntStatus(LPC_PININT, FLOW_CH);
Chip_PININT_SetPinModeEdge(LPC_PININT, FLOW_CH);
Chip_PININT_EnableIntLow(LPC_PININT, FLOW_CH);

// Enable NVIC for PIN_INT0
NVIC_ClearPendingIRQ(FLOW_IRQ_NUM);
NVIC_EnableIRQ(FLOW_IRQ_NUM);

while (1) {
uint32_t start_count = pulse_count;

// crude 1 second delay loop
for (volatile uint32_t i = 0; i < (SystemCoreClock/1000 * 1000); i++);

uint32_t pulses_per_sec = pulse_count - start_count;
float flow_rate = (float)pulses_per_sec / 7.5f; // L/min (depends on sensor spec!)

printf("Flow Rate: %.2f L/min, Total pulses: %lu\n",
flow_rate, pulse_count);
}
}

0 件の賞賛
返信

1,435件の閲覧回数
Pablo_Ramos
NXP Employee
NXP Employee

Hi @Trups_123,

How are you generating the pulses that are applied to P1_8?

Also, could you please share a snippet of your code where you set up pin P1_8 as an external interrupt?

Best Regards,
Pablo

0 件の賞賛
返信

1,419件の閲覧回数
Trups_123
Contributor I
#define FLOW_PIN_PORT 1
#define FLOW_PIN_NUM 8
#define FLOW_IRQ_NUM PIN_INT0_IRQn // Example: use PIN_INT0
#define FLOW_CH PININTCH0

volatile uint32_t pulse_count = 0;

/* Interrupt Service Routine for flow sensor */
void PIN_INT0_IRQHandler(void) {
pulse_count++; // Count pulses
Chip_PININT_ClearFallStates(LPC_PININT, FLOW_CH);
}

int main(void) {
SystemCoreClockUpdate();

// Initialize GPIO
Chip_GPIO_Init(LPC_GPIO_PORT);
Chip_IOCON_PinMuxSet(LPC_IOCON, FLOW_PIN_PORT, FLOW_PIN_NUM,
(IOCON_FUNC0 | IOCON_MODE_PULLUP));
Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, FLOW_PIN_PORT, FLOW_PIN_NUM);

// Map pin to interrupt channel
Chip_INMUX_PinIntSel(0, FLOW_PIN_PORT, FLOW_PIN_NUM);

// Configure falling-edge interrupt
Chip_PININT_ClearIntStatus(LPC_PININT, FLOW_CH);
Chip_PININT_SetPinModeEdge(LPC_PININT, FLOW_CH);
Chip_PININT_EnableIntLow(LPC_PININT, FLOW_CH);

// Enable NVIC
NVIC_ClearPendingIRQ(FLOW_IRQ_NUM);
NVIC_EnableIRQ(FLOW_IRQ_NUM);

while(1) {
// Example: measure flow every 1 second
uint32_t start_count = pulse_count;
Chip_Clock_System_BusyWait_ms(1000);
uint32_t pulses_per_sec = pulse_count - start_count;

float flow_rate = (float)pulses_per_sec / 7.5f; // L/min
printf("Flow Rate: %.2f L/min, Total pulses: %lu\n", flow_rate, pulse_count);
}
0 件の賞賛
返信

1,367件の閲覧回数
Trups_123
Contributor I

waiting for solution

0 件の賞賛
返信

1,346件の閲覧回数
Pablo_Ramos
NXP Employee
NXP Employee

Hi @Trups_123,

I apologize for taking a while to get back to you.

I wasn't able to follow the entire configuration because I couldn't find the definition for LPC_GPIO_PORT. However, I recommend checking the periph_pinint example, which configures a pin interrupt triggered by a falling edge.

You can find this example in MCUXpresso by following these steps:

Quickstart Panel -> Create or import project -> Import project(s) from file system.

Pablo_Ramos_0-1756503468961.png

Project archive (zip) -> Browse -> LPCOpen -> lpcxpresso_1549

Pablo_Ramos_1-1756503511164.png

Select lpc_board_nxp_lpcxpresso_1549, lpc_chip_15xx and periph_pint

Pablo_Ramos_2-1756503530328.png

Best Regards,
Pablo

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2155253%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELPC1519%20%E3%81%AE%E5%A4%96%E9%83%A8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%85%A5%E5%8A%9B%E3%81%A7%20PIO1_8%20%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2155253%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%A7%81%E3%81%AF%20LPC1519%20(Arm%20Cortex-M3)%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%83%9D%E3%83%BC%E3%83%88%201%E3%80%81%E3%83%94%E3%83%B3%208%20(PIO1_8)%20%E3%82%92%E6%B0%B4%E9%81%93%E6%B5%81%E9%87%8F%E3%82%BB%E3%83%B3%E3%82%B5%E3%81%AE%E5%A4%96%E9%83%A8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%85%A5%E5%8A%9B%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EPIO1_8%20%E3%82%92%20GPIO%20%E5%85%A5%E5%8A%9B%E3%81%A8%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%97%E3%80%81INMUX%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20PININT%20%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%AB%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%97%E3%80%81%E7%AB%8B%E3%81%A1%E4%B8%8B%E3%81%8C%E3%82%8A%E3%82%A8%E3%83%83%E3%82%B8%E6%A4%9C%E5%87%BA%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%A6%20IRQ%20%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81P1_8%20%E3%81%AB%E3%83%91%E3%83%AB%E3%82%B9%E3%81%8C%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%82%82%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AF%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2160884%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Why%20is%20PIO1_8%20not%20working%20for%20external%20interrupt%20input%20on%20LPC1519%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2160884%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F222924%22%20target%3D%22_blank%22%3E%40Trups_123%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E8%BF%94%E4%BF%A1%E3%81%BE%E3%81%A7%E3%81%AB%E6%99%82%E9%96%93%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E7%94%B3%E3%81%97%E8%A8%B3%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%0A%3CP%3ELPC_GPIO_PORT%20%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%9F%E3%82%81%E3%80%81%E6%A7%8B%E6%88%90%E5%85%A8%E4%BD%93%E3%82%92%E8%BF%BD%E8%B7%A1%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E7%AB%8B%E3%81%A1%E4%B8%8B%E3%81%8C%E3%82%8A%E3%82%A8%E3%83%83%E3%82%B8%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%95%E3%82%8C%E3%82%8B%E3%83%94%E3%83%B3%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%20periph_pinint%20%E3%81%AE%E4%BE%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E3%81%8A%E5%8B%A7%E3%82%81%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%93%E3%81%AE%E4%BE%8B%E3%81%AF%E3%80%81%E6%AC%A1%E3%81%AE%E6%89%8B%E9%A0%86%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6%20MCUXpresso%20%E3%81%A7%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8BCAN%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%20%E3%83%91%E3%83%8D%E3%83%AB%20-%26gt%3B%20%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%20-%26gt%3B%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%20%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%8B%E3%82%89%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Pablo_Ramos_0-1756503468961.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Pablo_Ramos_0-1756503468961.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F354860i5A21DDBF6DDDB632%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Pablo_Ramos_0-1756503468961.png%22%20alt%3D%22Pablo_Ramos_0-1756503468961.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96%20(zip)%20-%26gt%3B%20%E5%8F%82%E7%85%A7%20-%26gt%3B%20LPCOpen%20-%26gt%3B%20lpcxpresso_1549%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Pablo_Ramos_1-1756503511164.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Pablo_Ramos_1-1756503511164.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F354861i02562A5186CE9457%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Pablo_Ramos_1-1756503511164.png%22%20alt%3D%22Pablo_Ramos_1-1756503511164.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3Elpc_board_nxp_lpcxpresso_1549%E3%80%81lpc_chip_15xx%E3%80%81periph_pint%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Pablo_Ramos_2-1756503530328.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Pablo_Ramos_2-1756503530328.png%22%20style%3D%22width%3A%20257px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F354862i966DFF200D5F074A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Pablo_Ramos_2-1756503530328.png%22%20alt%3D%22Pablo_Ramos_2-1756503530328.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%83%91%E3%83%96%E3%83%AD%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2159927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Why%20is%20PIO1_8%20not%20working%20for%20external%20interrupt%20input%20on%20LPC1519%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2159927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%A7%A3%E6%B1%BA%E3%82%92%E5%BE%85%E3%81%A4%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2155765%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Why%20is%20PIO1_8%20not%20working%20for%20external%20interrupt%20input%20on%20LPC1519%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2155765%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%23include%20%22chip.h%22%3CBR%20%2F%3E%23include%20%3CSTDIO.H%3E%3C%2FSTDIO.H%3E%3C%2FP%3E%3CP%3E%23FLOW_PIN_PORT%201%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%99%E3%82%8B%3CBR%20%2F%3E%23define%20FLOW_PIN_NUM%208%3CBR%20%2F%3E%20%23define%20FLOW_IRQ_NUM%20PIN_INT0_IRQn%20%2F%2F%20PININT0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%3CBR%20%2F%3E%23define%20FLOW_CH%20PININTCH0%3C%2FP%3E%3CP%3E%E6%8F%AE%E7%99%BA%E6%80%A7%20uint32_t%20pulse_count%20%3D%200%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%83%95%E3%83%AD%E3%83%BC%E3%82%BB%E3%83%B3%E3%82%B5%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%20*%2F%3CBR%20%2F%3E%20void%20PIN_INT0_IRQHandler(void)%20%7B%3CBR%20%2F%3E%20if%20(Chip_PININT_GetFallStates(LPC_PININT)%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%20FLOW_CH))%20%7B%3CBR%20%2F%3E%20pulse_count%2B%2B%3B%20%2F%2F%20%E3%83%91%E3%83%AB%E3%82%B9%E3%82%92%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_PININT_ClearIntStatus(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3Eint%20main(void)%20%7B%3CBR%20%2F%3E%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%B3%E3%82%A2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E6%9B%B4%E6%96%B0()%3B%3C%2FP%3E%3CP%3E%2F%2F%20GPIO%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_GPIO_Init(LPC_GPIO_PORT)%3B%3CBR%20%2F%3E%20Chip_IOCON_PinMuxSet(LPC_IOCON%E3%80%81FLOW_PIN_PORT%E3%80%81FLOW_PIN_NUM%E3%80%81%3CBR%20%2F%3E%20(IOCON_FUNC0%20%7C%20IOCON_MODE_PULLUP))%3B%3CBR%20%2F%3E%20Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT%E3%80%81FLOW_PIN_PORT%E3%80%81FLOW_PIN_NUM)%3B%3C%2FP%3E%3CP%3E%2F%2F%20%E3%83%94%E3%83%B3%E3%82%92%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%EF%BC%88%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%200%EF%BC%89%E3%81%AB%E3%83%9E%E3%83%83%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3EChip_INMUX_PinIntSel(0%2C%20FLOW_PIN_PORT%2C%20FLOW_PIN_NUM)%3B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%AB%8B%E3%81%A1%E4%B8%8B%E3%81%8C%E3%82%8A%E3%82%A8%E3%83%83%E3%82%B8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_PININT_ClearIntStatus(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20Chip_PININT_SetPinModeEdge(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20Chip_PININT_EnableIntLow(LPC_PININT%E3%80%81FLOW_CH)%3B%3C%2FP%3E%3CP%3E%2F%2F%20PIN_INT0%E3%81%AENVIC%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3ENVIC_ClearPendingIRQ(FLOW_IRQ_NUM)%3B%3CBR%20%2F%3E%20NVIC_EnableIRQ(FLOW_IRQ_NUM)%3B%3C%2FP%3E%3CP%3E(1)%20%7B%3CBR%20%2F%3E%20uint32_t%20%E9%96%8B%E5%A7%8B%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%20%3D%20%E3%83%91%E3%83%AB%E3%82%B9%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%3B%3C%2FP%3E%3CP%3E%2F%2F%20%E7%B2%97%E3%81%841%E7%A7%92%E9%81%85%E5%BB%B6%E3%83%AB%E3%83%BC%E3%83%97%3CBR%20%2F%3E(%E6%8F%AE%E7%99%BA%E6%80%A7%20uint32_t%20i%20%3D%200%3B%20i%20%26lt%3B%20(SystemCoreClock%2F1000%20*%201000)%3B%20i%2B%2B)%3B%3C%2FP%3E%3CP%3Euint32_t%20pulses_per_sec%20%3D%20pulse_count%20-%20start_count%3B%3CBR%20%2F%3E%20float%20flow_rate%20%3D%20(float)pulses_per_sec%20%2F%207.5f%3B%20%2F%2F%20L%2Fmin%20(%E3%82%BB%E3%83%B3%E3%82%B5%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E7%95%B0%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99!)%3C%2FP%3E%3CP%3Eprintf(%22%E6%B5%81%E9%87%8F%3A%20%25.2f%20L%2F%E5%88%86%E3%80%81%E7%B7%8F%E3%83%91%E3%83%AB%E3%82%B9%E6%95%B0%3A%20%25lu%5Cn%22%2C%3CBR%20%2F%3E%E6%B5%81%E9%87%8F%E3%80%81%E3%83%91%E3%83%AB%E3%82%B9%E6%95%B0)%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2155762%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Why%20is%20PIO1_8%20not%20working%20for%20external%20interrupt%20input%20on%20LPC1519%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2155762%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%23define%20FLOW_PIN_PORT%201%3CBR%20%2F%3E%23define%20FLOW_PIN_NUM%208%3CBR%20%2F%3E%23define%20FLOW_IRQ_NUM%20PIN_INT0_IRQn%20%2F%2F%20%E4%BE%8B%3A%20PIN_INT0%20%E3%82%92%E4%BD%BF%E7%94%A8%3CBR%20%2F%3E%23define%20FLOW_CH%20PININTCH0%3CBR%20%2F%3E%3CBR%20%2F%3Evolatile%20uint32_t%20pulse_count%20%3D%200%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E3%83%95%E3%83%AD%E3%83%BC%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%20*%2F%3CBR%20%2F%3E%20void%20PIN_INT0_IRQHandler(void)%20%7B%3CBR%20%2F%3E%20pulse_count%2B%2B%3B%20%2F%2F%20%E3%83%91%E3%83%AB%E3%82%B9%E3%82%92%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_PININT_ClearFallStates(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%20int%20main(void)%20%7B%3CBR%20%2F%3ESystemCoreClockUpdate()%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F%2F%20GPIO%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_GPIO_Init(LPC_GPIO_PORT)%3B%3CBR%20%2F%3E%20Chip_IOCON_PinMuxSet(LPC_IOCON%E3%80%81FLOW_PIN_PORT%E3%80%81FLOW_PIN_NUM%E3%80%81%3CBR%20%2F%3E%20(IOCON_FUNC0%20%7C%20IOCON_MODE_PULLUP))%3B%3CBR%20%2F%3E%20Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT%E3%80%81FLOW_PIN_PORT%E3%80%81FLOW_PIN_NUM)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F%2F%20%E3%83%94%E3%83%B3%E3%82%92%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%81%AB%E3%83%9E%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_INMUX_PinIntSel(0%2C%20FLOW_PIN_PORT%2C%20FLOW_PIN_NUM)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F%2F%20%E7%AB%8B%E3%81%A1%E4%B8%8B%E3%81%8C%E3%82%8A%E3%82%A8%E3%83%83%E3%82%B8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%3CBR%20%2F%3EChip_PININT_ClearIntStatus(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20Chip_PININT_SetPinModeEdge(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%20Chip_PININT_EnableIntLow(LPC_PININT%E3%80%81FLOW_CH)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F%2F%20NVIC%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3ENVIC_ClearPendingIRQ(FLOW_IRQ_NUM)%3B%3CBR%20%2F%3E%20NVIC_EnableIRQ(FLOW_IRQ_NUM)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20while(1)%20%7B%3CBR%20%2F%3E%20%2F%2F%20%E4%BE%8B%3A%201%E7%A7%92%E3%81%94%E3%81%A8%E3%81%AB%E3%83%95%E3%83%AD%E3%83%BC%E6%B8%AC%E5%AE%9A%3CBR%20%2F%3Euint32_t%20start_count%20%3D%20pulse_count%3B%3CBR%20%2F%3EChip_Clock_System_BusyWait_ms(1000)%3B%3CBR%20%2F%3E%20uint32_t%20pulses_per_sec%20%3D%20pulse_count%20-%20start_count%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20float%20flow_rate%20%3D%20(float)pulses_per_sec%20%2F%207.5f%3B%20%2F%2F%20L%2F%E5%88%86%3CBR%20%2F%3Eprintf(%22%E6%B5%81%E9%87%8F%3A%20%25.2f%20L%2F%E5%88%86%E3%80%81%E5%90%88%E8%A8%88%E3%83%91%E3%83%AB%E3%82%B9%3A%20%25lu%5Cn%22%2C%20flow_rate%2C%20pulse_count)%3B%3CBR%20%2F%3E%20%7D%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2155440%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Why%20is%20PIO1_8%20not%20working%20for%20external%20interrupt%20input%20on%20LPC1519%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2155440%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F222924%22%20target%3D%22_blank%22%3E%40Trups_123%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3EP1_8%20%E3%81%AB%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E3%83%91%E3%83%AB%E3%82%B9%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E7%94%9F%E6%88%90%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%83%94%E3%83%B3%20P1_8%20%E3%82%92%E5%A4%96%E9%83%A8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%A8%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%80%E9%83%A8%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%83%91%E3%83%96%E3%83%AD%3C%2FP%3E%3C%2FLINGO-BODY%3E