Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

мега8.
Ну вот оно.
Только мой регистр чего то забыл в компараторе,и разряд не первый а четвертый.
И не пишется туда ничего.Сдается мне,что это не он.
з.ы. извиняюсь. нашел. он во вкладке CPU был. не догадался туда заглянуть.
устанавливается,все как положено. и на следующей команде сбрасывается.
Кажется,так и должно быть.
Вложения
2022-02-22_122216.jpg
(120.66 КБ) 109 скачиваний
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

"Совмещенные" регистры с наборами управляющих бит для разных аппаратных модулей в МК не редкость.
Там надо не простую загрузку применять, а режим
считываю - изменяю - записываю
для страховочной защиты от возможных ошибок.
8)
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

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

з.ы. А где сидит обработчик прерываний,например для mega8 для переполнения таймера0 по адресу $009 ? Заглядываю в память программ,нет ничего. В ОЗУ тоже ничего нет ...
В TIFR выскочил,а че дальше ? :oops:
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ну уж не смешите...
:)
По адресу

Код: Выделить всё

.equ	OVF0addr	= 0x0009	; Timer/Counter0 Overflow
находится вектор перехода на подпрограмму обработки прерывания по OVF0.
Сама подпрограмма может находиться где угодно. Завершение подпрограммы по команде RETI (о спецприемах разговор особый).
8)
Мне та мега 8/8А не слишком нравится - предпочтение работы с нею под адуринкой (соответствующие платформы).
:roll:
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Изображение
хорошая вещь получилась. теперь можно не только измерить индуктивность
неизвестной катушки,это можно было сделать и раньше,припаяв любой
конденсатор и измерив частоту в резонансе. Но появилась возможность
менять второй параметр,и находить частоту максимальной добротности. :)
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6695
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

главный колбасист, а esr померяли?
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Не.Там же сантиметров пять максимум дорожек с позолоченными контактами.выводные проводки и то длиннее.
Вот хотелось сделать,но так и не,эквивалент нагрузки для каскадов передатчиков. допустим 50+-25 ом
на планарных сопротивлениях,но с коммутацией реле для уменьшения индуктивности на месте,
поближе.Сперва десятком реле с десятичного дешифратора.Потом думаю,нафига,если это все
делать в двоичном коде,можно уменьшить число сопротивлений и реле в разы.Но столкнулся
со сложностью расчета номиналов.Че то там составляли для трех разрядов систему из трех
уравнений. Потом плюнули на это дело.Это если от единицы плясать,легко,а вы попробуйте
от 50,с шагом в 1ом,например.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6695
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

а в чем проблема сплясать от 1 а варианты до 50 ohm просто не использовать и все! ??
надо всего 10 резисторов в каждой 1k группе 1-2-4-....-512 =1..1023ohm тожесамое 1..1023k
и скажем 1..15M если надо. всего 2 или 2.5 группы. для первых нескольких низкоомных резисторов потребуется корректировка на сопротивление контактов.
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

А не лучше ли использовать измерительный мост с коммутируемыми эталонными резисторами, конденсаторами и индуктивностями который балансируется "электронным переменным резистором"?
Те же старые схемы, но с применением современной элементной базы?
8)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Сделаем как нибудь. Лень просто было,если честно.
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Код:
.equ OVF0addr = 0x0009 ; Timer/Counter0 Overflow
Дошло.
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Как только ставишь это
.org OVF0addr
вылазит это.
AVR Simulator: Invalid opcode 0xffff at address 0x000005
И в протеусе не хочет исполняться.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18788
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

.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 убрать запускается.
Но перестает моргать,естественно.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ну и "каша"!
Прерывания вообще-то должны завершаться reti
Макросы описываются до начала программы в области определений или в отдельном файле.
За ШПРОТА ничего не скажу - таковым не пользуюсь.
8)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Ну и "каша"!
Это я сама придумала... :oops: :cry:
Не из чужих кусков, а практически полностью.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

хотя бы перераспределить вот так:
Спойлер

Код: Выделить всё

.macro kca
; sei !!!!!
ldi temp,1
out sfior,temp
clr temp
sbr temp,0x02
out tccr0,temp
ldi temp,0x1
out timsk,temp
.endm

.cseg
.org 0x0000 ; или имя вектора сброса по reset
rjmp main_prog ; переход к началу программы пользователя,
; размещенной после блока векторов
; ВСЕХ ИМЕЮЩИХСЯ В МК ВЕКТОРОВ ПРЕРЫВАНИЙ

.org OVF0addr
rjmp koca

main_prog:
ldi temp,low(ramend)
out spl,temp
ldi temp,high(ramend)
out sph,temp
ldi temp1,128
sei ; перенести сюда

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 это что за конструкция???!!!
; бесконечное обращение в точку вызова прерывания
; до полного исчерпания сткеа???
reti
хотя компилятором я сие не проверял...
:roll:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1394
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край

Сообщение главный колбасист »

Засовываю reti после обработчика.
Потом вообще везде где только можно.
Не помогает.

Добавлено after 24 minutes 15 seconds:
хотя бы перераспределить вот так:
Это работает. :)
И в протеусе работает. ошибки нет и моргает . :beer:
Будем потихоньку переваривать.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ну нельзя же так безбашенно тест составлять!
Хотя бы минимальные "нормы приличия" соблюдать надо...
:evil:
Допустим МК = атмега8а, IDE авр студио4.19, компилятор аврасм2
ddt.zip
(20.87 КБ) 268 скачиваний
собственно исходник
Спойлер

Код: Выделить всё

		.nolist
		.include "m8Adef.inc"
		.list

.def temp = r16
.def temp1 = r17

.macro kca
;sei
ldi temp,1
out sfior,temp
clr temp
sbr temp,0x02
out tccr0,temp
ldi temp,0x1
out timsk,temp
.endm

.cseg
.org 0x0000 ; или имя вектора сброса по reset
rjmp main_prog ; переход к началу программы пользователя,
; размещенной после блока векторов
; ВСЕХ ИМЕЮЩИХСЯ В МК ВЕКТОРОВ ПРЕРЫВАНИЙ

.org OVF0addr
rjmp koca

main_prog:
ldi temp,low(ramend)
out spl,temp
ldi temp,high(ramend)
out sph,temp
ldi temp1,128
;sei

;h: kca; многократное дублирование макроса
; начальной настройки таймера
; должно быть
kca
sei


h:
ldi r18,0
out portd,r18
nop

rjmp h


koca:
ldi r18,0xff
out ddrd,r18
out PORTD,r18
out tcnt0,temp1
; rjmp h это что за конструкция???!!!
; бесконечное обращение в точку вызова прерывания
; до полного исчерпания сткеа???
reti
правильность участка инициализации таймера НЕ ПРОВЕРЯЛАСЬ
8)
Друг Кота
Аватара пользователя
Сообщения: 15791
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Глянул
https://radiokot.ru/forum/viewtopic.php?f=66&t=181640
вернее ссыль на гитхаб, где описание на китаянском ероглифе представлено
https://github.com/nulllaborg/nulllab_w80x_arduino
.....
Так воть интерес больше не к W806, а к вот этому скрину
https://img.radiokot.ru/files/20529/2kobiii6gy.png
вернее к вкладке с платформами
Изображение
как мы можем наблюдать там представлены
"STC51 boards"
а они на основе mcs51 и с этой точки зрения таки весьма интерес представляют...
Может кто встречался поближе?
:roll:

А обитают оные 51е вот тут:
https://github.com/nulllaborg
https://github.com/nulllaborg/nulllab_stc51duino
пополз покопаться....
:roll:
Ответить

Вернуться в «Разные вопросы по МК»