ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
851884 Топик полностью
Adept (29.06.2018 22:45 - 22:48, просмотров: 377) ответил AU08 на Полный текст функции в студию!
да нет там никакой функции - три строчки на ассемблере :))  Read_CalibrationBYTES: #warning "wrong ReadCalibrations!!" //неверно читаются калибровочные данные (какая-то фигня, м.б. с режимами NWM-контроллера?? // калибровочные байты системы тактирования считываются аппаратно сразу после сигнала RESET // DFLLRC2M_CALB, DFLLRC2M_CALA - RC2M CLC // OSC_RC32KCAL - RC32K CLC // DFLLRC32M_CALB, DFLLRC32M_CALA - RC32M CLC // остальные калибровочные константы нужно считывать и прописывать в соответствующие регистры "вручную". ;---------------------------- LDZ PROD_SIGNATURES_START+NVM_PROD_SIGNATURES_LOTNUM0_offset ;Установим в Z адрес первой считываемой константы в Signature Row PUSH_TMP_SREG ;\ запомним статус прерываний cli ;запретим на время выполнения LPM (на самом деле на всю процедуру) прерывания, как рекомендовано в даташите). ;---------------------------- Chip ID (Signature) ;.equ NVM_PROD_SIGNATURES_LOTNUM0_offset = 0x08 // Lot Number Byte 0, ASCII S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row lpm TMP,Z+ sts S_DevID0,TMP ;.equ NVM_PROD_SIGNATURES_LOTNUM1_offset = 0x09 // Lot Number Byte 1, ASCII S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row lpm TMP,Z+ sts S_DevID1,TMP ;.equ NVM_PROD_SIGNATURES_LOTNUM2_offset = 0x0A // Lot Number Byte 2, ASCII S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row lpm TMP,Z+ sts S_DevID2,TMP ;.equ NVM_PROD_SIGNATURES_LOTNUM3_offset = 0x0B // Lot Number Byte 3, ASCII S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row lpm TMP,Z+ sts S_DevID3,TMP // ... ну и дальше в таком духе :) казалось бы чего там в трёх соснах плутать, однакож :(( такое впечатление, что адрес SignatureRow неверный. Вроде, как я понимаю, адрес у него действительно с нуля, но в своей выделенной области памяти, которая адресуется командой NWM контроллера (т.е. по нулевому адресу я должен вроде как читать CalibrationROW, а не флешь, как сейчас :((( но в ДШ на этот счёт ничего внятного :((
...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)