ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
794528 Топик полностью
Ale3000 (15.11.2017 07:29 - 07:39, просмотров: 314) ответил AlexG на Atmel в примерах программ для Xmega заложил интересные грабли: функции, работающие с контроллером NVM (например, вычитывающие калибровочные константы) не возвращают регистр NVM.CMD в исходное состояние (0x00). При этом перестает корректно работать
В каких конкретно примерах програм? В апноте "AVR1300 Using the XMega ADC" есть обнуление NVM.CMD. http://www.microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591303
#include <ioavr.h> ; --- ; This routine reads the calibration byte given by the index in R16. ; ; Input: ; R16 - Byte index. ; ; Returns: ; R16 - Calibration byte. ; --- MODULE _SP_ReadCalibrationByte PUBLIC SP_ReadCalibrationByte RSEG CODE SP_ReadCalibrationByte: ldi r20, NVM_CMD_READ_CALIB_ROW_gc ; Prepare NVM command in R20. mov ZL, r16 ; Load byte index into low byte of Z. clr ZH ; Clear high byte of Z. sts NVM_CMD, r20 ; Load prepared command into NVM Command register. lpm r16, Z ; Preform a LPM to read out byte to R16 ldi r20, NVM_CMD_NO_OPERATION_gc ; Clear NVM Command register sts NVM_CMD, r20 ret ENDMOD END