diff --git a/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.c b/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.c index 7ee58d9..80e1694 100644 --- a/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.c +++ b/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.c @@ -693,11 +693,13 @@ uint32_t millis(void) } */ +/* // Time count function; this function have to call by timer (1ms) void blynk_time_handler(void) { blynk_time_1ms++; } +*/ // Custom delay for checking timeout count uint8_t blynk_custom_delay(uint32_t delayms) @@ -771,3 +773,14 @@ void blynk_syncAll(void) { sendCmd(BLYNK_CMD_HARDWARE_SYNC, 0, NULL, 0, NULL, 0); } + +void blynk_push_pin(uint8_t pin) +{ + uint8_t rsp_mem[16]; + uint16_t rsp_len; + memset(rsp_mem, 0, sizeof(rsp_mem)); + rsp_len = SPRINTF((char *)rsp_mem, "dw %d %d", pin, digitalRead(pin)); + replacetonull(rsp_mem, ' '); + sendCmd(BLYNK_CMD_HARDWARE, 0, rsp_mem, rsp_len, NULL, 0); +} + diff --git a/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.h b/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.h index d90290e..eb796a5 100644 --- a/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.h +++ b/19_m1284p_WIZNET_blynk/Application/Blynk/blynk.h @@ -141,5 +141,7 @@ void blynk_run(void); uint8_t is_blynk_connection_available(void); void sendCmd(uint8_t cmd, uint16_t id, uint8_t * data, size_t length, uint8_t * data2, size_t length2); void blynk_syncAll(void); +void blynk_push_pin(uint8_t pin); #endif + diff --git a/19_m1284p_WIZNET_blynk/Application/Blynk/blynkDependency.c b/19_m1284p_WIZNET_blynk/Application/Blynk/blynkDependency.c index 5a6b843..cc01f10 100644 --- a/19_m1284p_WIZNET_blynk/Application/Blynk/blynkDependency.c +++ b/19_m1284p_WIZNET_blynk/Application/Blynk/blynkDependency.c @@ -25,6 +25,11 @@ uint8_t digitalRead(uint8_t pin) val = sw1_read()?0:!0; PRINTF("SW1 is: %d %s\r\n", val, val?"HIGH":"LOW"); } + else if(pin == 13) + { + val = led2_read()?1:0; + PRINTF("LED2 is: %d %s\r\n", val, val?"HIGH":"LOW"); + } else { val = 1; diff --git a/19_m1284p_WIZNET_blynk/globals.h b/19_m1284p_WIZNET_blynk/globals.h index dc36d85..597d217 100644 --- a/19_m1284p_WIZNET_blynk/globals.h +++ b/19_m1284p_WIZNET_blynk/globals.h @@ -16,6 +16,7 @@ #include "Ethernet/socket.h" #include "Ethernet/wizchip_conf.h" +//Shouldn't use here //******************************* Fat FS declare related: BEGIN /* #include "string.h" @@ -44,13 +45,20 @@ extern unsigned long millis(void); extern int freeRam (void); //M644P/M1284p Users LEDS: -//LED1/PORTC.4- m644p/m1284p maxxir +//LED1/PORTC.4/20 - m644p/m1284p maxxir brd #define led1_conf() DDRC |= (1< library - (Too old version here - 0.2.1 (On git blynk March 2019 - 0.6.x) ) * * (3) Trying WIZNET5500 init with using official Wiznet ioLibrary_Driver @@ -100,7 +101,7 @@ volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days //*********Program metrics const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции -const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.5 Static IP BLYNK WIZNET_5500 ETHERNET 14/03/2019\r\n"; // Program name +const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.6 Static IP BLYNK WIZNET_5500 ETHERNET 14/03/2019\r\n"; // Program name #if defined(__AVR_ATmega128__) const char PROGMEM str_mcu[] = "ATmega128"; //CPU is m128 @@ -382,42 +383,12 @@ void IO_LIBRARY_Init(void) { } //***************** WIZCHIP INIT: END -/* -void spi_speed_tst(void) -{ - // Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT - while(1) - { - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - SPI_WRITE(0xF0); - } -} -*/ + int main() { - //uint8_t prev_sw1 = 1; // VAR for sw1 pressing detect - // INIT MCU avr_init(); spi_init(); //SPI Master, MODE0, 4Mhz(DIV4), CS_PB.3=HIGH - suitable for WIZNET 5x00(1/2/5) - //spi_speed_tst(); / Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT (Witk SPI CLK 4Mhz) // Print program metrics @@ -499,6 +470,7 @@ int main() // Test for Ethernet data transfer validation uint32_t timer_tick_1sec = millis(); uint8_t blynk_restore_connection = 1; + uint8_t timer_led2_push_10sec = 0; while(1) { //Here at least every 1sec @@ -506,17 +478,7 @@ int main() // Blynk process handler blynk_run(); - //Use Hercules Terminal to check loopback tcp:5000 and udp:3000 - /* - * https://www.hw-group.com/software/hercules-setup-utility - * */ - //loopback_tcps(SOCK_TCPS,ethBuf0,PORT_TCPS); - //loopback_udps(SOCK_UDPS,ethBuf0,PORT_UDPS); - - //loopback_ret = loopback_tcpc(SOCK_TCPS, gDATABUF, destip, destport); - //if(loopback_ret < 0) printf("loopback ret: %ld\r\n", loopback_ret); // TCP Socket Error code - - //Here every 1sec + //Here every 1sec event if((millis()-timer_tick_1sec)> 1000) { //here every 1 sec @@ -532,6 +494,14 @@ int main() blynk_syncAll(); } } + //Every 10sec event for LED2 PIN13 + if(++timer_led2_push_10sec == 10) + { + timer_led2_push_10sec = 0; //Clear timer_led2.. + //Every 10sec toggle, and push LED2 PIN13/PD5 state to BLYNK server + led2_tgl(); + blynk_push_pin(13); + } } } return 0; @@ -589,6 +559,9 @@ static void avr_init(void) led1_conf(); led1_low();// LED1 is OFF + led2_conf(); + led2_low();//LED2 is OFF + sw1_conf();//SW1 internal pull-up