Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы начинающих PIC ASM
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс авг 17, 2025 23:25:11

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 731 ]     ... , , , 31, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 02, 2024 18:13:56 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Регистр FSR и команды с обращением к INDF...
Классика основ...
:))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 02, 2024 18:17:55 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
yor, лучше бы простым языком (без всяких "вес", "закодированный коэффициент"... итд) объяснил что за задача в целом (без лишнего). Типа: "на ножку 1 приходит сигнал, надо посчитать время до следующего и результат подвергнуть такому то преобразованию ..." а то ж совсем непонятно что, куда, как ...

И кстати, там в "творчестве" ты вроде как 16 бит делишь на 256 (через 8 сдвигов) ... просто, скопируй старший в младший ... А вообще, довольно странно, что приходится делить на 256 ...

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 02, 2024 19:48:38 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24013
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
но мне непонятно, как организовать чтение разных регистров в одних и тех же местах кода? Или это невозможно для 16f648?

BOB51 уже сказал, но добавлю, что это называется работой с указателями. То есть с косвенной адресацией. Изменяя адрес - изменяешь переменную. А сама математика остается прежней.
И еще. АСМ - это канешна хорошо, но дело в том, что для понимания смысла инструкций (почему они именно такие, а не другие), требуется познакомится с языками более высокого уровня. Например с Си. Патамшта систему команд МК ориентируют для работы с компиляторами языков высокого уровня. И принципы программирования нужно осваивать не на уровне АСМа, а глобально, с помощью ЯВУ. Тогда даже смена платформы не вызовет судорожного поиска привычных инструкций.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 02, 2024 20:49:48 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А мне наоборот в рамках освоения Си прогонять конструкции, что на ассемблере весьма легко и обыденно делал, довольно заморочливо было...
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 02, 2024 22:19:51 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
И кстати, там в "творчестве" ты вроде как 16 бит делишь на 256 (через 8 сдвигов) ... просто, скопируй старший в младший ...
Логично!

А вообще, довольно странно, что приходится делить на 256 ...
Потому что макс значение предделителя TMR0 такое viewtopic.php?f=58&t=125684&p=4597015#p4597015

yor, лучше бы простым языком (без всяких "вес", "закодированный коэффициент"... итд) объяснил что за задача в целом (без лишнего). Типа: "на ножку 1 приходит сигнал, надо посчитать время до следующего и результат подвергнуть такому то преобразованию ..." а то ж совсем непонятно что, куда, как ...
Для предыстории
viewtopic.php?f=58&t=125684&p=4455904#p4455904
Изображениеtож - toff, tвкл - ton, tзад - AA, всё это вычисляется из периода между импульсами Т, всё 16 бит
По сигналам на ножках делается куча других действий (соответствие вход-выход, запуск таймеров и т.д.), которые описывать словами повесишься. А между сигналами вычисления, на основе измерения в предыдущем периоде.

Так вот на основании предыдущего периода TH:TL надо вычислить предделитель и само значение TMR0 для ton
Код:
tonH:tonL=TH:TL/4 (>>2)
pTMRon = tonH:tonL/FF*2 (>>7) ; предделитель TMR0, OPTION:0:[PS2:0]
TMRon = tonH:tonL/[pTMRon]    ; TMR0, где pTMRon = закодированный Коэф в OPTION:0:[PS2:0]


потом на основе опять того же предудущего TH:TL и кучи других постоянных значений вычислить УОЗ (АА)
Код:
if T > 7RPM || T < 1RPM ; AA=0 ; else AA=f(T)

find xDPZ
let loAA hiAA loRPM hiRPM               sub 2b - 2b
loDPZ=loRPM-T                           mul 2b * 2b
hiDPZ=xDPZ-loDPZ                        add 4b + 4b
AA=(hiAA*loDPZ+loAA*hiDPZ)/xDPZ         div 4b : 2b


Потом на основе опять того же предыдущего TH:TL и свежевычисленных AA && ton вычислить предделитель и само значение TMR0 для toff
Код:
toffH:toffL=TH:TL-AAH:AAL-tonH:tonL
pTMRoff = toffH:toffL/FF*2 (>>7) ; предделитель TMR0, OPTION:0:[PS2:0]
TMRoff = toffH:toffL/[pTMRoff]   ; TMR0, где pTMRoff = закодированный Коэф в OPTION:0:[PS2:0]

Это один период, в следующем повтор

закодированный Коэф в OPTION:0:[PS2:0] - 111=256, 110=128 etc
Всё вычисляется на основе только измеренного таймером TMR1 TH:TL и табличных DPZ && RPM
Уф, 5 часов рожал этот текст... С перерывами, конечно. Всё, больше не просите))
Это алгоритм работы зажигания ДВС с индуктивным накоплением, описать его словами не возьмусь, тем более специфика PIC.

Что уже накропал, кроме вышеописанного:
Вложение:
pic-uoz-009.asm [12.5 KiB]
Скачиваний: 62


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 03:43:13 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
ну по крайней мере ситуация слегка прояснилась ... речь про движок оказывается ... есть датчик (коленвала/распредвала ...) и ты хочешь управлять катушками, также применяя уоз ... В принципе не особо сложная задача, особенно если есть полное понимание всех процессов ... но по твоему описанию этого сложновато достигнуть

В целом (по движку) я понимаю так - есть импульс, так или иначе синхронизированный с вмт, и есть угол, связанный (линейно?) с текущим периодом (оборотом, или двумя...) ... например, если между прошлыми вспышками прошло 100мс и это как раз полный оборот (360) или два (720), то и следующая будет через это время, а сдвиг уоз на этой частоте (при этом периоде) допустим должен быть -10 градусов ... получается, 360 это 100мс, а 10 это 1000/360 =~2.8мс ... следующую искру будем делать через 100-2.8=97.2мс, а это значит, если сразу по факту прошлой вспышки мы загрузим таймер на 97.2, то когда он досчитает до нуля мы получим момент необходимости подать импульс на катушку, ну или немного раньше, учитывая необходимость накопления ... Короче, так или иначе, чем лучше представляешь задачу, тем проще алгоритм получается.

Там ещё ты писал, что придумал некий способ сделать tmr0 16-ти битным ... вникнуть не удалось, но с другой стороны там вроде нечего придумывать - если, скажем, надо досчитать до пары миллионов, ну так добавь к tmr0 парочку своих регистров в качестве старших байтов - вот тебе и таймер на 24 бита...

насчет твоего кода - кроме тебя его все равно никто не поймет. Это не так то просто - разобраться в чужом творчестве.
к примеру, посмотри вот этот исходник:
Вложение:
B0.ASM [16.05 KiB]
Скачиваний: 57

это один из 15-ти файлов проекта ... в нем код основного цикла, расположенный на нулевой странице, в конце там идет переход на следующую ... проекту почти 10 лет (работает в реальном изделии по сей день) Сейчас я смотрю в этот код и разумеется, лишь в общих чертах примерно понимаю, что там происходит, ибо знаю свой стиль ... а, например, если б появилась необходимость что-то существенно подправить, то пришлось потратить минимум часок только на то, чтоб детальней прикинуть на что задуманное изменение повлияет.

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 09:46:08 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
например, если между прошлыми вспышками прошло 100мс и это как раз полный оборот (360) или два (720), то и следующая будет через это время, а сдвиг уоз на этой частоте (при этом периоде) допустим должен быть -10 градусов ... получается, 360 это 100мс, а 10 это 1000/360 =~2.8мс ... следующую искру будем делать через 100-2.8=97.2мс
У меня другой алгоритм. Так как надо высчитывать ещё время накопления энергии в бобине, это TCI, а не CDI конденсаторное, где высек искру и забыл.

Там ещё ты писал, что придумал некий способ сделать tmr0 16-ти битным ... вникнуть не удалось, но с другой стороны там вроде нечего придумывать - если, скажем, надо досчитать до пары миллионов, ну так добавь к tmr0 парочку своих регистров в качестве старших байтов - вот тебе и таймер на 24 бита...
Запаришься прерывания отрабатывать, а при моём способе они не чаще, чем у 16-битного.

насчет твоего кода - кроме тебя его все равно никто не поймет. Это не так то просто - разобраться в чужом творчестве.
Вложение:
B0.ASM

например, если б появилась необходимость что-то существенно подправить, то пришлось потратить минимум часок только на то, чтоб детальней прикинуть на что задуманное изменение повлияет.
Конечно, без комментариев-то)) Хотя они и не панацея, но помогают вникнуть. Без комментариев я тут же забываю, приходится вникать в только что написанный код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 15:30:15 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
У меня другой алгоритм.
Он у всех другой, в силу множества факторов. Но тем не менее для какой-то конкретной задачи существует только один вариант максимально эффективной реализации этого самого алгоритма.

Так как надо высчитывать ещё время накопления энергии в бобине, это TCI, а не CDI конденсаторное, где высек искру и забыл.
я в таких вещах не шарю (не интересовался, не сталкивался), но чисто так на обывательском уровне если рассуждать, то - наверное самая хорошая искра (если скажем подключить на столе) будет при каком-то конкретном (или минимальном) времени накопления ... и вот представим, что мы начали в направлении этого стола перемещать двигатель ... насколько близко он должен быть, чтобы эффективность работы бобины стала зависеть от его оборотов?

Запаришься прерывания отрабатывать, а при моём способе они не чаще, чем у 16-битного.
а сначала получать откуда-то некое 16-ти битное значение, а потом урезать его до 8бит с помощью портянки сдвигов - не особо запаривает?
Сейчас кроме сохранения контекста, в ПП (подпрограмма прерывания) ничего нет. Это означает, что в твоем кода нет четкой синхронизации по времени, нет аппаратной реакции на внешние асинхронные события, которыми могут быть - спад по int, изменение на portb, изменение на выходе компаратора, по захвату на rb3 ... а это означает, что ты это всё, если и делаешь, то вручную, с помощью лишних опросов/сравнений ... - не запарился так?
Прерывания - это точно такая же подпрограмма, как и любая другая (зашел - вернулся). Участок кода (твоего кода) с фиксированным лишь начальным адресом, не более того. Главное отличие - аппаратный вызов. Именно поэтому необходимо сохранение некоторых регистров - тех, которые могут быть "испорчены" в ходе исполнения ПП.
Короче, если те или иные задачи можешь повесить на аппаратную часть - с этого и начинай. Например, настраиваешь tmr1 и модуль сср на захват ... и вот по каждому фронту(или спаду) от датчика, тебя незамедлительно доставляют по адресу 04, а в регистрах ccpr1h,ccpr1l уже лежит нужное тебе значение ... делай с ним что хочешь ...- ну красота же.

Конечно, без комментариев-то)) Хотя они и не панацея, но помогают вникнуть. Без комментариев я тут же забываю, приходится вникать в только что написанный код.
ну почему, кое-какие пометки все равно делаю ... но так чтоб на каждой строчке - это уже лютый перебор

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 15:57:14 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Сколько раз уже говорено:
начинать надо с хорошо расписанного простыми словами алгоритма...
А уже под то описание можно и МК с удобной аппаратной начинкой и раскладкой выводов подобрать и программу в любом компиляторе написать.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 16:12:17 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
то - наверное самая хорошая искра
Хорошо искрить ещё лучше)) ®

(если скажем подключить на столе) будет при каком-то конкретном (или минимальном) времени накопления ... и вот представим, что мы начали в направлении этого стола перемещать двигатель ... насколько близко он должен быть, чтобы эффективность работы бобины стала зависеть от его оборотов?
От оборотов стола? Это уже столоверчение)) Стол, двигатель, бобина, искра... Не, стол тут лишний)) А если честно, совсем не понял...

а сначала получать откуда-то некое 16-ти битное значение, а потом урезать его до 8бит с помощью портянки сдвигов - не особо запаривает?
Ну что делать, если нет свободного 16бит таймера, а имеющиеся в наличии PIC-и надо утилизировать.

Сейчас кроме сохранения контекста, в ПП (подпрограмма прерывания) ничего нет. Это означает, что в твоем кода нет четкой синхронизации по времени, нет аппаратной реакции на внешние асинхронные события, которыми могут быть - спад по int, изменение на portb, изменение на выходе компаратора, по захвату на rb3 ... а это означает, что ты это всё, если и делаешь, то вручную, с помощью лишних опросов/сравнений ... - не запарился так?
Я ж честно сказал, это то, что я ПОКА накропал, работы продолжаются, всё будет, и прерывания в том числе. А так да, входы сканирую опросом, нет у этого проца достаточного кол-ва внешних прерываний, и платы уже разведены, и это не только для меня. И в принципе, вся рутина уже сделана, только вычисления остались, но это тоже такая рутина)))

Вроде бы всё продумал, на всяк случай описание алгоритма, словами запаришься, присуьсьвуют некоторые упрощения и умолчания
Вложение:
stage-rolling09.txt [1.62 KiB]
Скачиваний: 45


Прерывания - это точно такая же подпрограмма, как и любая другая (зашел - вернулся). Участок кода (твоего кода) с фиксированным лишь начальным адресом, не более того. Главное отличие - аппаратный вызов. Именно поэтому необходимо сохранение некоторых регистров - тех, которые могут быть "испорчены" в ходе исполнения ПП.
Короче, если те или иные задачи можешь повесить на аппаратную часть - с этого и начинай. Например, настраиваешь tmr1 и модуль сср на захват ... и вот по каждому фронту(или спаду) от датчика, тебя незамедлительно доставляют по адресу 04, а в регистрах ccpr1h,ccpr1l уже лежит нужное тебе значение ... делай с ним что хочешь ...- ну красота же.
Да это я в курсе.

Добавлено after 5 minutes 45 seconds:
Сколько раз уже говорено:
начинать надо с хорошо расписанного простыми словами алгоритма...
А уже под то описание можно и МК с удобной аппаратной начинкой и раскладкой выводов подобрать и программу в любом компиляторе написать. 8)
Алгоритм в голове, слов не хватает)) У меня этих "коммутаторов" 3 штуки, у народа на другом сайте тоже имеется, все должны переделывать? Следующая версия будет на другом железе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 16:44:54 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24013
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
имеющиеся в наличии PIC-и надо утилизировать.

:facepalm:
Пустопорожнее убивание времени.
Нужно МК выбирать под задачу, а не наоборот.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 16:46:24 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Когда слов для описания хватит, тогда и с программой дела намного быстрее пойдут.
8)
Любой таймер можно создать программно.
Вопрос только в минимальном размере обработки прерывания от системного генератора интервалов и самого счётчика (зависит от математики и количества разрядов счётчика).
DDS кстати тоже на программных счётчика и математике делается.
Насчёт "утилизации имеющегося" - тут вопрос заметно сложнее.
Не слишком удачный выбор МК гарантирует кучу проблем (порой не решаемых для данного кристалла).
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 17:11:37 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
Ну что делать, если нет свободного 16бит таймера, а имеющиеся в наличии PIC-и надо утилизировать.

а каков, кстати диапазон временных интервалов, которые требуется отсчитывать?
Где-то выше вроде было про 6000об/мин ... значит 10мс - длительность одного оборота. Вот и узнали минимальный интервал ... если считать с разрешением в 1мкс, то соответственно насчитаешь 10000
А что насчет минимальных оборотов? 60? - хорошо, пусть будет 60 ... =1об/сек ...1сек-длительность оборота- наш максимальный интервал (1 000 000 мкс) ... tmr0 у нас каждые 256мкс вызывает прерывание и там прибавляем единичку к нашей паре регистров ... и вот одним tmr0 мы считаем весь диапазон с разрешением в микросекунду ...

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 18:08:47 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Это надо обдумать...

Добавлено after 36 minutes 40 seconds:
а каков, кстати диапазон временных интервалов, которые требуется отсчитывать?
Где-то выше вроде было про 6000об/мин ... значит 10мс - длительность одного оборота. Вот и узнали минимальный интервал ... если считать с разрешением в 1мкс, то соответственно насчитаешь 10000
6000об/мин * 2цилиндра = 5мс период полуоборота

А что насчет минимальных оборотов? 60? - хорошо, пусть будет 60 ... =1об/сек ...1сек-длительность оборота- наш максимальный интервал (1 000 000 мкс) ... tmr0 у нас каждые 256мкс вызывает прерывание и там прибавляем единичку к нашей паре регистров ... и вот одним tmr0 мы считаем весь диапазон с разрешением в микросекунду ...

При дёрге верёвкой за маховик или пинке по кику 300об/мин считается, на ХХ 800-1000. То есть ты намекаешь, что можно обойтись 8 битными значениями?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 18:54:18 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
вчера ещё подумал, что речь похоже про какой-то "юпитер"...

6000об/мин * 2цилиндра = 5мс период полуоборота
Сколько цилиндров особо значения не имеет ... коленвал то один, и мы говорим о его оборотах ...

При дёрге верёвкой за маховик или пинке по кику 300об/мин считается, на ХХ 800-1000. То есть ты намекаешь, что можно обойтись 8 битными значениями?
какой ещё намек, какие 8 бит ...? ты считаешь секундный интервал тиками по одной микросекунде ... до скольки досчитаешь, сколько в секунде микросекунд? -очевидно же что - миллион ... Миллион -это 24 бита

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 19:05:02 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
можно обойтись и одним битом, максимальное значение чего-то измеряемого притом не имеет значения.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 21:48:34 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
вчера ещё подумал, что речь похоже про какой-то "юпитер"...
Почти угадал, Юпитер в планах, а вот мой насущный агрегат, последние снимки, и лодка это именно мои. На нём даже первый вариант процессорного зажигания, сбоку на открытой печатке))
https://motorka.org/motory/podvesnie_lo ... et-25.html

Сколько цилиндров особо значения не имеет ... коленвал то один, и мы говорим о его оборотах ...

Ну можно говорить и о циклах зажигания, кои по пол-оборота. В кои я собираюсь уложиться.

ты считаешь секундный интервал тиками по одной микросекунде ... до скольки досчитаешь, сколько в секунде микросекунд? -очевидно же что - миллион ... Миллион -это 24 бита

Зачем секундный интервал, я так и не понял. Если 65мс полупериода - это где-то 500 оборотов, а тем более ниже 1000 вычислять УОЗ не надо, он фиксированный около нуля.

Добавлено after 2 hours 8 minutes 26 seconds:
А mpasm, когда сыплет напоминаниями насчёт смены банков, может реально отслеживать необходимость их смены?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 03, 2024 22:02:54 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
mpasm внутри мплаба контролирует соответствие регистра текущему банку.
Да и по карте в документации на МК эта информация всегда представлена.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Чт июл 04, 2024 07:55:22 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2919
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24013
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
А mpasm, когда сыплет напоминаниями насчёт смены банков, может реально отслеживать необходимость их смены?

Если перед каждым обращением к ОЗУ и периферии ставить banksel, то варнинги пропадут.
Но их можно отключить радикально директивой errorlevel -302 в начале листинга.
Естественно. что варнинг это не ошибка. И mpasm не контролирует текущее значение RP0...RP1, поскольку он ничего не знает про рантайм. Он тупо генерирует варнинги, если НЕПОСРЕДСТВЕННО ПЕРЕД обращением нет директивы banksel.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Чт июл 04, 2024 08:10:58 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
То есть в этом случае, пример из доки:
Код:
banksel Var1
movwf Var1

компилятор перед MOVWF сам проставит биты выбора нужного банка? Где объявлена Var1?
То есть просто знай напихивай её в сомнительных местах, эффект будет тот же, что и вручную ставить биты банков?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 731 ]     ... , , , 31, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 90


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y