0
smile

Orange pi One, interrupts gpio problem

Recommended Posts

Hi, my environment is:

Orange Pi One

ARMBIAN 5.34.171031 nightly Ubuntu 16.04.3 LTS 4.11.12-sun8i

WiringPi fork by WereCatf:

git clone https://github.com/WereCatf/WiringOP.git -b h3

./build

 

small c++ programm:

 

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <pthread.h>


static volatile int globalCounter;

void myInterrupt(void) {
    ++globalCounter;
    printf("InterruptCounter: %5d\n", globalCounter);
    //digitalRead(7);
}

int main(void)
{
    if (wiringPiSetup() == -1) {
        printf("wiringPiSetup Error\n");
    }
    pinMode(7, INPUT);
    pullUpDnControl(7, PUD_UP);
    if (wiringPiISR(7, INT_EDGE_FALLING, &myInterrupt) < 0)
    {
        fprintf(stderr, "Unable to setup ISR: %s\n", strerror(errno));
        return 1;
    }
    for (;;)
    {
    //main programm code here...
    }
    return 0;
}
 

 

Compile:

gcc ./isr.c -o wg-daemon.out -lwiringPi -lwiringPiDev -lpthread -lm

 

and run it...

 

but when I put pin 7 in down state (gpio mode 7 down) ISR function begin fires (triggers) continuously (((((((

Here is output :

 

InterruptCounter: 132371
InterruptCounter: 132372
InterruptCounter: 132373
InterruptCounter: 132374
InterruptCounter: 132375
InterruptCounter: 132376
InterruptCounter: 132377
InterruptCounter: 132378
InterruptCounter: 132379
InterruptCounter: 132380
InterruptCounter: 132381
^C
root@orangepione:~/example#
 

 

but, when I add to ISR function 

"digitalRead(7);"

program works fine (((

 

 

 

Please tell me, what I do wrong

 

 

Share this post


Link to post
Share on other sites

Anyone()

 

I just test this code with Raspberry Pi 3 and Wiring Pi library, all works perfect()

But on orange pi one still this problem(

Share this post


Link to post
Share on other sites

I am observing the exact same behavior with the Orange Pi PC:

 

Hi, my environment is:

Orange Pi PC

BOARD=orangepipc
BOARD_NAME="Orange Pi PC"
BOARDFAMILY=sun8i
VERSION=5.38
LINUXFAMILY=sunxi
BRANCH=next
ARCH=arm
IMAGE_TYPE=stable
BOARD_TYPE=conf
INITRD_ARCH=arm
KERNEL_IMAGE_TYPE=zImage

 

WiringPi fork by WereCatf:

 

Do you have any newer information/insights on that matter?

 

Anayway, does calling digitalRead() in the interrupt-routine cause any problems? If not, this work around is acceptable for me. Thanks for the hint. :-)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
0