Changes for page API контроллеров AZ®
Last modified by Max on 2025/03/02 15:18
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -780,29 +780,29 @@ 780 780 Command code 032, this command sends the contents of the timestamp buffer to the bus 781 781 782 782 {{code language="assembler"}} 783 -; работасчасами784 -; trap 60 - чтениеданныхчасовизTCP/IPстека785 -; R3 - адресбуферакуданадосчитать786 -; результатвR3адрес,еслиуспешно. R3=0если ошибка783 +; working with clock 784 +; trap 60 - reading clock data from TCP/IP stack 785 +; R3 - buffer address where to read 786 +; result in R3 address if successful. R3=0 if error 787 787 GetDateFromLAN: push R0 788 788 push R1 789 789 push R2 790 - call AZreset; сбросим790 + call AZreset; reset 791 791 tst R1 792 792 bne G60ERR 793 793 MOV #AZ$CSR,R1 794 794 mov #42,(R1) 795 -G60: TSTB (R1); проверяемрезультатвыполнения796 - BPL G60; ждем795 +G60: TSTB (R1); check execution result 796 + BPL G60; wait 797 797 mov #32,(R1) 798 -1$: TSTB (R1); проверяемрезультатвыполнения798 +1$: TSTB (R1); check execution result 799 799 BPL 1$; ждем 800 - TST (R1)+; инкрементируем801 - mov R3,R0; запомнимR3- адрес802 - mov #10.,R2; читаем10слов803 -2$: mov (R1),(R3)+; читаемблоксловвпамять800 + TST (R1)+; increment 801 + mov R3,R0; remember R3 address 802 + mov #10.,R2; read 10 words 803 +2$: mov (R1),(R3)+; read block of words into memory 804 804 sob R2,2$ 805 - mov R0,R3; успешно,вернемадресвR3805 + mov R0,R3; successful, return address to R3 806 806 br 0END$ 807 807 G60ERR: CLR R3 808 808 0END$: pop R2 ... ... @@ -811,11 +811,11 @@ 811 811 return 812 812 {{/code}} 813 813 814 - Стоитпроверитькорректностьполученноговремени:814 +It is worth checking the correctness of the received time: 815 815 816 816 {{code language="assembler"}} 817 -; trap 63 - проверкакорректностивремени818 -; R3 - адресбуфера,результатвR3,еслиадресбуфератоOK, =0ошибка817 +; trap 63 - check time correctness 818 +; R3 - buffer address, result in R3, if buffer address then OK, =0 error 819 819 CheckDateTime: Cmp 6(r3),#2021. 820 820 Blos 1err 821 821 Cmp 6(r3),#2100. ... ... @@ -825,94 +825,94 @@ 825 825 return 826 826 {{/code}} 827 827 828 -== **033:Записьвремени-датывбуферSimpleIN**==828 +== 033: Write time-date to SimpleIN buffer == 829 829 830 - Кодкоманды033,даннаякомандапринимаетсшиныданныевбуферSimpleIN830 +Command code 033, this command receives data from the bus into the SimpleIN buffer 831 831 832 - Работаданнойкомандыаналогичнаработе команд [[023>>doc:||anchor="H023:41F44043843D44F44244C44144843843D44B43243144344443544043443043D43D44B43543443B44F43F43E44143B43543444344E44943543943743043F438441438432431443444435440"]]и[[016>>doc:||anchor="H016:A041F44043843D44F44244C43143B43E43A43443043D43D44B445432431443444435440"]].832 +The operation of this command is similar to the operation of commands 023 and 016. 833 833 834 -== **034:УстановкаRTCнаоснованииданныхизбуфера**==834 +== 034: Set RTC based on buffer data == 835 835 836 - Кодкоманды034,даннаякомандаустанавливаетRTCнаоснованииданныхвбуфереSimpleIN836 +Command code 034, this command sets the RTC based on the data in the SimpleIN buffer 837 837 838 - Даннаякомандавыполняетсябыстро,нодляисключенияпроблемцикложиданиявыполнениярекомендуется.838 +This command executes quickly, but to avoid problems, a wait loop is recommended. 839 839 840 -== **035:СтимуляциязапросавременисNTPсервера,установканаоснованииответа**==840 +== 035: Stimulate time request from NTP server, set based on response == 841 841 842 - Кодкоманды035,даннаякомандаотправляетзапроснаNTPcервер(установленныйвAZ.INIфайлеилиполученныйотDHCP)иустанавливаетчасывстекеTCP/IP.842 +Command code 035, this command sends a request to the NTP server (set in the AZ.INI file or received from DHCP) and sets the clock in the TCP/IP stack. 843 843 844 - Примерпрограммы:отсылказапросанаустановкувременисNTPсервера844 +Example program: sending a request to set the time from an NTP server 845 845 846 846 {{code language="assembler"}} 847 -; trap 62 - отсылказапросанаустановкувременисNTPсервера847 +; trap 62 - sending a request to set the time from the NTP server 848 848 GetDateNTPtoNET:push R1 849 - call AZreset; сбросим849 + call AZreset; reset 850 850 tst R1 851 851 bne 0ERR$ 852 852 MOV #AZ$CSR,R1 853 853 mov #35,(R1) 854 -0$: TSTB (R1); проверяемрезультатвыполнения855 - BPL 0$; ждем854 +0$: TSTB (R1); check the result of execution 855 + BPL 0$; wait 856 856 0ERR$: pop R1 857 857 return 858 858 {{/code}} 859 859 860 - Выполнениекомандызанимает1-2секундывсреднем.ДаннаякомандатребуетработыстекаTCP/IP,соответственнонужныциклыожиданияпривключенномстеке.860 +The command execution takes 1-2 seconds on average. This command requires the TCP/IP stack to work, so waiting cycles are needed when the stack is enabled. 861 861 862 - Примерциклаопросасцельюполучитьвремяссети862 +An example of a polling cycle to get time from the network 863 863 864 864 {{code language="assembler"}} 865 -; дата-время865 +; date-time 866 866 mov #S_DateTime_0,R3; "Lan Date:" 867 867 trap 10 868 - mov #20,R4; количествоцикловожидания869 -$datry: trap 62; отослализапроскNTPсерверу870 - mov #110,@#AZ$CSR; включимсеть871 - trap 47; ожидание872 - trap 47; ожидание868 + mov #20,R4; number of wait cycles 869 +$datry: trap 62; sent a request to the NTP server 870 + mov #110,@#AZ$CSR; enable the network 871 + trap 47; waiting 872 + trap 47; waiting 873 873 mov #ADRTMPSTR,R3 874 - trap 60; считаливбуфер дату-время875 - trap 63; проверилидату-время874 + trap 60; read the date-time into the buffer 875 + trap 63; checked the date-time 876 876 tst R3 877 877 bne $ok 878 878 $sob: sob R4,$datry 879 - mov #S_DateTime_2,R3; печатьошибки879 + mov #S_DateTime_2,R3; print error 880 880 trap 7 881 881 br $go 882 882 883 883 $ok: mov #ADRTMPSTR,R3 884 - trap 24; печатьдаты885 - trap 25; времени886 -$go: mov #110,@#AZ$CSR; включимсеть884 + trap 24; print date 885 + trap 25; time 886 +$go: mov #110,@#AZ$CSR; let's turn on the network 887 887 {{/code}} 888 888 889 - ТутмыявноотсылаемзапроскNTPсерверу,затемвключаемработусетииждемрезультата,периодическиопрашиваяипроверяякорректностьрезультата.889 +Here we explicitly send a request to the NTP server, then turn on the network and wait for the result, periodically polling and checking the correctness of the result. 890 890 891 -== **036:УстановкаRTCнаоснованиичасовTCP/IPстека**==891 +== 036: Setting RTC based on TCP/IP stack clock == 892 892 893 - Кодкоманды036,даннаякомандаустанавливаетRTCнаоснованиичасоввTCP/IPстека.Предварительнонадоустановить часывTCP/IP -команда036.893 +Command code 036, this command sets the RTC based on the clock in the TCP/IP stack. You must first set the clock in TCP/IP - command 036. 894 894 895 - Примерпрограммы:895 +Example program: 896 896 897 897 {{code language="assembler"}} 898 -; trap 64 - установкавремениRTCнаоснованиивременистека899 -; R1 - результат900 -SetDateNETtoRTC:call AZreset; сбросим898 +; trap 64 - set RTC time based on stack time 899 +; R1 - result R1=0 - OK 900 +SetDateNETtoRTC:call AZreset; reset 901 901 tst R1 902 902 bne 0ERR$ 903 903 MOV #AZ$CSR,R1 904 904 mov #36,(R1) 905 -0$: TSTB (R1); проверяемрезультатвыполнения906 - BPL 0$; ждем905 +0$: TSTB (R1); check execution result 906 + BPL 0$; wait 907 907 clr R1 908 908 0ERR$: return 909 909 {{/code}} 910 910 911 -== **042:ПолучитьвремяизчасовTCP/IPстекавбуферtimestamp**==911 +== 042: Get time from TCP/IP stack clock into timestamp buffer == 912 912 913 - Кодкоманды042,даннаякомандаиспользуетчасыTCP/IPстекакакисточникзаполнениябуфераtimestamp.913 +Command code 042, this command uses the TCP/IP stack clock as a source for filling the timestamp buffer. 914 914 915 - Примерпрограммы:915 +Example program: 916 916 917 917 {{code language="assembler"}} 918 918 ; работа с часами