Udr8: Rs_pack_b8=Udr9: Rs_pack_b9= UdrSelect: Incr Buf_cntr
- цикл розгалуження розміщення пакета даних в буфер FIFO.
If Buf_cntr=9 Then: If Buf2_full=1 Then: Reset R2s: End If: End IfRs_pack_b0=Ip Then: Reset Buf_ip_err: Else: Set Buf_ip_err: Print Ip; ; 128; ; 4; Buf_Ip_err Buf_cntr: Goto 3: End IfBuf_cntr=10 Then: Set Buf1_full: Reset R2s: Else: Goto 3: End IfRs_pack_b9=13 Then: Reset Buf_err_entr: Set Buf_entr: _buf0=Rs_pack_b1: Rs_buf1=Rs_pack_b2: Rs_buf2=Rs_pack_b3_buf3= Rs_pack_b4: Rs_buf4=Rs_pack_b5: Rs_buf5=Rs_pack_b6: Rs_buf6=Rs_pack_b7: Rs_buf7=Rs_pack_b8: Rs_buf8=Rs_pack_b9Buf2_full: Reset Buf1_full: Reset Buf_cntr: Set R2s :: Set Buf_err_entr: Reset Buf_cntrIp; ; Chr (139); ; 6; Buf_entr_err :End If:
- цикл, що містить алгоритм перевірки помилок в пакеті прийнятих даних.
:
Return
Dta1:
Data 0, 31, 28, 31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
таблиця, що містить кількість днів у році.
Set_time: - мітка початку підпрограми установки дати і поточного часу по каналу УСАПП.
Year_lo=Rs_buf1: Month=Rs_buf2: Dat_weak=Rs_buf3: Dat=Rs_buf4: Hour=Rs_buf5: Minute=Rs_buf6=Rs_buf7: Reset Buf2_full: Reset Rs_time_err: Year=Year_lo + 2000: Year2=YearYear gt ; 2 099 Then: Set Rs_time_err: Year=2100: End If: If Month gt; 12 Then: Set Rs_time_err: Month=12: End IfDat gt; 32 Then: Set Rs_time_err: Dat=32: End If: If Hour gt; 23 Then: Set Rs_time_err: Hour=23: End IfMinute gt; 59 Then: Set Rs_time_err: Minute=59: End If: If Dat_weak gt; 7 Then: Dat_weak=7: Set Rs_time_err: End If=Year: Month2=Month: Dat2=Dat: Hour2=Hour: Minute2=Minute
алгоритм виявлення явних ошібокIp; ; Chr (139); ; 9; Rs_time_err :Goto 4_time: - мітка початку підпрограми зчитування дати і поточного часу по каналу УСАПП.
Print Ip; ; Year; ; Month; ; Dat_weak; ; Dat; ; Hour; ; Minute; ; Second: Goto 4_comm: -вибір команди роботи з осцилограмами.
Select Case Rs_buf1
Case 1: -отправляет номер останньої записаної осцилограми
Print Ip; ; Osc_num; ; Fl_err_cntr: Print Ip; ; Chr (139); ; 14_1 :Goto 4 лютого: -сбросіть лічильник осцилограм в нуль.
Osc_num2=0: Fl_err_cntr=0: Print Ip; ; Chr (139); ; 14_2 :Goto 4 березня: - запит на відправлення даних осцилограми.
Osc_cntr=Rs_buf2: P_cntr=Osc_cntr * 4: Set Ser_osc_stIp; ; Chr (139); ; 14_3 ; Osc_cntr: Call Transf_osc (): Goto 4 4 -запуск записи оціллограмми по УСАПП
Print Ip; ; Chr (139); ; 14_4 :Call Osc (): Goto 4Else: Goto 4Select4_lcd: -подпрограмма установки розміру РКІ.
Lcd_size=Rs_buf1: Reset Buf2_full: Lcd_size2=Lcd_size: Print Lcd_conf ; Lcd_size 4
Int0_int - мітка вектора зовнішнього переривання
Sub Osc (): -мітки підпрограми записи осцилограми.
Incr Osc_num: Osc_num2=Osc_num: C2s: Disable InterruptsSer_osc_st=0 Then: Print Ip; ; Chr (139); ; 14_5 ; ; Chr (139)
: Else: Reset Ser_osc_st: End If_cnt=0: For Buf_num=1 To 4: Вся осцилограма поділена на 4 сторінки.
Select Case Buf_num -