bosko lekovic
/
IO_board_K22
K22 processor
Diff: main.cpp
- Revision:
- 13:7c4ec32f6a54
- Parent:
- 10:5de7b6e77c4a
- Child:
- 14:b63e4664e2a8
--- a/main.cpp Sat Apr 24 17:41:16 2021 +0200 +++ b/main.cpp Sat Apr 24 18:48:38 2021 +0200 @@ -29,7 +29,7 @@ DigitalOut ioTest(IO_TEST,0); -DigitalOut testPin(PTE24, 0 ); + char verzija = 5; @@ -60,9 +60,8 @@ Ticker test_RasaLed; DigitalOut RasaLed(PTE0,1); -long t; int tz; -int v1, v2, v3, v4,v5,v6,f=0; -int time_delay = 0, time_flag=0; + int tz; + int main() { @@ -79,20 +78,24 @@ /* postavljanje funkcija za komande i indikaciju sinhrono sa zero crossing-om */ - + static int block_delay = 0; + + // uzlazni prolaz kroz nulu - izvrsenje komande c_zeroCrossing.set_ontimeONfun( []() { // testPin =! testPin; - rc_zc.set_portOut( c_data.get_command() );// - if( c_data.get_newcommand_flag() == true) { time_delay = 1; t = (long)Kernel::get_ms_count(); }// vreme = time_delay * 20ms - else if(time_delay) { time_delay--; if( time_delay == 0 ) time_flag = 1; } + rc_zc.set_portOut( c_data.get_command() ); // upis komande na port + if( c_data.get_newcommand_flag() == true) { block_delay = 1; } // blokirati citanje indikacija posle novodobijene komande + else if(block_delay) { block_delay--; } else { c_data.set_messagge(); c_data.set_realIndication();} } ); c_zeroCrossing.set_ontimeOFFfun( [](){ } ); - c_zeroCrossing.set_postponeONfun( []() // minimum mreze - rad sa indikacijama ispravnosti sijalica + + // minimum mreze - rad sa indikacijama ispravnosti sijalica + c_zeroCrossing.set_postponeONfun( []() { - if(time_delay == 0 && (c_data.check_newcommand_flag()== false) ) + if(block_delay == 0 && (c_data.check_newcommand_flag()== false) ) { char p1 = rc_zc.get_portInMin(); // dva ocitavanja porta wait_us(10); @@ -103,40 +106,29 @@ c_data.set_corectness(); // proracun i upis ispravnosti sijalice c_data.set_realIndication(); // izracun aktuelne indikacije - spremna za slanje na LEDove - // ledB =!ledB; - // static int i=0; - // if(i++ > 100) { i = 0; f = 1; - // v1 = c_data.pMin; - // v2 = c_data.get_command(); - // v3 = c_data.get_indication(); - // } + } else c_data.clear_pMin(); } ); - c_zeroCrossing.set_postponeOFFfun( []() // maximum mreze - rad sa neispravnim naponom - misem + + +// maximum mreze - rad sa neispravnim naponom - misem + c_zeroCrossing.set_postponeOFFfun( []() { static int i=0, j=0; - if(time_delay == 0 && (c_data.check_newcommand_flag()== false)) + if(block_delay == 0 && (c_data.check_newcommand_flag()== false)) { ledB =!ledB; char p1 = rc_zc.get_portInMax(); // dva ocitavanja porta wait_us(10); char p2 = rc_zc.get_portInMax(); p1 |= p2; - v1 = c_data.set_pMax( v4 = p1 ); // upis vrednosti maksimuma mreze - c_data.set_faultVoltage(); // izracun i upis napona misa - v2 = c_data.get_command(); - v3 = c_data.get_faultVoltage(); + c_data.set_pMax( p1 ); // upis vrednosti maksimuma mreze + c_data.set_faultVoltage(); // izracun i upis napona misa + - if(time_flag) - { -testPin =! testPin; - f = 1; time_flag--; - v1 = c_data.pMax; - v6 = (long)Kernel::get_ms_count()-t; - } - } + } else c_data.clear_pMax(); } ); @@ -163,12 +155,6 @@ while (true) { -/* if(f==1) - { - f=0; - printf( "det = %x %x %x %x %d vreme = %d %d\n\r", v1, v2, v3, v4, v5, v6, t); - } - */ if( b!= b2) {