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
-
... ... @@ -568,35 +568,35 @@ 568 568 569 569 The interface provides any AZ controller with access to 255 words of non-volatile memory, all commands set the ready bit upon completion. This allows you to save user settings in non-volatile memory, for example, this is used in AZBK ??- there are saved settings for more comfortable operation of the controller. 570 570 571 - Allcommandsinthisblockuseanon-volatilememorybufferfor their operation.571 +Все команды этого блока используют буфер энергонезависимой памяти для своей работы. 572 572 573 573 == 021: Read non-volatile memory block into buffer == 574 574 575 575 (% class="wikigeneratedid" %) 576 - Commandcode021,thiscommandcausesablockofnon-volatilememorytoberead into the non-volatile memory buffer.576 +Код команды 021, данная команда вызывает чтение блока энергонезависимой памяти в буфер энергонезависимой памяти. 577 577 578 578 579 579 == 022: Transfer the read block of non-volatile memory from the buffer to the bus == 580 580 581 581 (% class="wikigeneratedid" %) 582 - Commandcode022,thiscommandensuresthatthenon-volatilememorybufferistransferred to theDRregisterfor reading.582 +Код команды 022, данная команда обеспечивает передачу буфера энергонезависимой памяти в регистр DR для считывания. 583 583 584 584 (% class="wikigeneratedid" %) 585 - Exampleprogram585 +Пример программы 586 586 587 587 {{code language="assembler"}} 588 -AZ$CSR = 177220; commandandstatusregister(CSR)589 -AZ$DR = 177222; dataregister(DR)588 +AZ$CSR = 177220; регистр команд и состояния (CSR) 589 +AZ$DR = 177222; регистр данных (DR) 590 590 591 591 592 -; trap 50 - resetAZ592 +; trap 50 - cброс AZ 593 593 ; результат в R1 =0 ok 594 594 AZreset: MOV #AZ$CSR,R1 595 -1$: CLR (R1); Sendthe"Reset"command596 - TSTB (R1); Checkthecontroller readiness597 - BPL 1$; Ifnotready,resetagain598 -; onceandcheckagain599 - TST (R1); Checkforan error,595 +1$: CLR (R1); Пошлем команду "Сброс" 596 + TSTB (R1); Проверим готовность контроллера 597 + BPL 1$; Если не готов, сбрасываем еще 598 + ; раз и проверяем снова 599 + TST (R1); Проверим на ошибку, 600 600 BMI 0ERR$ 601 601 CLR R1 602 602 return ... ... @@ -605,30 +605,30 @@ 605 605 return 606 606 607 607 608 -; trap 54 - readingnon-volatilememoryofblock1 EEPROMtothebufferfromthe addressADREEPROMMEM609 -; resultR3 -address,ifR3=0error610 -; readstatusinR1 0 - ok611 -; 1 - sizedoesnotmatch saved612 -; 2 - versionerror613 -; 3 - checksum error608 +; trap 54 - чтение энергонезависимой памяти блока 1 EEPROM в буфер с адреса ADREEPROMMEM 609 +; результат R3 - адрес, если R3=0 ошибка 610 +; статус чтения в R1 0 - ok 611 +; 1 - размер не соответствует сохраненному 612 +; 2 - oшибка версии 613 +; 3 - oшибка контрольной суммы 614 614 ReadEEPROM: push R2 615 - call AZreset; reset615 + call AZreset; сбросим 616 616 tst R1 617 617 bne 0ERR$ 618 618 ; теперь читаем 619 619 MOV #AZ$CSR,R1 620 - mov #21,(R1); readblock1ofnon-volatilememoryinto buffer621 -0$: TSTB (R1); checkexecutionresult622 - BPL 0$; wait623 - mov #22,(R1); sendreadblockofnon-volatilememoryfrombuffertobus624 -1$: TSTB (R1); checkexecutionresult625 - BPL 1$; wait626 - TST (R1)+; increment620 + mov #21,(R1); считать блок 1 энергонезависимой памяти в буфер 621 +0$: TSTB (R1); проверяем результат выполнения 622 + BPL 0$; ждем 623 + mov #22,(R1); отдать на шину считанный блок энергонезависимой памяти из буфера 624 +1$: TSTB (R1); проверяем результат выполнения 625 + BPL 1$; ждем 626 + TST (R1)+; инкрементируем 627 627 mov #ADREEPROMMEM,R3 628 - mov #256.,R2; read256.words;firstwordisreadingresult629 -2$: mov (R1),(R3)+; readblockofwordsinto memory628 + mov #256.,R2; читаем 256. слов; первое слово - результат чтения 629 +2$: mov (R1),(R3)+; читаем блок слов в память 630 630 sob R2,2$ 631 - mov #ADREEPROMMEM,R3; successful631 + mov #ADREEPROMMEM,R3; успешно 632 632 mov (R3),R1 633 633 br 0END$ 634 634 0ERR$: CLR R3 ... ... @@ -636,25 +636,27 @@ 636 636 return 637 637 {{/code}} 638 638 639 -obviously, after reading the memory, it is necessary to check the result code in the first word - see the decoding of error codes 640 -\\Examples of returned data for commands 641 -\\sequentially issuing the command 021 and then 022 will allow reading 256 words from non-volatile memory 642 -Attention! The first word will be the reading success status 639 +очевидно, после считывания памяти необходимо проверить код результата в первом слове - см расшифровку кодов ошибок 640 +\\Примеры возвращаемых данных по командам 641 +\\последовательная подача команды 021 и затем 022 позволит считать 256. слов 642 +из энергонезависимой памяти 643 +**Внимание! **первое слово это будет статус успешности чтения 644 + 643 643 644 644 * 0 - ok 645 -* 1 - sizedoesnotmatch saved646 -* 2 - versionerror647 -* 3 - checksum error647 +* 1 - размер не соответствует сохраненному 648 +* 2 - oшибка версии 649 +* 3 - oшибка контрольной суммы 648 648 649 -== 023: Receivedatafromthebusintothebufferforsubsequentwritinginto the buffer==651 +== **023: Принять с шины в буфер данные для последующей записи в буфер** == 650 650 651 - Commandcode023,thiscommandallowsyoutofillthe non-volatile memory buffer653 +Код команды 023, данная команда позволяет наполнить буфер энергонезависимой памяти 652 652 653 -== 024: Writefrombuffertonon-volatilememoryblock==655 +== **024: Записать из буфера в блок энергонезависимой памяти** == 654 654 655 - Commandcode024,thiscommandcausesanon-volatilememoryblocktobewrittenfrom the non-volatile memory buffer.657 +Код команды 024, данная команда вызывает запись блока энергонезависимой памяти из буфера энергонезависимой памяти. 656 656 657 - Exampleprogram659 +Пример программы 658 658 659 659 {{code language="assembler"}} 660 660 AZ$CSR = 177220; регистр команд и состояния (CSR)