Billy_Bones 0 21 ноября, 2016 Опубликовано 21 ноября, 2016 · Жалоба В одной моей железке нужно сделать фильтр. Читается из ADC значение, кладется в массив из 16 регистров, по кругу, переписывая старое значение. Потом эти 16 регистров суммируются, делятся на 16 - получается среднее за окно из 16 измерений Так вот - как организовать запись в массив по счетчику, на mpasm? Чтоб в счетчике крутился номер ячейки, а процедура по этому номеру в оную ячейку писала. В массивы констант (таблицы) по retlw "значение" я умею, а вот с переменными что-то не приходит в голову как изящно поступить. Может есть опыт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Billy_Bones 0 21 ноября, 2016 Опубликовано 21 ноября, 2016 · Жалоба Начал читать про indirect addressing - понял что это оно (раньше я никогда не пользовался этим методом). Вот так будет работать? Линейный массив находится в пользовательских регистрах, начиная с адреса "startaddress". На входе POINTER - регистр с номером ячейки массива, линейное смещение адреса. READDATA - регистр с результатами прочтения WRITEDATA - регистр с данными для записи movlw "startaddress" ; movwf FSR ; загрузка начального адреса в регистр указателя из константы movfw POINTER addwf FSR, F ; увеличение регистра указателя на величину указателя POINTER Ну а дальше movf INDF, W ; movwf READDATA ; - чтение ячейки массива или movf WRITEDATA, W movwf INDF ; - запись ячейки массива Я нигде не ошибся? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mcheb 0 21 ноября, 2016 Опубликовано 21 ноября, 2016 · Жалоба надо взять ПИК Си компилер от CCSinfo и забыть про movf movwf movlw и прочую retlw. Как вариант можно SDCC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Billy_Bones 0 21 ноября, 2016 Опубликовано 21 ноября, 2016 · Жалоба надо взять ПИК Си компилер от CCSinfo и забыть про movf movwf movlw и прочую retlw. Как вариант можно SDCC Я в си не могу. У него такой синтаксис мудовый, что увы, я так и не смог себя заставить его полюбить. Бейсик, паскаль, фортран, даже асм пиковский - на ура. А эта дрянь не пошла, как вижу эти фигурные скобки, хэши и прочее издевательство над здравым смыслом, моими глазами и английским языком - омерзение просто вызывает, не могу и все. По использованию FSR в примере выше есть чего сказать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 ноября, 2016 Опубликовано 21 ноября, 2016 · Жалоба Не хэши, а хексы. Отличный язык. Простой, красивый. На asm PIC-и я тоже программировал. А как познал C, забыл про asm. И про PIC тоже. :-) P.S. Вы и в asm "не можете". :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Billy_Bones 0 22 ноября, 2016 Опубликовано 22 ноября, 2016 · Жалоба Все такие добрые, аж блевать тянет. Q: мне надо на доске просверлить ряд дырок строго по прямой, через одинаковые промежутки, есть дрель и короткая линейка, как лучше поступить. А: Возьми станок с ЧПУ, нахер тебе эта дрель, все равно ты ей пользоваться не умеешь (я тоже не умею, но разве это так важно, совет-то я могу дать). До свидания, "помощнички", нашел нужные мне ответы у буржуев в форумах, они вменяемые, в отличие от. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 ноября, 2016 Опубликовано 22 ноября, 2016 · Жалоба Что там давать. Есть счетчик, в него записал число элементов массива. Есть регистр косвенной адресации, записал в него адрес массива. Используй его для записи и чтения, инкрементируй, а счетчик уменьшай до нуля. А как станет нулем, начинай сначала. А завтра будет Q: А какой рукой держать дрель? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopa 0 22 ноября, 2016 Опубликовано 22 ноября, 2016 (изменено) · Жалоба Я в си не могу. У него такой синтаксис мудовый, что увы, я так и не смог себя заставить его полюбить. Бейсик, паскаль, фортран, даже асм пиковский - на ура. :bb-offtopic: А меня Форт "испортил" :smile3046: P.S. Кстати Форт (Forth) разных есть, включая и несколько для PIC контроллеров. Вот уж где скобок нет в структуре языка (от слова почти) в понимании Си языков. Интересна и такая методичка Г.Р. Алпатов Применение PIC-контроллеров в измерительной технике. ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ Ростов-на-Дону 2008г F2P или Тут Проекты на этом же варианте Форт подобного языка.PIC Forth Здесь тоже какие то уроки FlashForth is a Forth stamp system implemented on the Microchip 8-bit PIC18F and 16-bit PIC24, 30, 33 and the Atmel Atmega microcontroller families. и.т.д, и.т.п. Тут целый архив Форт "истории" Но местное сообщество, в основном, инертно к Forth (Форт) языковому подходу разработки ПО для контроллеров. Изменено 22 ноября, 2016 пользователем Kopa Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 22 ноября, 2016 Опубликовано 22 ноября, 2016 · Жалоба Нутак Вы же нашли indirect / "косвенная регистровая адресация" так это ОНО. На младших PIC работать с ASM - это из ряда мазохизма и сокральных знаний "ниочем". Не теряйте время, не мучайте мозг, изучайте С. И возьмите более мощный (/современный) процессор из техже PIC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться