Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $regfile = "m128def.dat" ' specify the used micro
- $crystal = 12000000 ' used crystal frequenc8
- '$baud1 = 19200 ' use baud rate
- '$baud = 19200
- $hwstack = 128 ' default use 32 for the hardware stack
- $swstack = 128 ' default use 10 for the SW stack
- $framesize = 512
- $lib "modbus.lbx"
- $lib "glcdeadogm128x6.lbx"
- ''$prog &HFF , &H8E , &HC1 , &HFF ' generated. Take care that the chip supports all fuse bytes.
- ''Config Graphlcd = 128 * 64eadogm , Cs1 = Porta.4 , A0 = Porta.5 , Si = Porta.7 , Sclk = Porta.6 , Rst = Porta.3
- Config Com2 = 57600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 ', Clockpol = 0
- Open "com2:" For Binary As #2
- Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 ', Clockpol = 0
- Open "com1:" For Binary As #1
- On Urxc Urxc_isr
- Enable Urxc
- On Urxc1 Urxc_isr1
- Enable Urxc1
- 'Config Int4 = Rising 'preruseni od snimace otacek vyvevy
- 'On Int4 Int4_int
- 'Enable Int4
- $lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
- Config Scl = Portd.0 ' we need to provide the SCL pin name
- Config Sda = Portd.1 ' we need to provide the SDA pin name
- I2cinit
- Config Twi = 100000
- Declare Sub Init_pca9685
- Init_pca9685
- Declare Sub Send_pwm
- '(
- Config Timer0 = Timer , Prescale = 256
- On Timer0 Tim0_int
- Enable Timer0
- ')
- Tccr0 = &B10001_101 'nastaveni casovace do ctc rezimu / 128
- Ocr0 = 249 ''1 sekundd = 375 dilku (249 je korekce, protoze dilek je i nula a celkovy pocet je pak 250 taktu do sekundy
- Set Timsk.1
- On Oc0 Tim0_int
- 'KONFIGURACE DISPLEJE A TLACITEK
- Config Graphlcd = 128 * 64eadogm , Cs1 = Portc.7 , A0 = Portc.3 , Si = Portc.4 , Sclk = Portc.5 , Rst = Portc.6
- Tl_up Alias Pinc.0 : Config Portc.0 = Input : Set Portc.0
- Tl_down Alias Pinc.1 : Config Portc.1 = Input : Set Portc.1
- Tl_ok Alias Pinc.2 : Config Portc.2 = Input : Set Portc.2
- Glcdcmd &H23
- Glcdcmd &H81
- Glcdcmd 55
- Glcdcmd &H1C
- ''OTOCENI DISPLEJA
- Glcdcmd &B11001111
- Glcdcmd &B10100000
- Declare Sub Obsluha_tlacitek
- Declare Sub Tlacitka_menu1
- Declare Sub Read_inputs
- Declare Sub Send_outputs
- Declare Sub Sest_obr_spinacu
- Declare Sub Cls_
- Declare Sub Strana1
- Declare Sub Strana2
- Declare Sub Strana3
- Declare Sub Strana4
- Declare Sub Strana5
- Declare Sub Strana6
- Declare Sub Strana7
- Declare Sub Strana8
- Declare Sub Strana9
- Declare Sub Strana10
- Declare Sub Strana11
- Declare Sub Strana12
- Declare Sub Vypocet_cista
- Declare Sub Vypocet_kalova
- Declare Sub Prepocet_bytu(byval Bytebyte As Byte , Byval Prepocet_bytu_num As Byte)
- Declare Sub Prepocet_na_word(byval Word_poz As Word )
- Cls_
- Setfont Font8x8
- 'KONFIGURACE AD PREVODNIKU
- Config Adc = Single , Prescaler = Auto , Reference = Avcc
- 'Out17 Alias Porta.4 : Config Porta.4 = Output
- 'Out18 Alias Porta.5 : Config Porta.5 = Output
- 'Out19 Alias Porta.6 : Config Porta.6 = Output
- 'Out20 Alias Porta.7 : Config Porta.7 = Output
- 'Tlac1 Alias Pinf.0 : Config Pinf.2 = Input
- 'Tlac2 Alias Pinf.1 : Config Pinf.0 = Input
- 'Tlac3 Alias Pinf.2 : Config Pinf.1 = Input
- Out17 Alias Porta.4 : Config Porta.4 = Output
- Out18 Alias Porta.5 : Config Porta.5 = Output
- Out19 Alias Porta.6 : Config Porta.6 = Output
- Out20 Alias Porta.7 : Config Porta.7 = Output
- Dim Bit_time As Bit
- Dim Pombyte As Byte , I As Byte , Ii As Byte , Index As Byte
- Dim Tim1 As Word , Pomw1 As Single , Pomw2 As Single , Pomw3 As Single
- Dim Pomw4 As Word
- Dim Outp(20) As Word
- Dim Outp_old(20) As Word
- Dim Outb(20) As Integer ''out begin
- Dim Oute(20) As Integer ''out end
- Dim New_ee As Eram Byte
- Dim Outb_ee(20) As Eram Word
- Dim Oute_ee(20) As Eram Word
- Dim Pwm_out(20) As Word ''zakladni cislo pro rizeni vystupu - 255 urovni
- Dim Slave_tlac As Word
- Dim Xy(20) As Byte
- Dim Pocitadlo As Word
- Dim Ramp_on(20) As Word
- Dim Ramp_on_ee(20) As Eram Word
- Dim Ramp_off(20) As Word
- Dim Ramp_off_ee(20) As Eram Word
- Dim Pwm_driver(20) As Word
- Dim Pwm_krok(20) As Word , Pwm_out_integer(20) As Integer ,
- Dim Pwm_krok_prom(20) As Word
- ''Dim Pwm_timer_limit(20) As Word
- Dim Tim_ramp As Word
- Dim Index_ramp As Word
- Dim Ext_u As Bit
- Dim Thisslave As Word
- Dim Hadice_nastavena As Bit
- Dim Data_prijata_tlacitka As Bit
- Dim Vysilej_tlacitka As Bit
- Dim Prevodnik(8) As Word
- 'Dim Pwm_out_skut(20) As Word
- '' zakladni nastaveni promennych nez se nahraji nove hodnoty z EEPROM
- '' maximalni rozliseni vystupu je 4095 dilku
- '' definujeme vsak pocatecni uroven reakce vystupu a konecnou uroven reakce vystupu
- '' zbyvajici vnitrni oblast je aktivni cast pro rizeni proprcionaliho hydraulickeno ventilu
- '' avsak i definovany aktivni interval by mel byt vetsi nez 200, coz muzeme povazovat za dostatecne velkou stupnici pro rizeni ventilu.
- '' konecny interval pak je oute - outb
- Showpic 5 , 10 , Logostep
- Setfont Font8x8
- Lcdat 7 , 1 , "MAUS16 UFO"
- Lcdat 8 , 1 , "V.1.1. / 15.3.2016 "
- Waitms 500
- ''Cls_
- Declare Sub Modbus(byval Modbus_s As Byte , Byval Modbus_prikaz As Byte , Byval Modbus_adresa As Word , Byval Modbus_pocetbajtu As Word)
- '''M-LITE DEKLACE PROMENNYCH =-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-==-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=
- Dim Skupina As Byte , Slave As Byte , Master As Bit
- Dim Mbuf(120) As Byte , Modt As Byte , Crc As Word , Crc2 As Word , Index1 As Word , Index2 As Word , Index3 As Word
- Dim M(60) As Word
- Dim Pocet_wordu As Byte , Adresa_pameti As Byte , X As Byte
- Dim Space_time As Word , Vysilej As Bit
- Dim Buf_long As Byte
- Dim Data_prijata As Bit
- Skupina = 10 : Slave = 0 ''skupina a adresa slejva,
- If Slave = 0 Then
- Master = 1 ''pokud je slejv nenulovy, je master 0, jinak jsme master
- Else
- Master = 0
- End If
- Dim Index2_tl As Word , Crc_tl As Word , Crc2_tl As Word , X_tl As Byte
- Dim Modt_tl As Byte , Index_tl As Byte , Mbuf_tl(20) As Byte , Buf_long_tl As Byte , Nodata_time_tl As Word , Space_time_tl As Word
- Pocitadlo = 1
- ''Dim Ypom As Word , Xpom As Word , Yypom As Word , Xxpom As Word
- Dim Prikaz As String * 2 , Pipani As Word
- Dim Att As Byte , Pinh1_old As Byte
- Dim Pomword As Bit
- Dim Nodata_time As Word , Index_d As Word
- Dim Bufik As Byte
- Dim Adresa_pameti_tl As Byte
- '' dale je mozne definovat intervaly pro maximalni cas mezi koncem dotazu a zacatkem odpovedi, co ruzny timeout pro cteni a zapis
- Index = 0
- 'Flaga = 0
- '****************************************
- '****************************************
- Dim Tlacitko As Word , Osax As Word , Osay As Word
- '****************************************
- '****************************************
- Dim Tim_tl_up As Word , Tim_tl_down As Word , Tim_tl_ok As Word
- Dim Tl_up_old As Bit , Tl_down_old As Bit , Tl_ok_old As Bit , Uloz_data As Bit
- Dim Set_bit As Bit , Refresh_bit As Bit , Menu_bit As Bit , Set_pos As Byte , Menu_pos As Byte
- Dim S As String * 20 , Refresh_out As Bit , Strana As Byte
- Dim Vstup As Word , Tlac1_ As Bit , Tlac2_ As Bit , Tlac3_ As Bit
- Dim Ain(8) As Word , Pom_ain1(21) As Word , Pom_ain2(21) As Word , Pom_ain3(21) As Word , Pom_ain4(21) As Word , Pom_ain5(21) As Word , Pom_ain6(21) As Word , Pom_ain7(21) As Word , Pom_ain8(21) As Word
- Dim I1 As Byte , I2 As Byte , I3 As Byte , Pocet_vzorku As Byte , Ain_(8)as Long
- Dim Otacky_pozadovane As Word , Hadice As Word , Prutok As Word , Motor_stop As Bit , Motor_start As Bit , Otacky_realne As Word , Pom_single As Single
- Dim Vystupni_tlak_real As Word , Prutok_real As Word , Tlak_pozadovany As Word , Automat As Bit , Pom_rozdil As Word
- Dim Nuluj_irc_bit As Bit , Irc_step As Byte , Irc_sample As Byte
- Dim Irc_val_celk As Long , Delitel As Long , Prepocet As Long , Prepocet_str As String * 4 , Irc_val As Long , Smer As Bit , Posun As Bit
- Dim Irc_val_celk_2 As Long , Zmena As Bit , Testovaci_rezim As Bit
- Dim Hladina_kalove_vody_prac As Word , Hladina_vody_prac As Word
- Dim Vrstva_zmena As Word , Vrstva As Word , Vrstva_old As Word , Polomer As Single , Tloustka_hadice As Single
- Dim Odvinuto As Single , Buben_otacky As Single , Obvod As Single , Pocet_rad As Single , Obvod_konstant As Single , Vrstva_old1 As Word
- Dim Buben_otackyp10 As Long , Buben_otackym10 As Long , Zmena_vrstvy As Integer
- Dim Buben_word As Long , Odvinuto_celk As Single , Fn As Word , Buben_otacky_pro As Single , Vrstkonst As Word , Odvin As Word
- Dim Pom_str As String * 10 , Time_out_pom As Byte , Navinbitufo As Bit , Navinbitovladac As Bit , Navinvyp As Bit
- Dim Potik As Word , Pocetzmacknuti As Byte
- Dim Kodery_ufo As Word
- Dim Pole_vrstvy(20) As Single , Comm_period As Word , Comm_period_tlacitka As Byte
- Dim Zarizeni As Byte , Druh_komunikace As Byte , Pocet_stisku As Byte
- Dim Tlak_vyveva_disp As Word , Otacky_motoru As Word , Tlak_real As Word
- Dim Recyklace_funkce As Bit
- '**********PROMENNE PRO TLACITKA NA DVERICH****************
- Dim Vak_cerp_on_off As Bit , Vak_cerp_sani As Bit , Vak_cerp_vytlak As Bit , Vak_cerp_soupe_spodni As Bit , Vak_cerp_soupe_horni As Bit,
- Dim Vystlak_cerp_on_off As Bit , Vystlak_cerp_kohout_dn13 As Bit , Vystlak_cerp_kohout_dn25_32 As Bit
- Dim Vystlak_cerp_hadice_dn13 As Bit , Vystlak_cerp_hadice_dn25_32 As Bit , Vystlak_cerp_tlak_on_off As Bit
- Dim Recyklace_upr_vody As Bit , Recyklace_cist_hrub_filtr As Bit , Recyklace_cist_cyklon As Bit , Recyklace_odcerp_kal As Bit
- Dim Zavodneni_90s As Bit , Zavodneni_majak As Bit , Zavodneni_svetlo As Bit , Zavodneni_radio As Bit
- '**********PROMENNE PRO VSTUPY****************
- Dim Vyveva_otacky As Word , Tlak_oleje_vyveva As Word , Teplota_vyveva As Word , Pretlak_vyveva As Word , Podtlak_vyveva As Word
- Dim Tlak_vody_hrib As Word , Hladina_vody As Word , Hladina_kalove_vody As Word
- Dim Cista_min As Word , Cista_max As Word , Kalova_min As Word , Kalova_max As Word
- '**********PROMENNE PRO VYSTUPY****************
- Dim Vyveva_pwm As Bit , Vyveva_sani As Bit , Vyveva_vytlak As Bit , Vyveva_odvetrani As Bit , Ventil_kalova As Bit , Ventil_kalova_1 As Bit
- Dim Ventil_zac_kaly_2 As Bit , Ventil_cista As Bit , Ventil_cista_2 As Bit , Ventil_horni_kaly_3 As Bit , Ventil_reg_hrib As Bit,
- Dim Ventil_dn13 As Bit , Ventil_dn25 As Bit , Cis_hruby_filtr As Bit , Klapka_nap_cista As Bit , Klapka_nap_kalova As Bit , Klapka_ovldaci_pro_f As Bit
- Dim Soupe_dolni As Bit , Soupe_horni As Bit , Auto_stop As Bit , Otacky_plus As Bit , Otacky_minus As Bit
- Dim Tlak_vyveva As Word , Vyveva_prepocet As Word
- Dim Ad_bit As Bit , Ad_time As Word
- Dim Time_cisteni_cyklonu As Word , Time_zavodneni As Word
- Dim Kodery_ufo_2 As Word
- Dim Tlacitka_1 As Word , Tlacitka_2 As Word
- Dim Recykl_cerp_hrub_filtr As Bit , Cyklon As Bit
- Dim Cist_hrub_filtru_time As Word
- '**********PROMENNE PRO VYPOCTY****************
- Dim Maximum As Word , Minimum As Word , Cista_konst As Single , Akt_cista As Word
- Dim Akt_kalova As Word , Maximum_kalova As Word , Minimum_kalova As Word , Kalova_konst As Single
- Dim Maximum_ee As Eram Word , Minimum_ee As Eram Word , Maximum_kalova_ee As Eram Word , Minimum_kalova_ee As Eram Word
- Dim Recyklace_1sec As Word , Recyklace_time As Word
- Dim Cisteni_cyklonu_time As Word , Recyklace_cist_cyklon_old As Bit , Recyklace_cist_cyklon_time As Word
- Dim Vystlak_cerpadlo As Bit
- Dim Vypnout_vystupy As Bit
- Dim Tim2 As Word , Otacky_vyveva As Word , Vyveva_rpm As Word
- Dim Pom_byte As Byte , Prepocet_bytu_num As Byte , Word1 As Word , Word2 As Word , Word3 As Word , Word4 As Word
- Dim Word5 As Word , Word6 As Word , Word7 As Word , Word8 As Word
- Dim Vykon_vyveva As Word , Tlak_pozadovany_automat As Word
- Dim Ee_hladiny As Eram Byte
- Dim Vyveva_ok As Bit
- Dim Pt As Byte , Ptx As Byte
- Dim Otacky_pridej As Bit , Otacky_uber As Bit , Zmena_otacek_time As Word , Cteni_otacek_time As Word
- Dim Rozdil_tlaku As Single , Men_otacky As Bit
- Declare Sub Zmena_otacek(byval Jak As Byte)
- Pocet_vzorku = 10
- Strana = 1
- If New_ee <> 3 Then
- For Index = 1 To 19
- Outb_ee(index) = 0
- Oute_ee(index) = 4096
- Ramp_on_ee(index) = 1
- Ramp_off_ee(index) = 1
- Next
- New_ee = 3
- End If
- '(
- For Index = 1 To 16
- Ramp_on_ee(index) = 20
- Ramp_off_ee(index) = 20
- Next
- ')
- For Index = 1 To 19
- Outb(index) = Outb_ee(index) : Oute(index) = Oute_ee(index)
- Ramp_on(index) = Ramp_on_ee(index)
- Ramp_off(index) = Ramp_off_ee(index)
- Next Index
- Menu_bit = 0
- Irc_val_celk = 0
- Irc_val = 0
- 'Krok_val = 0
- 'Ii = 2900
- Zmena = 0
- Irc_val_celk_2 = 0
- Irc_val = 0
- 'Nast_konst = 0
- Comm_period_tlacitka = 25 '' ROZSYNCHONIZOVANI S CASOVACEM PRVNI KOMUNIKACE
- Const Reakce_tlacitka = 20 ''prodleva po jake se vyhodnoti, ze tlacitko je stlaceno - nabezna hrana
- Const Opakovana_reakce_tlacitka = 200 '' doba podrzeni tlacitka, od ktere se hodnota " rozbehne "
- Const Rychlost_pridavku_pwm = 20 ''cislo jak rychly bude pridavek
- Const Rychlost_pridavku_ram = 20 ''cislo jak rychly bude pridavek
- Const Pridavek_pwm = 10 '' o kolik se zmeni hodnota pri podrzeni tlacitka
- Const Pridavek_ram = 5
- Setfont Font8x8
- Set Refresh_bit
- Cls
- If Ee_hladiny <> 6 Then
- Cista_min = 835 / 5.65
- Minimum_ee = Cista_min
- 'Minimum = Cista_max
- Cista_max = 270 / 5.65
- Maximum_ee = Cista_max
- 'Maximum = Cista_min
- Ee_hladiny = 6
- End If
- Waitms 100
- Cista_min = Minimum_ee
- Cista_max = Maximum_ee
- Kalova_min = Minimum_kalova_ee
- Kalova_max = Maximum_kalova_ee
- Enable Interrupts
- Do
- '******** MODBUS PRIJEM OD UFA A DISPLEJE ********************
- If Data_prijata = 1 Then
- Data_prijata = 0
- '' sestaveni hodnoty crc z poslednich dvou bajtu
- Index2 = Buf_long - 1
- Crc = Makeint(mbuf(index2) , Mbuf(buf_long)) ' create word of received crc
- Decr Index2
- ''vypocet crc z prichozi informace (je potreba modbus.lib)
- Crc2 = Crcmb(mbuf(1) , Index2)
- Adresa_pameti = 1
- If Crc = Crc2 Then
- If Master = 1 Then
- '' pokud jsme master, zapiseme si data podle toho ktery slejv nam odpovida
- If Mbuf(2) = 1 Then Adresa_pameti = 30
- If Mbuf(2) = 2 Then Adresa_pameti = 20
- ''Else...
- '' JSME NYNI MASTER
- End If
- Zarizeni = Mbuf(3) '' Naplneni "m" '' hodnot podle adresy
- Pocet_wordu = Mbuf(4)
- Index2 = 5
- For X = 1 To Pocet_wordu 'Pocet_polozek
- M(adresa_pameti) = Mbuf(index2) * 256
- Incr Index2
- M(adresa_pameti) = M(adresa_pameti) + Mbuf(index2)
- Incr Index2
- Incr Adresa_pameti
- Next
- End If
- Index = 0
- '**** SESTAVENI PRACOVNICH PROMENNYCH ***********
- Otacky_plus = M(30).3
- Otacky_minus = M(30).2
- 'Otacky_motoru = M(31)
- Tlak_pozadovany_automat = M(20)
- Vykon_vyveva = M(21)
- Automat = M(22).0
- Word5 = M(30)
- Word6 = M(31)
- Word7 = M(32)
- Word8 = M(33)
- Tlak_vyveva = Vykon_vyveva
- If Vykon_vyveva > 100 Then
- Tlak_vyveva = 100
- End If
- End If
- Skupina = 10
- Pocet_wordu = 2
- Tlacitka_1.11 = Recykl_cerp_hrub_filtr
- Tlacitka_1.12 = Cyklon
- '(
- If Vyveva_sani = 1 Then
- Tlak_vyveva_disp = Podtlak_vyveva
- Elseif Vyveva_sani = 0 And Vyveva_odvetrani = 0 Then
- Tlak_vyveva_disp = Pretlak_vyveva
- Elseif Vyveva_odvetrani = 1 Then
- Tlak_vyveva_disp = 0
- End If
- ')
- ' Tlak_vyveva_disp = Podtlak_vyveva
- 'M(3) = Tlak_vyveva_disp
- 'M(3) = Word1
- 'Tlacitka_1.0 = 1
- 'Tlacitka_1.5 = 1
- 'Tlacitka_2.0 = 1
- M(1) = Tlacitka_1
- M(2) = Tlacitka_2
- M(3) = Word1
- M(4) = Word2
- M(5) = Word3
- M(6) = Word4
- 'Call Prepoct_na_word(word6)
- M(7) = Word5
- M(8) = Word6
- Call Prepocet_na_word(word6)
- M(9) = Word7
- M(10) = Word8
- If Vysilej = 1 Then
- Reset Vysilej
- Mbuf(1) = Skupina
- If Master = 1 Then
- Mbuf(2) = Slave
- ''Else ''JSME MASTER
- ''Mbuf(2) = 1
- End If
- Mbuf(3) = 0
- If Slave = 2 Then
- Pocet_wordu = 10
- Mbuf(4) = 10
- Elseif Slave = 1 Then
- Pocet_wordu = 2
- Mbuf(4) = 2
- End If
- Index2 = 5 : Adresa_pameti = 1 '' adresu si muzeme upravit, drzme se ale toho, ze sdilene promenne bude pocitat od jednicky a redukovat na nutny pocet
- For X = 1 To Pocet_wordu 'Pocet_polozek
- Mbuf(index2) = High(m(adresa_pameti))
- Incr Index2
- Mbuf(index2) = Low(m(adresa_pameti))
- Incr Index2
- Incr Adresa_pameti
- Next
- Decr Index2
- Crc = Crcmb(mbuf(1) , Index2) ' create checksum
- Incr Index2
- Mbuf(index2) = Low(crc) 'add to buffer
- Incr Index2
- Mbuf(index2) = High(crc)
- For X = 1 To Index2
- Printbin #2 , Mbuf(x) ; 1
- Next
- End If
- '**************KOMUNIKACE_TLACITKA******************************
- If Data_prijata_tlacitka = 1 Then
- Data_prijata_tlacitka = 0
- '' sestaveni hodnoty crc z poslednich dvou bajtu
- Index2_tl = Buf_long_tl - 1
- Crc_tl = Makeint(mbuf_tl(index2_tl) , Mbuf_tl(buf_long_tl)) ' create word of received crc
- Decr Index2_tl
- ''vypocet crc z prichozi informace (je potreba modbus.lib)
- Crc2_tl = Crcmb(mbuf_tl(1) , Index2_tl)
- Adresa_pameti = 1
- If Crc_tl = Crc2_tl Then
- If Master = 1 Then
- If Mbuf_tl(2) = 2 Then Adresa_pameti_tl = 40 : Bufik = 2
- If Mbuf_tl(2) = 3 Then Adresa_pameti_tl = 44 : Bufik = 3
- If Mbuf_tl(2) = 4 Then Adresa_pameti_tl = 48 : Bufik = 4
- If Mbuf_tl(2) = 5 Then Adresa_pameti_tl = 52 : Bufik = 5
- End If
- Zarizeni = Mbuf_tl(3) '' Naplneni "m" '' hodnot podle adresy
- Pocet_wordu = 2
- Index2_tl = 5
- For X_tl = 1 To Pocet_wordu 'Pocet_polozek
- M(adresa_pameti_tl) = Mbuf_tl(index2_tl) * 256
- Incr Index2_tl
- M(adresa_pameti_tl) = M(adresa_pameti_tl) + Mbuf_tl(index2_tl)
- Incr Index2_tl
- Incr Adresa_pameti_tl
- Next
- End If
- '' NAHRANI PRACOVNICH BITU V SUBROUTINE
- Sest_obr_spinacu
- Index_tl = 0
- End If
- If Vysilej_tlacitka = 1 Then
- Reset Vysilej_tlacitka
- '' POSTUONE OSLOVENI VSECH DESEK - ADRESY 2,3,4,5
- Incr Pocitadlo
- If Pocitadlo > 5 Then
- Pocitadlo = 2
- End If
- Druh_komunikace = 0 ''princip - je to modbus odpoved, odpovidame slejvovi nase hodnoty, on pak nasledne odpovi zase jeho pole promennych
- Mbuf_tl(1) = 10 'Skupina
- Mbuf_tl(2) = Pocitadlo
- Mbuf_tl(3) = 1 'Druh_komunikace
- Pocet_wordu = 2
- Index2_tl = 5 : Adresa_pameti_tl = 1 '' adresu si muzeme upravit, drzme se ale toho, ze sdilene promenne bude pocitat od jednicky a redukovat na nutny pocet
- For X_tl = 1 To Pocet_wordu 'Pocet_polozek
- Mbuf_tl(index2_tl) = High(m(adresa_pameti_tl))
- Incr Index2_tl
- Mbuf_tl(index2_tl) = Low(m(adresa_pameti_tl))
- Incr Index2_tl
- Incr Adresa_pameti_tl
- Next
- Decr Index2_tl
- Crc_tl = Crcmb(mbuf_tl(1) , Index2_tl) ' create checksum
- Incr Index2_tl
- Mbuf_tl(index2_tl) = Low(crc_tl) 'add to buffer
- Incr Index2_tl
- Mbuf_tl(index2_tl) = High(crc_tl)
- For X_tl = 1 To Index2_tl
- Printbin #1 , Mbuf_tl(x_tl) ; 1
- Next
- End If
- 'Sest_obr_spinacu
- '''************OVLADANI_VYSTUPU*************************
- ' VYSTUPY:
- ' VYVEVA_PWM - 1 Vak_cerp_on_off
- ' VYVEVA_SANI - 2
- ' VYVEVA_VYTLAK - 3
- ' VYVEVA_ODVETRANI - 4
- ' VENTIL_KALOVA_1 - 5
- ' VENTIL_ZAC_KALY_2 - 6
- ' VENTIL_CISTA_2 - 7
- ' VENTIL_HORNI_KALY_3- 8
- ' VENTIL_REG_HRIB - 9
- ' VENTIL_DN13 - 10
- ' VENTIL_DN25 - 11
- ' CIS_HRUBY_FILTR - 12
- ' KLAPKA_NAP_CISTA - 13
- ' KLAPKA_NAP_KALOVA - 14
- ' KLAPKA_OVLDACI_PRO_F 15
- ' SOUPE_DOLNI 16
- ' SOUPE_HORNI 17
- ' AUTO_STOP 18
- ' OTACKY_PLUS 19
- ' OTACKY_MINUS 20
- '(
- Vak_cerp_on_off = M(110).1
- Vak_cerp_sani = M(110).2
- Vak_cerp_vytlak = M(110).3
- Vak_cerp_soupe_spodni = M(110).4
- Vak_cerp_soupe_horni = M(110).5
- Vystlak_cerp_on_off = M(120).1
- Vystlak_cerp_kohout_dn13 = M(120).2
- Vystlak_cerp_kohout_dn25_32 = M(120).3
- Vystlak_cerp_hadice_dn13 = M(120).4
- Vystlak_cerp_hadice_dn25_32 = M(120).5
- Vystlak_cerp_tlak_on_off = M(120).6
- Recyklace_upr_vody = M(130).1
- Recyklace_cist_hrub_filtr = M(130).2
- Recyklace_cist_cyklon = M(130).3
- Recyklace_odcerp_kal = M(130).4
- Zavodneni_90s = M(140).1
- Zavodneni_majak = M(140).2
- Zavodneni_svetlo = M(140).3
- Zavodneni_radio = M(140).4
- '**************SPUSTENI VYSOKOTLAKEHO CERPADLA (CISTENI HADICI)*****************
- ') if Vystlak_cerp_kohout_dn13 = 1 and Vystlak_cerp_kohout_dn25_32 = 0 And Akt_cista > 20 And Akt_kalova < 90 then
- Hadice_nastavena = 1
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 1 Then
- Hadice_nastavena = 1
- Else
- Hadice_nastavena = 0
- End If
- If Vystlak_cerp_on_off = 1 And Vystlak_cerp_tlak_on_off = 1 And Hadice_nastavena = 1 Then
- Ventil_reg_hrib = 1
- Klapka_nap_cista = 1
- Elseif Vystlak_cerp_on_off = 0 Or Vystlak_cerp_tlak_on_off = 0 Or Hadice_nastavena = 0 Or Recyklace_cist_hrub_filtr = 1then
- Ventil_reg_hrib = 0
- Klapka_nap_cista = 0
- End If
- If Ventil_reg_hrib = 1 And Klapka_nap_cista = 1 Then
- Vystlak_cerpadlo = 1
- Elseif Hadice_nastavena = 0 Or Ventil_reg_hrib = 0 Or Vystlak_cerp_on_off = 0 Or Vystlak_cerp_tlak_on_off = 0 Or Klapka_nap_cista = 0 Then
- Vystlak_cerpadlo = 0
- End If
- '***************automaticky_rezim_tlak******************************************
- If Automat = 1 Then
- Rozdil_tlaku = Tlak_pozadovany_automat - Tlak_vody_hrib
- If Rozdil_tlaku > 5 And Men_otacky = 0 Then
- Set Otacky_pridej
- Elseif Rozdil_tlaku < -5 And Men_otacky = 0 Then
- Set Otacky_uber
- Else
- Reset Otacky_pridej
- Reset Otacky_uber
- End If
- If Otacky_pridej = 1 And Zmena_otacek_time < 250 Then ' pridej otacky
- Otacky_plus = 1
- End If
- If Otacky_uber = 1 And Zmena_otacek_time < 250 Then
- Otacky_minus = 1
- End If
- If Zmena_otacek_time > 250 Then
- Otacky_plus = 0
- Otacky_minus = 0
- Reset Otacky_uber
- Reset Otacky_pridej
- Zmena_otacek_time = 0
- Cteni_otacek_time = 1
- Men_otacky = 1
- End If
- If Cteni_otacek_time > 500 Then
- Men_otacky = 0
- Cteni_otacek_time = 0
- End If
- Elseif Automat = 0 Then
- Reset Otacky_uber
- Reset Otacky_pridej
- End If
- If Recyklace_upr_vody = 1 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 1 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 1 And Recyklace_odcerp_kal = 0 Then
- Recyklace_funkce = 0
- Elseif Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 1 Then
- Recyklace_funkce = 0
- Else
- 'Set Vypnout_vystupy
- Recyklace_funkce = 1
- End If
- If Vypnout_vystupy = 1 Then
- 'RECYKLACE
- Recyklace_1sec = 0
- Recyklace_time = 0
- Reset Ventil_kalova_1
- Reset Ventil_zac_kaly_2
- Reset Ventil_cista_2
- Reset Ventil_horni_kaly_3
- Reset Recykl_cerp_hrub_filtr
- Reset Cyklon
- 'CISTENI CYLKONU
- Reset Cyklon
- Reset Klapka_ovldaci_pro_f
- ' Reset Vystlak_cerpadlo
- ' Reset Ventil_reg_hrib
- Reset Cis_hruby_filtr
- If Recyklace_upr_vody = 0 And Recyklace_cist_cyklon = 0 And Recyklace_cist_hrub_filtr = 0 And Recyklace_odcerp_kal = 0 Then
- Recyklace_funkce = 0
- End If
- Vypnout_vystupy = 0
- End If
- '*****************SPUSTENI RECYKLACE ******************************************
- If Recyklace_upr_vody = 1 And Recyklace_funkce = 0 And Akt_kalova > 20 And Akt_cista < 90 Then
- 'If Recyklace_1sec = 1 Then
- Set Ventil_kalova_1
- 'Elseif Recyklace_1sec = 2 Then
- Set Ventil_zac_kaly_2
- 'Elseif Recyklace_1sec = 3 Then
- Set Ventil_cista_2
- 'Elseif Recyklace_1sec = 4 Then
- Set Ventil_horni_kaly_3
- 'Elseif Recyklace_1sec = 5 Then
- Set Recykl_cerp_hrub_filtr
- 'Elseif Recyklace_1sec = 6 Then
- Set Cyklon
- 'End If
- Elseif Recyklace_upr_vody = 0 Then
- Set Vypnout_vystupy
- End If
- '**************SPUSTENI CISTENI_CYKLONU NA 10s*******************************
- If Recyklace_cist_cyklon = 0 And Cisteni_cyklonu_time = 20 Then
- Cisteni_cyklonu_time = 0
- End If
- If Recyklace_cist_cyklon = 1 And Recyklace_funkce = 0 And Cisteni_cyklonu_time < 10 Then
- Set Cyklon
- Set Ventil_horni_kaly_3
- Set Klapka_ovldaci_pro_f
- Elseif Recyklace_cist_cyklon = 0 Then
- 'asdasdasd
- Set Vypnout_vystupy
- Cisteni_cyklonu_time = 0
- Elseif Cisteni_cyklonu_time > 10 Then
- Set Vypnout_vystupy
- End If
- '****************CISTENI HRUBEHO FILTRU**************************************
- If Recyklace_cist_hrub_filtr = 1 And Recyklace_funkce = 0 And Akt_cista > 20 And Akt_kalova < 90 Then
- If Otacky_motoru < 85 Then
- Reset Vystlak_cerp_tlak_on_off
- If Cist_hrub_filtru_time > 500 Then
- Cist_hrub_filtru_time = 600
- Vystlak_cerpadlo = 1
- Recykl_cerp_hrub_filtr = 1
- End If
- 'Ventil_kalova_1 = 1
- Ventil_horni_kaly_3 = 1
- Klapka_ovldaci_pro_f = 1
- Cis_hruby_filtr = 1
- Ventil_cista_2 = 1
- End If
- If Otacky_motoru > 80 Then
- Otacky_minus = 1
- Elseif Otacky_motoru < 80 Then
- Otacky_minus = 0
- End If
- Elseif Recyklace_cist_hrub_filtr = 0 Then
- Set Vypnout_vystupy
- Cist_hrub_filtru_time = 0
- End If
- '*****************ODCERPANI KALOVE VODY**************************************
- If Recyklace_odcerp_kal = 1 And Recyklace_funkce = 0 And Akt_kalova > 5 Then
- ' Set Ventil_horni_kaly_3
- Set Recykl_cerp_hrub_filtr
- Elseif Recyklace_odcerp_kal = 0 Then
- Set Vypnout_vystupy
- End If
- '************************SPUSTENI VYVEVY*************************************
- If Vak_cerp_sani = 1 And Vak_cerp_vytlak = 0 And Akt_kalova < 90 Then
- Vyveva_sani = 1
- Vyveva_odvetrani = 0
- Vyveva_ok = 1
- Elseif Vak_cerp_vytlak = 1 And Vak_cerp_sani = 0 And Akt_kalova > 20 Then
- Vyveva_sani = 0
- Vyveva_odvetrani = 0
- Vyveva_ok = 1
- Elseif Vak_cerp_sani = 0 And Vak_cerp_vytlak = 0 Then
- Vyveva_odvetrani = 1
- Vyveva_sani = 0
- Vyveva_ok = 1
- Elseif Vak_cerp_sani = 1 And Vak_cerp_vytlak = 0 And Akt_kalova > 91 Then
- Vyveva_ok = 0
- Elseif Vak_cerp_vytlak = 1 And Vak_cerp_sani = 0 And Akt_kalova < 20 Then
- Vyveva_ok = 0
- End If
- If Vyveva_ok = 1 And Teplota_vyveva > 500 Then
- Vyveva_pwm = Vak_cerp_on_off
- End If
- '************************OVLADANI SOUPAT*************************************
- Soupe_dolni = Vak_cerp_soupe_spodni
- Soupe_horni = Vak_cerp_soupe_horni
- If Vystlak_cerp_kohout_dn13 = 1 And Vystlak_cerp_kohout_dn25_32 = 0 Then
- Ventil_dn13 = 1
- Ventil_dn25 = 0
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 1 Then
- Ventil_dn13 = 0
- Ventil_dn25 = 1
- Elseif Vystlak_cerp_kohout_dn13 = 0 And Vystlak_cerp_kohout_dn25_32 = 0 Then
- Ventil_dn13 = 0
- Ventil_dn25 = 0
- End If
- 'Ventil_reg_hrib = Vystlak_cerp_tlak_on_off
- 'VYVEVA_SANI = Vak_cerp_sani
- ' Pozor Vystlak Cerpadlo ""
- 'VYVEVA_ODVETRANI =
- 'VENTIL_KALOVA_1 =
- 'VENTIL_ZAC_KALY_2 =
- 'VENTIL_CISTA_2 =
- 'VENTIL_HORNI_KALY_3 =
- 'VENTIL_REG_HRIB =
- 'VENTIL_DN13 =
- 'VENTIL_DN25 =
- 'CIS_HRUBY_FILTR =
- If Menu_bit = 1 Then
- '#################### NASTAVENI PWM HRANIC A RAMP PRO VYSTUPY #############################
- If Menu_pos < 17 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "NASTAVENI"
- Lcdat 2 , 1 , "VENTILU: ";
- If Set_pos = 0 Then
- Setfont 100 : Lcdat 1 , 80 , Menu_pos ; "::::::" ; : Lcdat 1 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 1 , 80 , Menu_pos ; "::::::" ; : Lcdat 1 , 60 , "::";
- End If
- Setfont Font8x8 : Lcdat 4 , 1 , "MINIMUM "
- If Set_pos = 1 Then
- Setfont 100 : Lcdat 3 , 80 , Outb(menu_pos) ; "::" ; : Lcdat 3 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 3 , 80 , Outb(menu_pos) ; "::" ; : Lcdat 3 , 60 , "::" ;
- End If
- Setfont Font8x8 : Lcdat 6 , 1 , "MAXIMUM "
- If Set_pos = 2 Then
- Setfont 100 : Lcdat 5 , 80 , Oute(menu_pos) ; "::" ; : Lcdat 5 , 60 , ">>";
- Else
- Setfont 100 : Lcdat 5 , 80 , Oute(menu_pos) ; "::" ; : Lcdat 5 , 60 , "::" ;
- End If
- Setfont Font8x8 : Lcdat 7 , 1 , "RAM _/ :" ; : Lcdat 8 , 1 , "RAM \_ :";
- If Set_pos = 3 Then
- Lcdat 7 , 60 , ">>" ; : Lcdat 7 , 80 , Ramp_on(menu_pos) ; " " ;
- Else
- Lcdat 7 , 60 , " " ; : Lcdat 7 , 80 , Ramp_on(menu_pos) ; " " ;
- End If
- If Set_pos = 4 Then
- Lcdat 8 , 60 , ">>" ; : Lcdat 8 , 80 , Ramp_off(menu_pos) ; " " ;
- Else
- Lcdat 8 , 60 , " " ; : Lcdat 8 , 80 , Ramp_off(menu_pos) ; " " ;
- End If
- Elseif Menu_pos = 17 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont My12d
- Lcdat 5 , 40 , "EXIT? >"
- Elseif Menu_pos = 40 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , " HLADINA CISTA VODA " , 1
- Lcdat 4 , 1 , " HLADINA KALOVA VODA " , 1
- Lcdat 8 , 1 , ".CISTA:" , 1
- Lcdat 8 , 60 , ".KALOVA:" , 1
- Lcdat 8 , 36 , Akt_cista ; "%";
- Lcdat 8 , 105 , Akt_kalova ; "%";
- Setfont 100 : Lcdat 2 , 1 , ; Prevodnik(7) ;
- Setfont 100 : Lcdat 5 , 1 , ; Prevodnik(8) ;
- Setfont Font8x8 : Lcdat 2 , 60 , "MIN?" : Lcdat 3 , 60 , "MAX?" : Lcdat 5 , 60 , "MIN?" : Lcdat 6 , 60 , "MAX?" : Lcdat 7 , 60 , "EXIT?"
- If Set_pos = 2 Then
- Lcdat 2 , 90 , "<< OK?"
- Elseif Set_pos = 3 Then
- Lcdat 3 , 90 , "<< OK?"
- Elseif Set_pos = 5 Then
- Lcdat 5 , 90 , "<< OK?"
- Elseif Set_pos = 6 Then
- Lcdat 6 , 90 , "<< OK?"
- Elseif Set_pos = 7 Then
- Lcdat 7 , 90 , "<< OK?"
- Else
- Lcdat 2 , 90 , " "
- Lcdat 3 , 90 , " "
- Lcdat 5 , 90 , " "
- Lcdat 6 , 90 , " "
- Lcdat 7 , 90 , " "
- End If
- End If
- '#################### PRIME OVLADANI VYSTUPU V TESTOVACIM REZIMU #############################
- '' POKUD JE TESTOVACI REZIM, VYSTUPY NEOVLADA PROGRAM, JEN TLACITKA
- '(
- If Menu_pos => 20 And Menu_pos < 29 Then
- Testovaci_rezim = 1
- Else
- Testovaci_rezim = 0
- End If
- ') ')
- If Menu_pos = 20 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VENTIL KALOVA VYSTUP"
- Lcdat 6 , 1 , "VENTIL ZA CERP. KALY"
- Setfont My12d
- Lcdat 2 , 1 , " CH:OUT5"
- Lcdat 7 , 1 , " H:OUT6"
- Elseif Menu_pos = 21 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VE. CISTA ZA CYKLON."
- Lcdat 6 , 1 , "VE. KALY ZA CYKLONE."
- Setfont My12d
- Lcdat 2 , 1 , " E:OUT7"
- Lcdat 7 , 1 , " F:OUT8"
- Elseif Menu_pos = 22 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "REGULACNI HRIB TLAK"
- Lcdat 6 , 1 , "VENTIL DN13"
- Setfont My12d
- Lcdat 2 , 1 , " OUT9"
- Lcdat 7 , 1 , " OUT10"
- Elseif Menu_pos = 23 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VENTIL DN25"
- Lcdat 6 , 1 , "VE.CISTENI HR.FILTR"
- Setfont My12d
- Lcdat 2 , 1 , " OUT11"
- Lcdat 7 , 1 , " OUT12"
- Elseif Menu_pos = 24 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "VE.NAPOUSTENI CISTA"
- Lcdat 6 , 1 , "VE.NAPOUSTENI KALO."
- Setfont My12d
- Lcdat 2 , 1 , " OUT13"
- Lcdat 7 , 1 , " OUT14"
- Elseif Menu_pos = 25 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "OVLADANI F"
- Lcdat 6 , 1 , "SOUPE DOLNI"
- Setfont My12d
- Lcdat 2 , 1 , " OUT15"
- Lcdat 7 , 1 , " OUT16"
- Elseif Menu_pos = 26 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "SOUPE HORNI"
- Lcdat 6 , 1 , "AUTO STOP"
- Setfont My12d
- Lcdat 2 , 1 , " OUT17"
- Lcdat 7 , 1 , " OUT18"
- Elseif Menu_pos = 27 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- Lcdat 1 , 1 , "AUTO OTACKY +"
- Lcdat 6 , 1 , "AUTO OTACKY -"
- Setfont My12d
- Lcdat 2 , 1 , " OUT19"
- Lcdat 7 , 1 , " OUT20"
- Elseif Menu_pos = 28 And Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont My12d
- Lcdat 1 , 50 , "EXIT? >"
- ''...
- End If
- Elseif Menu_bit = 0 Then
- If Refresh_bit = 1 Then
- Reset Refresh_bit
- Cls_
- Setfont Font8x8
- If Strana = 1 Then
- Strana1
- Elseif Strana = 2 Then
- Strana2
- Elseif Strana = 3 Then
- Strana3
- Elseif Strana = 4 Then
- Strana4
- Elseif Strana = 5 Then
- Strana5
- Elseif Strana = 6 Then
- Strana6
- End If
- End If
- End If
- '' PO OPUSTENI NASTAVENI VYSTUPU SE ZDE ULOZI DATA
- If Uloz_data = 1 Then
- Uloz_data = 0 :
- Setfont Font8x8 : Lcdat 8 , 1 , "SAVE................ " , 1
- Disable Interrupts
- For Index = 1 To 16
- Outb_ee(index) = Outb(index) : Oute_ee(index) = Oute(index)
- Ramp_on_ee(index) = Ramp_on(index) : Ramp_off_ee(index) = Ramp_off(index)
- Next Index
- Enable Interrupts
- Waitms 150 : Cls_ : Set Refresh_bit
- End If
- If Ad_bit = 1 Then
- Ad_bit = 0 : Read_inputs
- End If
- '' NASTAVENI VYSTUPU V NORMALNIM REZIMU, POKUD JSME V TESTOVACIM, OVLADAJI SE VYSTUPY TLACITKY !!!
- If Refresh_out = 1 Then
- Refresh_out = 0
- If Testovaci_rezim = 0 Then Send_outputs
- Send_pwm
- End If
- If Bit_time = 1 Then
- Bit_time = 0 : Obsluha_tlacitek
- End If
- Loop
- Sub Init_pca9685
- '(
- /********************************************/
- /* Init code for the PCA9685 */
- /* Input:[address of the pc9685 to init] */
- /* Output:[void] */
- /********************************************/
- ')
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &B00000000 '' Mode 1 address
- I2cwbyte &B00110001 '' Setting mode to sleep so we can change teh default PWM frequency
- I2cstop '' Stop
- Waitms 1 '' Required 50 us delay
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &HFE '' PWM frequency PRE_SCALE address
- I2cwbyte 50 '' osc_clk/(4096*update_rate) '' 25000000/(4096*1500)= 4.069 ~4
- I2cstop '' Stop
- Waitms 1 '' delay at least 500 us
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave address
- I2cwbyte &B00000000 '' Mode 1 register address
- I2cwbyte &HA1 '' Set to our prefered mode[ Reset, INT_CLK, Auto-Increment, Normal Mode]
- I2cstop '' Stop
- Waitms 1 '' delay at least 500 us
- I2cstart '' Start
- I2cwbyte &B10000000 '' Slave Address
- I2cwbyte &B00000001 '' Mode2 register address
- I2cwbyte &B00000100 '' Set to our prefered mode[Output logic state not inverted, Outputs change on STOP,
- I2cstop '' totem pole structure, When OE = 1 (output drivers not enabled), LEDn = 0]
- Waitms 1
- '' all led off
- I2cstart
- I2cwbyte &B10000000
- I2cwbyte &HFC '' Allled Off Regiter
- I2cwbyte &B00000000 ''data
- I2cwbyte &B00010000 '' ; / / Data
- I2cstop
- End Sub
- Sub Obsluha_tlacitek
- If Tl_ok = 0 And Tim_tl_ok < 1000 Then Incr Tim_tl_ok
- If Tl_ok = 1 Then Tim_tl_ok = 0
- If Tl_up = 0 And Tim_tl_up < 1000 Then Incr Tim_tl_up
- If Tl_up = 1 Then Tim_tl_up = 0
- If Tl_down = 0 And Tim_tl_down < 1000 Then Incr Tim_tl_down
- If Tl_down = 1 Then Tim_tl_down = 0
- If Menu_bit = 1 And Menu_pos > 0 And Menu_pos < 17 Then
- '' NASTAVOVANI PARAMETRU VYSTUPU
- Tlacitka_menu1
- 'NASLEDUJE UZ NOVA FORMA REAKCE TLACITEK PRO ZMENU PWM, NEBO RAMP...
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- If Set_pos = 0 Then
- If Tim_tl_up = 20 Then
- Incr Menu_pos
- If Menu_pos = 18 Then Menu_pos = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 Then
- Decr Menu_pos
- If Menu_pos = 0 Then Menu_pos = 17
- Set Refresh_bit
- End If
- '(
- ''cislo 375 = 1 sekunda
- Const Reakce_tlacitka = 20 ''prodleva po jake se vyhodnoti, ze tlacitko je stlaceno - nabezna hrana
- Const Opakovana_reakce_tlacitka = 200 '' doba podrzeni tlacitka, od ktere se hodnota " rozbehne "
- Const Rychlost_pridavku_pwm = 20 ''cislo jak rychly bude pridavek
- Const Rychlost_pridavku_ram = 20 ''cislo jak rychly bude pridavek
- Const Pridavek_pwm = 4 '' o kolik se zmeni hodnota pri podrzeni tlacitka
- Const Pridavek_ram = 4
- ')
- Elseif Set_pos = 1 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Outb(menu_pos) < 4096 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Outb(menu_pos) ''po prvnim stisknuti
- If Outb(menu_pos) < 4096 And Tim_tl_up = Opakovana_reakce_tlacitka Then Outb(menu_pos) = Outb(menu_pos) + Pridavek_pwm ''po podrzeni tlacitka
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm ''pokud je tlacitko drzeno, vraci se hodnota trochu nazpet...
- ''minimalni rozmezi (interva) max - minimum je 260. Pokud je tento interval mensi, automaticky se hranice koriguji
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 '' korekce nastaveni dokud neni hranice minimalne 261, protoze pridavek muze rozdil libovolne vychylit
- Decr Outb(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos) ''kontrolni odecet
- Wend
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Outb(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Outb(menu_pos)
- If Outb(menu_pos) > 0 And Tim_tl_down = Opakovana_reakce_tlacitka Then Outb(menu_pos) = Outb(menu_pos) - Pridavek_pwm
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 Or Outb(menu_pos) < 0
- Incr Outb(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- End If
- Elseif Set_pos = 2 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Oute(menu_pos) < 4096 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Oute(menu_pos)
- If Oute(menu_pos) < 4096 And Tim_tl_up = Opakovana_reakce_tlacitka Then Oute(menu_pos) = Oute(menu_pos) + Pridavek_pwm
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261
- Decr Oute(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Oute(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Oute(menu_pos)
- If Oute(menu_pos) > 0 And Tim_tl_down = Opakovana_reakce_tlacitka Then Oute(menu_pos) = Oute(menu_pos) - Pridavek_pwm
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_pwm
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- While Pomw4 < 261 Or Oute(menu_pos) < 0
- Incr Oute(menu_pos)
- Pomw4 = Oute(menu_pos) - Outb(menu_pos)
- Wend
- Set Refresh_bit
- End If
- Elseif Set_pos = 3 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Ramp_on(menu_pos) < 1000 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Ramp_on(menu_pos)
- If Ramp_on(menu_pos) < 1000 And Tim_tl_up = Opakovana_reakce_tlacitka Then Ramp_on(menu_pos) = Ramp_on(menu_pos) + Pridavek_ram
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Ramp_on(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Ramp_on(menu_pos)
- If Ramp_on(menu_pos) > 5 And Tim_tl_down = Opakovana_reakce_tlacitka Then Ramp_on(menu_pos) = Ramp_on(menu_pos) - Pridavek_ram
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- End If
- Elseif Set_pos = 4 Then
- If Tim_tl_up = Reakce_tlacitka Or Tim_tl_up = Opakovana_reakce_tlacitka Then
- If Ramp_off(menu_pos) < 1000 And Tim_tl_up < Opakovana_reakce_tlacitka Then Incr Ramp_off(menu_pos)
- If Ramp_off(menu_pos) < 1000 And Tim_tl_up = Opakovana_reakce_tlacitka Then Ramp_off(menu_pos) = Ramp_off(menu_pos) + Pridavek_ram
- If Tim_tl_up = Opakovana_reakce_tlacitka Then Tim_tl_up = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- Elseif Tim_tl_down = Reakce_tlacitka Or Tim_tl_down = Opakovana_reakce_tlacitka Then
- If Ramp_off(menu_pos) > 0 And Tim_tl_down < Opakovana_reakce_tlacitka Then Decr Ramp_off(menu_pos)
- If Ramp_off(menu_pos) > 5 And Tim_tl_down = Opakovana_reakce_tlacitka Then Ramp_off(menu_pos) = Ramp_off(menu_pos) - Pridavek_ram
- If Tim_tl_down = Opakovana_reakce_tlacitka Then Tim_tl_down = Opakovana_reakce_tlacitka - Rychlost_pridavku_ram
- Set Refresh_bit
- End If
- End If
- If Tim_tl_ok = Reakce_tlacitka Then
- Incr Set_pos : Set Refresh_bit
- End If
- If Set_pos > 4 Then Set_pos = 0
- '(
- If Tim_tl_ok = 20 Then
- Incr Set_pos
- If Set_pos > 4 Then Set_pos = 0
- End If
- ')
- Elseif Menu_bit = 1 And Menu_pos = 17 Then
- Tlacitka_menu1
- ''VYSKAKOVACI OBRAZOVKA
- If Tim_tl_ok = 20 Then
- Reset Menu_bit : Set Refresh_bit
- ''ulozeni zmenenych dat
- Set Uloz_data
- End If
- Elseif Menu_bit = 1 And Menu_pos >= 20 And Menu_pos < 30 Then
- '' SEVISNI A TESTOVACI FUNKCE
- '' TLACITKO OK - ROTOVANI PRES VYSTUPY
- If Tim_tl_ok = 20 Then
- Tim_tl_ok = 21 '' JASNE, PROTOZE SE TU PROCHAZELO DVAKRAT I VICKRAT :O)
- Incr Menu_pos
- If Menu_pos = 29 Then Menu_pos = 20
- Set Refresh_bit
- End If
- If Menu_pos = 20 Then
- If Tim_tl_up > 20 Then Pwm_driver(5) = 4092 '' OUT5 / VENTIL KALOVA VYSTUP
- If Tim_tl_up < 20 Then Pwm_driver(5) = 0 '' OUT5 / VENTIL KALOVA VYSTUP
- If Tim_tl_down > 20 Then Pwm_driver(6) = 4092 '' OUT6 / VENTIL ZA CERPADLEM KALY
- If Tim_tl_down < 20 Then Pwm_driver(6) = 0 '' OUT6 / VENTIL ZA CERPADLEM KALY
- Elseif Menu_pos = 21 Then
- If Tim_tl_up > 20 Then Pwm_driver(7) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(7) = 0
- If Tim_tl_down > 20 Then Pwm_driver(8) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(8) = 0
- Elseif Menu_pos = 22 Then
- If Tim_tl_up > 20 Then Pwm_driver(9) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(9) = 0
- If Tim_tl_down > 20 Then Pwm_driver(10) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(10) = 0
- Elseif Menu_pos = 23 Then
- If Tim_tl_up > 20 Then Pwm_driver(11) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(11) = 0
- If Tim_tl_down > 20 Then Pwm_driver(12) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(12) = 0
- Elseif Menu_pos = 24 Then
- If Tim_tl_up > 20 Then Pwm_driver(13) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(13) = 0
- If Tim_tl_down > 20 Then Pwm_driver(14) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(14) = 0
- Elseif Menu_pos = 25 Then
- If Tim_tl_up > 20 Then Pwm_driver(15) = 4092
- If Tim_tl_up < 20 Then Pwm_driver(15) = 0
- If Tim_tl_down > 20 Then Pwm_driver(16) = 4092
- If Tim_tl_down < 20 Then Pwm_driver(16) = 0
- Elseif Menu_pos = 26 Then
- If Tim_tl_up > 20 Then Out17 = 1
- If Tim_tl_up < 20 Then Out17 = 0
- If Tim_tl_down > 20 Then Out18 = 1
- If Tim_tl_down < 20 Then Out18 = 0
- Elseif Menu_pos = 27 Then
- If Tim_tl_up > 20 Then Out19 = 1
- If Tim_tl_up < 20 Then Out19 = 0
- If Tim_tl_down > 20 Then Out20 = 1
- If Tim_tl_down < 20 Then Out20 = 0
- Elseif Menu_pos = 28 Then
- If Tim_tl_up = 20 Then
- Tim_tl_up = 21
- Set Refresh_bit : Testovaci_rezim = 0 : Reset Menu_bit
- End If
- End If
- Elseif Menu_bit = 1 And Menu_pos = 40 Then
- '' NASTAVOVANI CIDEL HLADIN
- '' TLACITKO "-" - ROTOVANI PRES RADKY
- If Tim_tl_down = 20 Then
- Tim_tl_down = 21 '' JASNE, PROTOZE SE TU PROCHAZELO DVAKRAT I VICKRAT :O)
- Incr Set_pos
- If Set_pos = 1 Then Set_pos = 2
- If Set_pos = 4 Then Set_pos = 5
- If Set_pos = 8 Then Set_pos = 2
- Set Refresh_bit
- End If
- If Set_pos = 2 Then
- If Tim_tl_ok = 20 Then
- Cista_min = Hladina_vody
- Disable Interrupts
- Minimum_ee = Cista_min
- Enable Interrupts
- Waitms 100
- Set_pos = 3
- End If
- Elseif Set_pos = 3 Then
- If Tim_tl_ok = 20 Then
- Cista_max = Hladina_vody
- Disable Interrupts
- Maximum_ee = Cista_max
- Enable Interrupts
- Waitms 100
- Set_pos = 5
- End If
- Elseif Set_pos = 5 Then
- If Tim_tl_ok = 20 Then
- Kalova_min = Hladina_kalove_vody
- Disable Interrupts
- Minimum_kalova_ee = Kalova_min
- Enable Interrupts
- Waitms 100
- Set_pos = 6
- End If
- Elseif Set_pos = 6 Then
- If Tim_tl_ok = 20 Then
- Kalova_max = Hladina_kalove_vody
- Disable Interrupts
- Maximum_kalova_ee = Kalova_max
- Enable Interrupts
- Waitms 100
- Set_pos = 7
- End If
- Elseif Set_pos = 7 Then
- If Tim_tl_ok = 20 Then
- Set Refresh_bit : Testovaci_rezim = 0 : Reset Menu_bit
- End If
- End If
- Elseif Menu_bit = 0 Then
- If Tim_tl_up = 20 Then
- Incr Strana
- If Strana > 6 Then Strana = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 Then
- Decr Strana
- If Strana = 0 Then Strana = 6
- Set Refresh_bit
- End If
- If Tim_tl_ok = 20 Then
- Tim_tl_ok = 21
- If Strana = 1 Then
- Elseif Strana = 2 Then
- Elseif Strana = 3 Then
- Elseif Strana = 4 Then
- Menu_pos = 1 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit
- Elseif Strana = 5 Then
- Menu_pos = 40 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit
- Elseif Strana = 6 Then
- Menu_pos = 20 : Set Menu_bit : Set_pos = 0 : Set Refresh_bit : Set Testovaci_rezim
- '' PRECHOD DO TESTOVACIHO REZIMU MUSI VYPNOUT VYSTUPY
- For I = 1 To 17
- Pwm_driver(i) = 0
- Next I
- End If
- End If
- End If
- End Sub
- Sub Read_inputs
- Ain_(1) = Getadc(0)
- Ain_(2) = Getadc(1)
- Ain_(3) = Getadc(2)
- Ain_(4) = Getadc(3)
- Ain_(5) = Getadc(4)
- Ain_(6) = Getadc(5)
- Ain_(7) = Getadc(6)
- Ain_(8) = Getadc(7)
- 'vzorky se pridaji postupne do pole promennych (max. 20 vzorku)
- Incr I2
- Pom_ain1(i2) = Ain_(1) : Pom_ain2(i2) = Ain_(2) : Pom_ain3(i2) = Ain_(3) : Pom_ain4(i2) = Ain_(4) : Pom_ain5(i2) = Ain_(5) : Pom_ain6(i2) = Ain_(6) : Pom_ain7(i2) = Ain_(7) : Pom_ain8(i2) = Ain_(8)
- 'jednotliva pole nabranych vzorku se sectou a vydeli poctem vzorku
- If Pocet_vzorku > 20 Then Pocet_vzorku = 20
- Pom_ain1(21) = 0 : Pom_ain2(21) = 0 : Pom_ain3(21) = 0 : Pom_ain4(21) = 0 : Pom_ain5(21) = 0 : Pom_ain6(21) = 0 : Pom_ain7(21) = 0 : Pom_ain8(21) = 0 :
- For I3 = 1 To Pocet_vzorku
- Pom_ain1(21) = Pom_ain1(21) + Pom_ain1(i3)
- Pom_ain2(21) = Pom_ain2(21) + Pom_ain2(i3)
- Pom_ain3(21) = Pom_ain3(21) + Pom_ain3(i3)
- Pom_ain4(21) = Pom_ain4(21) + Pom_ain4(i3)
- Pom_ain5(21) = Pom_ain5(21) + Pom_ain5(i3)
- Pom_ain6(21) = Pom_ain6(21) + Pom_ain6(i3)
- Pom_ain7(21) = Pom_ain7(21) + Pom_ain7(i3)
- Pom_ain8(21) = Pom_ain8(21) + Pom_ain8(i3)
- Next
- 'vypocet skutecne hodnoty zprumerovanim pole vzorku, vystup je cislo 0 - 1023
- If I2 = Pocet_vzorku Then
- I2 = 0
- '***vyveva otacky S1***napetovy
- '(
- Pom_single = Pom_ain1(21) / Pocet_vzorku
- Prevodnik(1) = Pom_single
- 'Pom_single = Pom_single - 164
- Vyveva_otacky = Pom_single / 1
- If Vyveva_otacky > 10000 Then Vyveva_otacky = 0
- If Vyveva_otacky < 0 Then Vyveva_otacky = 0
- ')
- '***tlak_oleje_vyveva S2***proudovy
- 'maximum 400baru, minimum 0
- 'maximum 818, minimum 164
- '654/400
- Pom_single = Pom_ain2(21) / Pocet_vzorku
- Prevodnik(2) = Pom_single
- Pom_single = Pom_single - 164
- Tlak_oleje_vyveva = Pom_single / 1.635
- If Tlak_oleje_vyveva > 10000 Then Tlak_oleje_vyveva = 0
- If Tlak_oleje_vyveva < 0 Then Tlak_oleje_vyveva = 0
- Pom_byte = Tlak_oleje_vyveva
- Call Prepocet_bytu(pom_byte , 1)
- '***teplota_vyveva_bimetal S3***napetovy
- Pom_single = Pom_ain3(21) / Pocet_vzorku
- Prevodnik(3) = Pom_single
- 'Pom_single = Pom_single - 162
- Teplota_vyveva = Pom_single / 1
- If Teplota_vyveva > 10000 Then Teplota_vyveva = 0
- If Teplota_vyveva < 0 Then Teplota_vyveva = 0
- Pom_byte = Teplota_vyveva
- Call Prepocet_bytu(pom_byte , 2)
- '*** pretlak_vyveva S4***proudovy
- Pom_single = Pom_ain4(21) / Pocet_vzorku
- Prevodnik(4) = Pom_single
- Pom_single = Pom_single - 164
- Pretlak_vyveva = Pom_single / 65.4
- If Pretlak_vyveva > 10000 Then Pretlak_vyveva = 0
- If Pretlak_vyveva < 0 Then Pretlak_vyveva = 0
- Pom_byte = Pretlak_vyveva
- Call Prepocet_bytu(pom_byte , 3)
- '*** podtlak_vyveva S5***proudovy
- '0 - 654 ==> 0 bar = 327
- Pom_single = Pom_ain5(21) / Pocet_vzorku
- Prevodnik(5) = Pom_single
- Pom_single = Pom_single - 164
- If Pom_single < 327 Then
- Pom_single = 0 - Pom_single
- Podtlak_vyveva = Pom_single / 327
- Elseif Pom_single > 327 Then
- Podtlak_vyveva = Pom_single / 327
- End If
- Pom_byte = Podtlak_vyveva
- Call Prepocet_bytu(pom_byte , 4)
- '*** tlak_vody_hrib S6***proudovy
- ' max 400bar
- Pom_single = Pom_ain6(21) / Pocet_vzorku
- Prevodnik(6) = Pom_single
- Pom_single = Pom_single - 164
- 'Tlak_vody_hrib = Pom_single / 1.92353
- Tlak_vody_hrib = Pom_single / 1.625
- If Tlak_vody_hrib > 10000 Then Tlak_vody_hrib = 0
- If Tlak_vody_hrib < 0 Then Tlak_vody_hrib = 0
- Pom_byte = Tlak_vody_hrib
- Call Prepocet_bytu(pom_byte , 5)
- ' hladina vody rutina:
- '
- '*** hladina_vody S7***proudovy
- 'dostavam hladinu v procentech
- Pom_single = Pom_ain7(21) / Pocet_vzorku
- Prevodnik(7) = Pom_single
- Pom_single = Pom_single - 164
- Hladina_vody = Pom_single / 6.54
- If Hladina_vody > 10000 Then Hladina_vody = 0
- If Hladina_vody < 0 Then Hladina_vody = 0
- '*** hladina_kalove_vody S8***proudovy
- Pom_single = Pom_ain8(21) / Pocet_vzorku
- Prevodnik(8) = Pom_single
- Pom_single = Pom_single - 164
- Hladina_kalove_vody = Pom_single / 6.54
- If Hladina_kalove_vody > 10000 Then Hladina_kalove_vody = 0
- If Hladina_kalove_vody < 0 Then Hladina_kalove_vody = 0
- '************prepocty********************'
- Vyveva_prepocet = Tlak_vyveva * 11.5
- Vyveva_prepocet = 950 + Vyveva_prepocet
- Vypocet_cista
- Vypocet_kalova
- End If
- End Sub
- Sub Vypocet_cista
- ' vypocet hladin vody + prepocet hladiny na procenta
- ' princip pro minimum vetsi nez maximum stejny, akorat se nakonci vysledna hodnota pocita odectenim od 100 %
- ' interval 100% se pocita jako rozdil maxima a minima, nasledne se spocita 1 dilek z intervalu 100% (cista_konst),
- ' kterym se nasledne deli aktualni hodnota hladiny vody. Od aktualni hladiny se jeste pred prepoctem na procenta odecte minimalni hodnota
- ' takto vypocitana aktualni hladina se pak, pokud je minimum vetsi nez maximum, odecita od "100%"
- ' pri nastaveni v rutine se hodnoty minima a maxima ukladaji do epromky
- If Cista_min > Cista_max Then
- Maximum = Cista_min
- Minimum = Cista_max
- Elseif Cista_max > Cista_min Then
- Maximum = Cista_max
- Minimum = Cista_min
- End If
- Cista_konst = Maximum - Minimum
- Cista_konst = Cista_konst / 100
- If Hladina_vody > Maximum Then
- Hladina_vody_prac = Maximum
- Else
- Hladina_vody_prac = Hladina_vody
- End If
- Pom_single = Hladina_vody_prac - Minimum
- Pom_single = Pom_single / Cista_konst
- Akt_cista = Pom_single
- If Cista_min > Cista_max Then
- Akt_cista = 100 - Akt_cista
- End If
- Pom_byte = Akt_cista
- If Akt_cista < 0 Then
- Akt_cista = 0
- End If
- Call Prepocet_bytu(pom_byte , 6)
- End Sub
- Sub Vypocet_kalova
- ' vypocet hladin vody + prepocet hladiny na procenta
- ' princip pro minimum vetsi nez maximum stejny, akorat se nakonci vysledna hodnota pocita odectenim od 100 %
- ' interval 100% se pocita jako rozdil maxima a minima, nasledne se spocita 1 dilek z intervalu 100% (kalova_konst),
- ' kterym se nasledne deli aktualni hodnota hladiny vody. Od aktualni hladiny se jeste pred prepoctem na procenta odecte minimalni hodnota
- ' takto vypocitana aktualni hladina se pak, pokud je minimum vetsi nez maximum, odecita od "100%"
- ' pri nastaveni v rutine se hodnoty minima a maxima ukladaji do epromky
- If Kalova_min > Kalova_max Then
- Maximum_kalova = Kalova_min
- Minimum_kalova = Kalova_max
- Elseif Kalova_max > Kalova_min Then
- Maximum_kalova = Kalova_max
- Minimum_kalova = Kalova_min
- End If
- Kalova_konst = Maximum_kalova - Minimum_kalova
- Kalova_konst = Kalova_konst / 100
- If Hladina_kalove_vody < Minimum_kalova Then
- Hladina_kalove_vody_prac = Minimum_kalova
- Elseif Hladina_kalove_vody > Maximum_kalova Then
- Hladina_kalove_vody_prac = Maximum_kalova
- Else
- Hladina_kalove_vody_prac = Hladina_kalove_vody
- End If
- Pom_single = Hladina_kalove_vody - Minimum_kalova
- Pom_single = Pom_single / Kalova_konst
- Akt_kalova = Pom_single
- If Kalova_min > Kalova_max Then
- Akt_kalova = 100 - Akt_kalova
- End If
- If Akt_kalova < 0 Then
- Akt_kalova = 0
- End If
- Pom_byte = Akt_kalova
- Call Prepocet_bytu(pom_byte , 7)
- End Sub
- Sub Send_outputs
- If Vyveva_pwm = 1 Then
- Pwm_driver(1) = Vyveva_prepocet
- Else
- Pwm_driver(1) = 0
- End If
- If Vyveva_sani = 1 Then
- Pwm_driver(2) = 4095
- Else
- Pwm_driver(2) = 0
- End If
- If Vystlak_cerpadlo = 1 Then 'vystlak ecerpadlo spojka'
- Pwm_driver(3) = 4095
- Else
- Pwm_driver(3) = 0
- End If
- If Vyveva_odvetrani = 1 Then
- Pwm_driver(4) = 4095
- Else
- Pwm_driver(4) = 0
- End If
- If Ventil_kalova_1 = 1 Then
- Pwm_driver(5) = 4095
- Else
- Pwm_driver(5) = 0
- End If
- If Ventil_zac_kaly_2 = 1 Then
- Pwm_driver(6) = 4095
- Else
- Pwm_driver(6) = 0
- End If
- If Ventil_cista_2 = 1 Then
- Pwm_driver(7) = 4095
- Else
- Pwm_driver(7) = 0
- End If
- If Ventil_horni_kaly_3 = 1 Then
- Pwm_driver(8) = 4095
- Else
- Pwm_driver(8) = 0
- End If
- If Ventil_reg_hrib = 1 Then
- Pwm_driver(9) = 4095
- Else
- Pwm_driver(9) = 0
- End If
- If Ventil_dn13 = 1 Then
- Pwm_driver(10) = 4095
- Else
- Pwm_driver(10) = 0
- End If
- If Ventil_dn25 = 1 Then
- Pwm_driver(11) = 4095
- Else
- Pwm_driver(11) = 0
- End If
- If Cis_hruby_filtr = 1 Then
- Pwm_driver(12) = 4095
- Else
- Pwm_driver(12) = 0
- End If
- If Klapka_nap_cista = 1 Then
- Pwm_driver(13) = 4095
- Else
- Pwm_driver(13) = 0
- End If
- If Klapka_nap_kalova = 1 Then
- Pwm_driver(14) = 4095
- Else
- Pwm_driver(14) = 0
- End If
- If Klapka_ovldaci_pro_f = 1 Then
- Pwm_driver(15) = 4095
- Else
- Pwm_driver(15) = 0
- End If
- If Soupe_dolni = 1 Then
- Pwm_driver(16) = 4095
- Else
- Pwm_driver(16) = 0
- End If
- If Soupe_horni = 1 Then
- Out17 = 1
- Else
- Out17 = 0
- End If
- If Auto_stop = 1 Then
- Out18 = 1
- Else
- Out18 = 0
- End If
- If Otacky_plus = 1 And Otacky_minus = 0 Then
- Out19 = 1
- Else
- Out19 = 0
- End If
- If Otacky_minus = 1 And Otacky_plus = 0 Then
- Out20 = 1
- Else
- Out20 = 0
- End If
- End Sub
- Sub Tlacitka_menu1
- If Tim_tl_up = 20 And Set_pos = 0 Then
- Tim_tl_up = 21
- Incr Menu_pos
- If Menu_pos = 18 Then Menu_pos = 1
- Set Refresh_bit
- Elseif Tim_tl_down = 20 And Set_pos = 0 Then
- Tim_tl_down = 21
- Decr Menu_pos
- If Menu_pos = 0 Then Menu_pos = 17
- Set Refresh_bit
- End If
- End Sub
- Sub Send_pwm
- For I = 1 To 16
- Ii = 17 - I
- 'vypocet hodnoty v intervalu
- If Pwm_out(i) = 0 Then
- Outp(ii) = 0
- Else
- Pomw1 = Oute(ii) - Outb(ii) ''vypocet poctu dilku regulacni oblasti ventilu
- If Pomw1 < 256 Then Pomw1 = 256 'korekce
- Pomw2 = Pomw1 / 4096 'urceni velikosti noveho dilku
- Pomw3 = Pwm_out(i) * Pomw2
- Outp(ii) = Pomw3 + Outb(ii)
- End If
- I2cstart '' Start
- I2cwbyte &B10000000
- Pombyte = I * 4
- Pombyte = Pombyte + 2
- I2cwbyte Pombyte '' select slected LED address
- I2cwbyte 0 : I2cwbyte 0
- Pombyte = Low(outp(ii)) : I2cwbyte Pombyte '' LED_OFF_L
- Pombyte = High(outp(ii)) : I2cwbyte Pombyte '' LED_OFF_H
- I2cstop
- Waitus 10
- Next I
- End Sub
- Sub Cls_:
- Cls
- Setfont Font8x8
- Lcdat 1 , 125 , " ";
- Lcdat 3 , 125 , " ";
- Lcdat 5 , 125 , " ";
- Lcdat 7 , 125 , " ";
- End Sub
- 'Otacky_vyveva = Vyveva_rpm
- Sub Strana1
- Setfont Font8x8
- '(
- Lcdat 8 , 1 , "1: M20-MASTER/VSTUPY " , 1
- Lcdat 1 , 1 , "In1: " ; Akt_cista ; " "
- Lcdat 2 , 1 , "In2: " ; Hladina_vody ; " "
- Lcdat 3 , 1 , "In3: " ; Hladina_vody_prac ; " "
- Lcdat 4 , 1 , "In4: " ; Cista_min ; " "
- Lcdat 1 , 64 , "In5: " ; Cista_max ; " "
- Lcdat 2 , 64 , "In6: " ; Minimum ; " "
- Lcdat 3 , 64 , "In7: " ; Maximum ; " "
- Lcdat 4 , 64 , "In8: " ; Prevodnik(8) ; " "
- Lcdat 6 , 1 , " ciste hodnoty z A/D"
- ')
- Lcdat 8 , 1 , "1: M20-MASTER/VSTUPY " , 1
- Lcdat 1 , 1 , "In1: " ; Prevodnik(1) ; " "
- Lcdat 2 , 1 , "In2: " ; Prevodnik(2) ; " "
- Lcdat 3 , 1 , "In3: " ; Prevodnik(3) ; " "
- Lcdat 4 , 1 , "In4: " ; Prevodnik(4) ; " "
- Lcdat 1 , 64 , "In5: " ; Prevodnik(5) ; " "
- Lcdat 2 , 64 , "In6: " ; Prevodnik(6) ; " "
- Lcdat 3 , 64 , "In7: " ; Prevodnik(7) ; " "
- Lcdat 4 , 64 , "In8: " ; Prevodnik(8) ; " "
- Lcdat 6 , 1 , " ciste hodnoty z A/D"
- End Sub
- Sub Strana2
- Setfont Font8x8
- Lcdat 8 , 1 , "2: M20-MASTER/VYST.1 " , 1
- Lcdat 1 , 1 , "Out1: " ; Pwm_driver(1) ; " "
- Lcdat 2 , 1 , "Out2: " ; Pwm_driver(2) ; " "
- Lcdat 3 , 1 , "Out3: " ; Pwm_driver(3) ; " "
- Lcdat 4 , 1 , "Out4: " ; Pwm_driver(4) ; " "
- Lcdat 5 , 1 , "Out5: " ; Pwm_driver(5) ; " "
- Lcdat 1 , 64 , "Out6: " ; Pwm_driver(6) ; " "
- Lcdat 2 , 64 , "Out7: " ; Pwm_driver(7) ; " "
- Lcdat 3 , 64 , "Out8: " ; Pwm_driver(8) ; " "
- Lcdat 4 , 64 , "Out9: " ; Pwm_driver(9) ; " "
- Lcdat 5 , 64 , "Out10: " ; Pwm_driver(10) ; " "
- End Sub
- Sub Strana3
- Setfont Font8x8
- Lcdat 8 , 1 , "3: M20-MASTER/VYST.2 " , 1
- Lcdat 1 , 1 , "Out11: " ; Pwm_driver(11) ; " "
- Lcdat 2 , 1 , "Out12: " ; Pwm_driver(12) ; " "
- Lcdat 3 , 1 , "Out13: " ; Pwm_driver(13) ; " "
- Lcdat 4 , 1 , "Out14: " ; Pwm_driver(14) ; " "
- Lcdat 5 , 1 , "Out15: " ; Pwm_driver(15) ; " "
- Lcdat 1 , 64 , "Out16: " ; Pwm_driver(16) ; " "
- Lcdat 2 , 64 , "Out17: " ; Out17 ; " " '/vystupy 17 - 20 jsou ovladane primo z procesoru - tudiz nejsou pwm!
- Lcdat 3 , 64 , "Out18: " ; Out18 ; " "
- Lcdat 4 , 64 , "Out19: " ; Out19 ; " "
- Lcdat 5 , 64 , "Out20: " ; Out20 ; " "
- End Sub
- Sub Strana4
- Setfont Font8x8
- Lcdat 8 , 1 , "4: M20-MASTER/NAST.VYST " , 1
- Lcdat 6 , 1 , "LIMITY PWM,RAMPY.."
- Setfont My12d
- Lcdat 1 , 1 , "NASTAVIT"
- Lcdat 3 , 1 , "VYSTUPY?"
- End Sub
- Sub Strana5
- Setfont Font8x8
- Lcdat 8 , 1 , "5: M20-MASTER/NST.HLADINY " , 1
- Setfont My12d
- Lcdat 1 , 1 , "NASTAVIT"
- Lcdat 3 , 1 , "SNIMACE"
- Lcdat 5 , 1 , "HLADIN?"
- End Sub
- Sub Strana6
- Setfont Font8x8
- Lcdat 8 , 1 , "6: M20-MASTER/TEST " , 1
- Lcdat 6 , 1 , "TEST OVL. PRVKU"
- Setfont My12d
- Lcdat 1 , 1 , "TEST"
- Lcdat 3 , 1 , "VYSTUPU "
- End Sub
- Sub Sest_obr_spinacu
- '*****************SESTAVENI OBRAZU STAVU TLACITEK**********
- If Mbuf_tl(2) = 2 Then
- Vak_cerp_on_off = M(40).1 'M(51).1
- Tlacitka_1.0 = Vak_cerp_on_off
- Vak_cerp_sani = M(40).2
- Tlacitka_1.1 = Vak_cerp_sani
- Vak_cerp_vytlak = M(40).3
- Tlacitka_1.2 = Vak_cerp_vytlak
- Vak_cerp_soupe_spodni = M(40).4
- Tlacitka_1.3 = Vak_cerp_soupe_spodni
- Vak_cerp_soupe_horni = M(40).5
- Tlacitka_1.4 = Vak_cerp_soupe_horni
- End If
- If Mbuf_tl(2) = 3 Then
- Vystlak_cerp_on_off = M(44).1
- Tlacitka_1.5 = Vystlak_cerp_on_off
- Vystlak_cerp_kohout_dn13 = M(44).2
- Tlacitka_1.6 = Vystlak_cerp_kohout_dn13
- Vystlak_cerp_kohout_dn25_32 = M(44).3
- Tlacitka_1.7 = Vystlak_cerp_kohout_dn25_32
- Vystlak_cerp_hadice_dn13 = M(44).4
- Tlacitka_1.8 = Vystlak_cerp_hadice_dn13
- Vystlak_cerp_hadice_dn25_32 = M(44).5
- Tlacitka_1.9 = Vystlak_cerp_hadice_dn25_32
- Vystlak_cerp_tlak_on_off = M(44).6
- Tlacitka_1.10 = Vystlak_cerp_tlak_on_off
- End If
- If Mbuf_tl(2) = 4 Then
- Recyklace_upr_vody = M(48).1
- Tlacitka_2.0 = Recyklace_upr_vody
- Recyklace_cist_hrub_filtr = M(48).2
- Tlacitka_2.1 = Recyklace_cist_hrub_filtr
- Recyklace_cist_cyklon = M(48).3
- Tlacitka_2.2 = Recyklace_cist_cyklon
- Recyklace_odcerp_kal = M(48).4
- Tlacitka_2.3 = Recyklace_odcerp_kal
- End If
- If Mbuf_tl(2) = 5 Then
- Zavodneni_90s = M(52).1
- Tlacitka_2.4 = Zavodneni_90s
- Zavodneni_majak = M(52).2
- Tlacitka_2.5 = Zavodneni_majak
- Zavodneni_svetlo = M(52).3
- Tlacitka_2.6 = Zavodneni_svetlo
- Zavodneni_radio = M(52).4
- Tlacitka_2.7 = Zavodneni_radio
- End If 'M(54).4
- '' WORDY PREDAVANE SLEJVU A DISPLEJI
- '(
- Tlacitka_1.0 = M(51).1 : Tlacitka_1.1 = M(51).2 : Tlacitka_1.2 = M(51).3 : Tlacitka_1.3 = M(51).4 : Tlacitka_1.4 = M(51).5
- Tlacitka_1.5 = M(52).1 : Tlacitka_1.6 = M(52).2 : Tlacitka_1.7 = M(52).3 : Tlacitka_1.8 = M(52).4 : Tlacitka_1.9 = M(52).5 : Tlacitka_1.10 = M(52).6 :
- Tlacitka_2.0 = M(53).1 : Tlacitka_2.1 = M(53).2 : Tlacitka_2.2 = M(53).3 : Tlacitka_2.3 = M(53).4:
- Tlacitka_2.4 = M(54).1 : Tlacitka_2.5 = M(54).2 : Tlacitka_2.6 = M(54).3 : Tlacitka_2.7 = M(54).4
- ')
- '(
- Tlacitka_1.0 = 1 : Tlacitka_1.1 = 1 : Tlacitka_1.2 = 1 : Tlacitka_1.3 = 1 : Tlacitka_1.4 = 1
- Tlacitka_1.5 = 1 : Tlacitka_1.6 = 1 : Tlacitka_1.7 = 1 : Tlacitka_1.8 = 1 : Tlacitka_1.9 = 1 : Tlacitka_1.10 = 1
- Tlacitka_2.0 = 1 : Tlacitka_2.1 = 1 : Tlacitka_2.2 = 1 : Tlacitka_2.3 = 1:
- Tlacitka_2.4 = 1 : Tlacitka_2.5 = 1 : Tlacitka_2.6 = 1 : Tlacitka_2.7 = 1
- ')
- End Sub
- Tim0_int:
- '' CASOVANI KOMUNINACE SLAVE1[ADRESA1] / DISPLEJ[ADRESA2]
- If Automat = 1 Then
- If Otacky_uber = 1 Or Otacky_pridej = 1 Then
- Incr Zmena_otacek_time
- Else
- Zmena_otacek_time = 0
- End If
- End If
- If Automat = 1 And Cteni_otacek_time > 0 Then
- Incr Cteni_otacek_time
- End If
- If Recyklace_cist_hrub_filtr = 1 And Recyklace_funkce = 0 And Cist_hrub_filtru_time < 1000 Then
- Incr Cist_hrub_filtru_time
- End If
- Incr Comm_period
- If Comm_period = 50 Then
- Vysilej = 1 : Slave = 1
- Elseif Comm_period = 100 Then
- Vysilej_tlacitka = 1
- Elseif Comm_period = 150 Then
- Vysilej = 1 : Slave = 2
- Elseif Comm_period = 200 Then
- Vysilej_tlacitka = 1
- Comm_period = 0
- End If
- '' CASOVANI KOMUNIKACE NA DRUHEM PORTU - DESKY SE SPINACI
- Incr Comm_period_tlacitka
- If Comm_period_tlacitka = 80 Then
- '' KOLECKO ADERS SLEJVU SE RESI PRED VYSLANIM POZADAVKU
- Comm_period_tlacitka = 0
- End If
- '' CASOVANI FUNKCNOSTI TLACITEK ZDE SE NASTAVI JEN BIT PROUCHODU CASOVACEM A OSTATNI SE RESI V HLAVNI PROG SMYCCE
- Set Bit_time
- '' CASOVANI NACITANI ANALOGOVYCH VSTUPU
- Incr Ad_time
- If Ad_time = 20 Then
- Ad_time = 0 : Ad_bit = 1
- End If
- '' CASOVANI NASTAVOVANI VYSTUPU - 50MS
- Incr Time_out_pom
- If Time_out_pom = 16 Then
- Time_out_pom = 0 : Set Refresh_out
- End If
- '' CASOVANI REFRESH DISPLEJE - ZAKLAD JE 2 SEKUNDY PRO KONTROLNI OBRAZY, U NASTAVOVACICH REFR. VYVOLAVAJI I TLACITKA
- ''If Tim1 = 375 Then
- If Tim1 < 1000 Then Incr Tim1 'casova zakladna 1 sekunda
- If Tim1 = 110 Then
- Tim1 = 0
- If Strana = 1 Or Strana = 2 Or Strana = 3 Or Menu_pos = 40 Then Set Refresh_bit
- End If
- Incr Tim2
- If Tim2 = 375 Then
- Tim2 = 0
- Otacky_vyveva = Vyveva_rpm / 34
- Prevodnik(1) = Vyveva_rpm
- Otacky_vyveva = Otacky_vyveva * 60
- Vyveva_rpm = 0
- Pom_byte = Otacky_vyveva
- Call Prepocet_bytu(pom_byte , 0)
- End If
- If Recyklace_upr_vody = 1 Then
- If Recyklace_time < 700 Then Incr Recyklace_time
- If Recyklace_time = 200 Then
- Recyklace_time = 0
- If Recyklace_1sec < 10 Then
- Incr Recyklace_1sec
- If Recyklace_1sec > 6 Then
- Recyklace_1sec = 15
- End If
- End If
- End If
- End If
- '(
- If Recyklace_cist_hrub_filtr = 1 Then
- If Recyklace_time < 700 Then Incr Recyklace_time
- If Recyklace_time = 200 Then
- Recyklace_time = 0
- If Recyklace_1sec < 7 Then
- Incr Recyklace_1sec
- If Recyklace_1sec > 5 Then
- Recyklace_1sec = 10
- End If
- End If
- End If
- End If
- ')
- If Recyklace_cist_cyklon = 1 Then
- Incr Recyklace_cist_cyklon_time
- If Recyklace_cist_cyklon_time = 375 Then
- If Cisteni_cyklonu_time < 15 Then Incr Cisteni_cyklonu_time
- Recyklace_cist_cyklon_time = 0
- If Cisteni_cyklonu_time > 9 Then
- Cisteni_cyklonu_time = 20
- End If
- End If
- End If
- If Space_time_tl < 600 Then Incr Space_time_tl
- If Space_time_tl > 500 Then Index_tl = 0
- If Space_time < 600 Then Incr Space_time
- If Space_time > 600 Then Index = 0 : Index_d = 0 ''cca 3,23 * 3ms = 9,75
- If Nodata_time < 500 Then
- Incr Nodata_time
- End If
- Incr Tim_ramp
- If Tim_ramp = 5 Then ''
- Tim_ramp = 0
- For Index_ramp = 1 To 16
- Index3 = 17 - Index_ramp
- If Ramp_on(index_ramp) = 0 And Ramp_off(index_ramp) = 0 Then
- Pwm_out(index3) = Pwm_driver(index_ramp)
- Else
- If Pwm_out(index3) < Pwm_driver(index_ramp) Then
- Pwm_krok(index_ramp) = 1010 / Ramp_on(index_ramp)
- Pwm_out_integer(index_ramp) = Pwm_out_integer(index_ramp) + Pwm_krok(index_ramp)
- If Pwm_out_integer(index_ramp) > Pwm_driver(index_ramp) Then
- Pwm_out_integer(index_ramp) = Pwm_driver(index_ramp)
- End If
- Pwm_out(index3) = Pwm_out_integer(index_ramp)
- Elseif Pwm_out(index3) > Pwm_driver(index_ramp) Then
- Pwm_krok(index_ramp) = 1010 / Ramp_off(index_ramp)
- Pwm_out_integer(index_ramp) = Pwm_out_integer(index_ramp) - Pwm_krok(index_ramp)
- If Pwm_out_integer(index_ramp) < Pwm_driver(index_ramp) Then
- Pwm_out_integer(index_ramp) = Pwm_driver(index_ramp)
- End If
- Pwm_out(index3) = Pwm_out_integer(index_ramp)
- End If
- End If
- Next Index_ramp
- End If
- Return
- Urxc_isr:
- Disable Interrupts
- Modt_tl = Inkey(#1)
- 'Pwm_driver(1) = 4095
- If Index_tl = 0 Then
- ''JAKA PRISLA ADRESA SKUPINY ?
- 'Pwm_driver(2) = 4095
- If Modt_tl = 10 Then
- 'Pwm_driver(3) = 4095
- Index_tl = Index_tl + 1 'increase the buffer counter
- Mbuf_tl(1) = Modt_tl
- 'store address in location 1
- End If
- Else
- 'Pwm_driver(4) = 4095
- Index_tl = Index_tl + 1 : Mbuf_tl(index_tl) = Modt_tl ''INDEX 2 = ADRESA SLEJVA PO KTEREM CHCEME ODPOVED
- If Index_tl = 4 Then
- 'Pwm_driver(5) = 4095
- ''NA TRETI POZICI JE ULOZEN POCET WORDU
- Buf_long_tl = 2 * Mbuf_tl(4) ''- PREPOCITAME NA BYTE
- Buf_long_tl = 6 + Buf_long_tl ''A SECTEME S UVODNI CASTI A DVEMA BYTE CRC
- End If
- If Index_tl = Buf_long_tl Then
- '' JAKMILE JE HOTOVO
- 'Pwm_driver(6) = 4095
- Index_tl = 0
- If Mbuf_tl(2) = 2 Or Mbuf_tl(2) = 3 Or Mbuf_tl(2) = 4 Or Mbuf_tl(2) = 5 Then
- Data_prijata_tlacitka = 1
- 'pwm_driver(7) = 4095
- End If
- '' SESTAVIME PAK PRICHOZI DATA V CYKLU PROGRAMU
- Nodata_time_tl = 0 'Print #1 , "HURA: "
- End If
- End If
- Space_time_tl = 0
- Enable Interrupts
- Return
- Urxc_isr1: ' komunikace s displejem
- Modt = Inkey(#2)
- If Index = 0 Then
- If Modt = Skupina Then
- Index = Index + 1 'increase the buffer counter
- Mbuf(1) = Modt 'store address in location 1
- End If
- Else
- Index = Index + 1 : Mbuf(index) = Modt ''INDEX 2 = ADRESA SLEJVA PO KTEREM CHCEME ODPOVED
- If Index = 4 Then
- ''NA TRETI POZICI JE ULOZEN POCET WORDU
- Buf_long = 2 * Mbuf(4) ''- PREPOCITAME NA BYTE
- Buf_long = 6 + Buf_long ''A SECTEME S UVODNI CASTI A DVEMA BYTE CRC
- End If
- If Index = Buf_long Then
- '' JAKMILE JE HOTOVO
- Index = 0
- If Mbuf(2) = 1 Or Mbuf(2) = 2 Then
- Data_prijata = 1
- End If
- '' SESTAVIME PAK PRICHOZI DATA V CYKLU PROGRAMU
- Nodata_time = 0 'Print #1 , "HURA: "
- End If
- End If
- Space_time = 0
- Return
- 'Int4_int:
- ' Incr Vyveva_rpm
- 'Return
- End
- Sub Zmena_otacek(byval Jak As Byte)
- End Sub
- Sub Prepocet_bytu(byval Bytebyte As Byte , Byval Prepocet_bytu_num As Byte)
- If Prepocet_bytu_num = 0 Then
- For Pt = 0 To 7
- Word1.pt = Bytebyte.pt
- Next
- End If
- If Prepocet_bytu_num = 1 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word1.ptx = Bytebyte.pt
- Next
- End If
- If Prepocet_bytu_num = 2 Then
- For Pt = 0 To 7
- Word2.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 3 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word2.ptx = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 4 Then
- For Pt = 0 To 7
- Word3.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 5 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word3.ptx = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 6 Then
- For Pt = 0 To 7
- Word4.pt = Bytebyte.pt
- Next
- Elseif Prepocet_bytu_num = 7 Then
- For Pt = 0 To 7
- Ptx = Pt + 8
- Word4.ptx = Bytebyte.pt
- Next
- End If
- End Sub
- Sub Prepocet_na_word(byval Word_poz As Word )
- For X = 0 To 7
- Otacky_motoru.x = Word_poz.x
- Next
- End Sub
- Logostep:
- $bgf "logostep.bgf"
- $include "font8x8.font"
- $include "my12D.font"
- $include "100.font"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement