Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Котуинко

Пн фев 21, 2022 12:17:42

Сброс предделителя можно осуществить установив соответствующий бит (для ATMega8 это PSR10) регистра SFIOR.

А это где ?? :shock:
И почему этот sfior у меня в аналоговом компараторе. И имеет только один одинешенек разряд ?

Re: Котуинко

Пн фев 21, 2022 18:38:00

Предделитель главной тактовой частоты есть практически в каждой АВРке.
Изменяется по ходу работы МК программно(находу).
Однако скорее всего речь о другом...
:roll:
А вот у таймер - счетчиков есть ещё свои предделители.
Коэффициент деления там измеряемый, а вот чтобы в тех предделителях счёт с нуля начинался, а не с энного мусора и служит бит PSRxx(или иной в других моделях АВРок).
8)

Re: Котуинко

Вт фев 22, 2022 09:50:12

Изображение
ldi temp,1
out sfior,temp

Да,но где он,этот PSRxx, будь он неладен?
У меня закрадывается смутная догадка,что это не тот SFIOR.
И чего бы ему в аналоговом компараторе делать?
Да и не пишется туда ничего...

Re: Котуинко

Вт фев 22, 2022 10:49:20

Смотрим хотя-бы книжу (не говоря о даташитах)
https://sunduk.radiokot.ru/view/?id=1472824691
(по тинькам
https://sunduk.radiokot.ru/view/?id=1287391092)
У разных МК имеются отличия в абревиатуре - там отмечено.
Хотя и не без "очепяток" - эти два справочника надо в бумажном виде у себя держать (также как и даташиты типовых используемых в практике МК с "пометками на полях" по мере накопления опыта в использовании).
Далее...
О каком МК разговор-то идет?
Смотрим карту регистров -не везде outиспользовать можно - где-то и через ОЗУ придется работать...
8)

Re: Котуинко

Вт фев 22, 2022 14:10:41

мега8.
Ну вот оно.
Только мой регистр чего то забыл в компараторе,и разряд не первый а четвертый.
И не пишется туда ничего.Сдается мне,что это не он.
з.ы. извиняюсь. нашел. он во вкладке CPU был. не догадался туда заглянуть.
устанавливается,все как положено. и на следующей команде сбрасывается.
Кажется,так и должно быть.
Вложения
2022-02-22_122216.jpg
(120.66 KiB) Скачиваний: 75

Re: Котуинко

Вт фев 22, 2022 19:50:37

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

Re: Котуинко

Ср фев 23, 2022 18:59:09

"Совмещенные" регистры с наборами управляющих бит для разных аппаратных модулей в МК не редкость.

Да.теперь дошло.
Может один регистр раскидан по кускам по разным местам.

з.ы. А где сидит обработчик прерываний,например для mega8 для переполнения таймера0 по адресу $009 ? Заглядываю в память программ,нет ничего. В ОЗУ тоже ничего нет ...
В TIFR выскочил,а че дальше ? :oops:

Re: Котуинко

Ср фев 23, 2022 20:56:34

Ну уж не смешите...
:)
По адресу
Код:
.equ   OVF0addr   = 0x0009   ; Timer/Counter0 Overflow

находится вектор перехода на подпрограмму обработки прерывания по OVF0.
Сама подпрограмма может находиться где угодно. Завершение подпрограммы по команде RETI (о спецприемах разговор особый).
8)
Мне та мега 8/8А не слишком нравится - предпочтение работы с нею под адуринкой (соответствующие платформы).
:roll:

Re: Котуинко

Пт фев 25, 2022 12:51:15

Изображение
хорошая вещь получилась. теперь можно не только измерить индуктивность
неизвестной катушки,это можно было сделать и раньше,припаяв любой
конденсатор и измерив частоту в резонансе. Но появилась возможность
менять второй параметр,и находить частоту максимальной добротности. :)

Re: Котуинко

Пт фев 25, 2022 14:04:26

главный колбасист, а esr померяли?

Re: Котуинко

Пт фев 25, 2022 15:21:35

Не.Там же сантиметров пять максимум дорожек с позолоченными контактами.выводные проводки и то длиннее.
Вот хотелось сделать,но так и не,эквивалент нагрузки для каскадов передатчиков. допустим 50+-25 ом
на планарных сопротивлениях,но с коммутацией реле для уменьшения индуктивности на месте,
поближе.Сперва десятком реле с десятичного дешифратора.Потом думаю,нафига,если это все
делать в двоичном коде,можно уменьшить число сопротивлений и реле в разы.Но столкнулся
со сложностью расчета номиналов.Че то там составляли для трех разрядов систему из трех
уравнений. Потом плюнули на это дело.Это если от единицы плясать,легко,а вы попробуйте
от 50,с шагом в 1ом,например.

Re: Котуинко

Пт фев 25, 2022 15:58:12

а в чем проблема сплясать от 1 а варианты до 50 ohm просто не использовать и все! ??
надо всего 10 резисторов в каждой 1k группе 1-2-4-....-512 =1..1023ohm тожесамое 1..1023k
и скажем 1..15M если надо. всего 2 или 2.5 группы. для первых нескольких низкоомных резисторов потребуется корректировка на сопротивление контактов.

Re: Котуинко

Пт фев 25, 2022 16:45:59

А не лучше ли использовать измерительный мост с коммутируемыми эталонными резисторами, конденсаторами и индуктивностями который балансируется "электронным переменным резистором"?
Те же старые схемы, но с применением современной элементной базы?
8)

Re: Котуинко

Пт фев 25, 2022 17:45:06

Сделаем как нибудь. Лень просто было,если честно.

Re: Котуинко

Вт мар 01, 2022 13:51:43

Код:
.equ OVF0addr = 0x0009 ; Timer/Counter0 Overflow


Дошло.

Re: Котуинко

Пт мар 04, 2022 10:27:43

Как только ставишь это
.org OVF0addr

вылазит это.
AVR Simulator: Invalid opcode 0xffff at address 0x000005

И в протеусе не хочет исполняться.

Re: Котуинко

Пт мар 04, 2022 15:12:03

так после .org XXXX должна обязательно следовать какая-то исполняемая команда! .org лишь задает адрес, где разместить первую в нижеследующем списке команду. если её там нет - будет пустота, или 0xFFFF...

Re: Котуинко

Пт мар 04, 2022 15:24:30

.cseg

ldi temp,low(ramend)
out spl,temp
ldi temp,high(ramend)
out sph,temp
ldi temp1,128
.org OVF0addr
rjmp koca
.macro kca
sei
ldi temp,1
out sfior,temp
clr temp
sbr temp,0x02
out tccr0,temp
ldi temp,0x1
out timsk,temp
.endm
h: kca

ldi r18,0
out portd,r18
nop

rjmp h
koca:ldi r18,0xff
out ddrd,r18
out PORTD,r18
out tcnt0,temp1
rjmp h

У меня вон что стоит. Не то ?

p.s. Все работает,несмотря на желтое предупреждение.
А вот протеус наотрез отказывается. А если .org убрать запускается.
Но перестает моргать,естественно.

Re: Котуинко

Пт мар 04, 2022 15:54:07

Ну и "каша"!
Прерывания вообще-то должны завершаться reti
Макросы описываются до начала программы в области определений или в отдельном файле.
За ШПРОТА ничего не скажу - таковым не пользуюсь.
8)

Re: Котуинко

Пт мар 04, 2022 16:09:47

Ну и "каша"!

Это я сама придумала... :oops: :cry:
Не из чужих кусков, а практически полностью.
Ответить