ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
327292
Adept (08.05.2012 17:50, просмотров: 2458)
Чё-то никак не найду, где собака порылась (fucking LPM !! :P) код-то в общем незатейливый :(  //Копирование табличных данных из программной памяти в ОЗУ (четверть периода периодической функции (синуса) LDZ quarter_SinDATA ;Установим адрес начала исходного массива данных (FLASH) LDY S_Begin_of_functionDATA ;Установим адрес начала массива данных для размещения в ОЗУ Begin_copyDATA1: lpm XL,Z+ ;считываем из FLASH с автоинкрементом адреса lpm XH,Z+ st Y+,XL ;пишем в RAM с автоинкрементом адреса st Y+,XH LDX S_End_of_functionDATA ;Запишем в X адрес конца массива данных для контроля окончания операции cp XL,YL ;Сравним, не дошли ли до конца выделенной области данных в RAM? cpc XH,YH brcc Begin_copyDATA1 ;Если ещё не закончили, то продолжаем копировать ; В отладчике считыавает по адресам из флеша какую-то херню (в окне дизассемблера по эти адресам нормальные данные) Все адресные регистры (Y и Z) устанавливаются и инкрементируются корректно. В железе, программа, аналогичным образом тоже не работает. Никак не пойму, в чём причина? Да, камень - Xmega128AU3
...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)