• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Зависания при включении прерывания (ESP8266 interrupts)

alexsmd

New member
Здравствуйте, разбираю пример из UDK проект gpio16_led
Адаптирую проект для диммирования лампочки.

Схема отсюда ESP8266 Projects: P3 - WIFI Mains Power Dimmer / Switch with CBDBv2

Код:
Код:
#include "ets_sys.h"
#include "osapi.h"
#include "os_type.h"
#include "user_interface.h"
#include "driver/uart.h"
#include "driver/gpio16.h"

extern int ets_uart_printf(const char *fmt, ...);
int (*console_printf)(const char *fmt, ...) = ets_uart_printf;
extern uint8_t pin_num[GPIO_PIN_NUM];

#define GPIO_ZERO_PIN 1 // GPIO5
#define GPIO_LAMP_PIN 2 // GPIO4

#define USE_US_TIMER
#define LAMP_GPIO_DELAY 20 // microseconds

const char *gpio_type_desc[] =
{
        "GPIO_PIN_INTR_DISABLE (DISABLE INTERRUPT)",
        "GPIO_PIN_INTR_POSEDGE (UP)",
        "GPIO_PIN_INTR_NEGEDGE (DOWN)",
        "GPIO_PIN_INTR_ANYEDGE (BOTH)",
        "GPIO_PIN_INTR_LOLEVEL (LOW LEVEL)",
        "GPIO_PIN_INTR_HILEVEL (HIGH LEVEL)"
};

LOCAL os_timer_t lamp_timer;

void lamp_timer_cb (void *arg){
    gpio_write(GPIO_LAMP_PIN, 0);
}

void ICACHE_FLASH_ATTR intr_callback(unsigned pin, unsigned level) {
    gpio_write(GPIO_LAMP_PIN, 1);
    os_timer_disarm(&lamp_timer);
    os_timer_setfn(&lamp_timer, (os_timer_func_t *)lamp_timer_cb, (void *)0);
    ets_timer_arm_new(&lamp_timer, LAMP_GPIO_DELAY, 0, 0);
}

void init_done(void)
{
    GPIO_INT_TYPE gpio_type;

    // Set Wifi softap mode
    wifi_station_disconnect();
    wifi_station_set_auto_connect(0);
    wifi_set_opmode(SOFTAP_MODE);

    if (set_gpio_mode(GPIO_LAMP_PIN, GPIO_PULLDOWN, GPIO_OUTPUT)) {
            console_printf("GPIO%d set GPIO_OUTPUT mode\r\n", pin_num[GPIO_LAMP_PIN]);
        } else {
            console_printf("Error: GPIO%d not set GPIO_OUTPUT mode\r\n", pin_num[GPIO_LAMP_PIN]);
    }

    gpio_write(GPIO_LAMP_PIN, 0);
    gpio_type = GPIO_PIN_INTR_POSEDGE;

    if (set_gpio_mode(GPIO_ZERO_PIN, GPIO_PULLUP, GPIO_INT)) {
        console_printf("GPIO%d set interrupt mode\r\n", pin_num[GPIO_ZERO_PIN]);
        if (gpio_intr_init(GPIO_ZERO_PIN, gpio_type)) {
            console_printf("GPIO%d enable %s mode\r\n", pin_num[GPIO_ZERO_PIN], gpio_type_desc[gpio_type]);
            gpio_intr_attach(intr_callback);
        } else {
            console_printf("Error: GPIO%d not enable %s mode\r\n", pin_num[GPIO_ZERO_PIN], gpio_type_desc[gpio_type]);
        }
    } else {
        console_printf("Error: GPIO%d not set interrupt mode\r\n", pin_num[GPIO_ZERO_PIN]);
    }
}

void user_rf_pre_init(void){}
void user_init(void) {

    system_timer_reinit();
    system_init_done_cb(init_done);

}
Проблемы:
1) зависает при попытке запустить прерывания, потом WDT сбрасывает, и так пока не заработает норлмально, в среднем и 5 попыток включается нормально 1 раз.
вывод UART
[off]
Код:
ets Jan  8 2013,rst cause:2, boot mode:(
ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x40100000, len 26668, room 16
tail 12
chksum 0x25
ho 0 tail 12 room 4
load 0x3ffe8000, len 996, room 12
tail 8
chksum 0x63
load 0x3ffe83e8, len 668, room 0
tail 12
chksum 0x43
csum 0x43

SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP)¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) mod¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) ¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_P¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPI¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 ena¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode [B]// в этом моменте зависает[/B]
¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode[B] // в этом моменте зависает[/B]
¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
G¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) mode [B]// сдесь код сработал корректно[/B]
[/off]
2) Когда все таки заработало нормально, Периодически лампа начинает моргать, вызвано тем что проц не посылает почему-то сигнал о включении лампочки.

Данные осциллографа - P_20160701_150728.jpg (пс. не вставляется картинка)\
Видео - V_20160701_152528.mp4
видно как моргает в начале и в конце

3) Подскажите как мне передать параметр в колбек таймера, пытался не получилось, чтобы сделать один колбек для 2 таймеров с параметром включения или выключения, вместо 2х функций как сейчас. Спасибо!
 

nikolz

Well-known member
Здравствуйте, разбираю пример из UDK проект gpio16_led
Адаптирую проект для диммирования лампочки.

Схема отсюда ESP8266 Projects: P3 - WIFI Mains Power Dimmer / Switch with CBDBv2

Код:
Код:
#include "ets_sys.h"
#include "osapi.h"
#include "os_type.h"
#include "user_interface.h"
#include "driver/uart.h"
#include "driver/gpio16.h"

extern int ets_uart_printf(const char *fmt, ...);
int (*console_printf)(const char *fmt, ...) = ets_uart_printf;
extern uint8_t pin_num[GPIO_PIN_NUM];

#define GPIO_ZERO_PIN 1 // GPIO5
#define GPIO_LAMP_PIN 2 // GPIO4

#define USE_US_TIMER
#define LAMP_GPIO_DELAY 20 // microseconds

const char *gpio_type_desc[] =
{
        "GPIO_PIN_INTR_DISABLE (DISABLE INTERRUPT)",
        "GPIO_PIN_INTR_POSEDGE (UP)",
        "GPIO_PIN_INTR_NEGEDGE (DOWN)",
        "GPIO_PIN_INTR_ANYEDGE (BOTH)",
        "GPIO_PIN_INTR_LOLEVEL (LOW LEVEL)",
        "GPIO_PIN_INTR_HILEVEL (HIGH LEVEL)"
};

LOCAL os_timer_t lamp_timer;

void lamp_timer_cb (void *arg){
    gpio_write(GPIO_LAMP_PIN, 0);
}

void ICACHE_FLASH_ATTR intr_callback(unsigned pin, unsigned level) {
    gpio_write(GPIO_LAMP_PIN, 1);
    os_timer_disarm(&lamp_timer);
    os_timer_setfn(&lamp_timer, (os_timer_func_t *)lamp_timer_cb, (void *)0);
    ets_timer_arm_new(&lamp_timer, LAMP_GPIO_DELAY, 0, 0);
}

void init_done(void)
{
    GPIO_INT_TYPE gpio_type;

    // Set Wifi softap mode
    wifi_station_disconnect();
    wifi_station_set_auto_connect(0);
    wifi_set_opmode(SOFTAP_MODE);

    if (set_gpio_mode(GPIO_LAMP_PIN, GPIO_PULLDOWN, GPIO_OUTPUT)) {
            console_printf("GPIO%d set GPIO_OUTPUT mode\r\n", pin_num[GPIO_LAMP_PIN]);
        } else {
            console_printf("Error: GPIO%d not set GPIO_OUTPUT mode\r\n", pin_num[GPIO_LAMP_PIN]);
    }

    gpio_write(GPIO_LAMP_PIN, 0);
    gpio_type = GPIO_PIN_INTR_POSEDGE;

    if (set_gpio_mode(GPIO_ZERO_PIN, GPIO_PULLUP, GPIO_INT)) {
        console_printf("GPIO%d set interrupt mode\r\n", pin_num[GPIO_ZERO_PIN]);
        if (gpio_intr_init(GPIO_ZERO_PIN, gpio_type)) {
            console_printf("GPIO%d enable %s mode\r\n", pin_num[GPIO_ZERO_PIN], gpio_type_desc[gpio_type]);
            gpio_intr_attach(intr_callback);
        } else {
            console_printf("Error: GPIO%d not enable %s mode\r\n", pin_num[GPIO_ZERO_PIN], gpio_type_desc[gpio_type]);
        }
    } else {
        console_printf("Error: GPIO%d not set interrupt mode\r\n", pin_num[GPIO_ZERO_PIN]);
    }
}

void user_rf_pre_init(void){}
void user_init(void) {

    system_timer_reinit();
    system_init_done_cb(init_done);

}
Проблемы:
1) зависает при попытке запустить прерывания, потом WDT сбрасывает, и так пока не заработает норлмально, в среднем и 5 попыток включается нормально 1 раз.
вывод UART
[off]
Код:
ets Jan  8 2013,rst cause:2, boot mode:(
ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x40100000, len 26668, room 16
tail 12
chksum 0x25
ho 0 tail 12 room 4
load 0x3ffe8000, len 996, room 12
tail 8
chksum 0x63
load 0x3ffe83e8, len 668, room 0
tail 12
chksum 0x43
csum 0x43

SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP)¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) mod¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) ¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_P¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPI¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 ena¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode [B]// в этом моменте зависает[/B]
¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode[B] // в этом моменте зависает[/B]
¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
G¢@*r…ÄP±µ±Kít¥dr×.@éù.©Ñª¡Ko8a /tµ$v'áêÉ*±T±±±©©ÄP«¯±@íù*±…¢ünzA¬‰8xºvA,P%!ù(¡‡(A¬¡{~An êÉ*±R·*±±@j|±C©µù*±¢ünzAl )ém~±T[!ù(P±+tÇmX@j|½Å*µù*±‰ønzA¬‰8xºvA,T[ár§(±Õ¢ü
SDK ver: 1.5.0 compiled @ Nov 27 2015 13:37:51
phy ver: 484, pp ver: 9.5

mode : softAP(1a:fe:34:a1:4a:1a)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
GPIO4 set GPIO_OUTPUT mode
GPIO5 set interrupt mode
GPIO5 enable GPIO_PIN_INTR_POSEDGE (UP) mode [B]// сдесь код сработал корректно[/B]
[/off]
2) Когда все таки заработало нормально, Периодически лампа начинает моргать, вызвано тем что проц не посылает почему-то сигнал о включении лампочки.

Данные осциллографа - P_20160701_150728.jpg (пс. не вставляется картинка)\
Видео - V_20160701_152528.mp4
видно как моргает в начале и в конце

3) Подскажите как мне передать параметр в колбек таймера, пытался не получилось, чтобы сделать один колбек для 2 таймеров с параметром включения или выключения, вместо 2х функций как сейчас. Спасибо!
объявите переменную как глоальную, т е напишите ее вне функции колбека и записывайте в нее значение. Кроме того, создайте переменную -флаг и пишите в нее команду (признак) по этому признаку делайте ветвление в колбеке.
 
Сверху Снизу