поезд из А движется пока из басейна вытекает... BLINK

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Starichok51 »

Газзель!, такие длинные "портянки" положено прятать под спойлер.
возможность редактирования поста истекает через 1 сутки.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение OKF »

Чему бы хорошему учиться! Так нет - давай галиматню печатать.) Газзель, ведь есть же классика - блинк, начни с неё. Затем уменьши, а если хочешь изгальнуться, продолжни на ассемблере. Ну только не так как, потому что у тебя это почти как в машинных кодах. А главное, заради чего!
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Martian »

OKF, так он и делает блинк :)))
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Demiurg »

Я обещал пример. Сейчас крайне занят. В проекте конечные автоматы. Посмотри. Это даст тебе представление.
Вложения
CNT_CYCLES_VER_5.rar
(22.03 КБ) 55 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение OKF »

[uquote="Martian",url="/forum/viewtopic.php?p=4547708#p4547708"]OKF, так он и делает блинк :)))[/uquote]
Так я то вижу! Блинк через жопу. Это можно. Но через жопу и всё остальное. Палата номер 6.( Удачи! Иначе и я туда же.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение BOB51 »

Я вот только одного не пойму...
Ежли у индивидума желание организовать задержки на основе времени исполнения команд, то на кой ляд дергать все биты порта МК при том, что требуется менять статус только одного бита того порта?
Ведь просто остаточно выбрать наиболее длинную по времени выполнения команду да запускать ее пачками с нужной длиной (расходуя ресурс ПЗУ), а уж по окончании каждой пачки инвертировать выходной сигнал. Без всякого излишнего изврата.
Это ежли циклические счетчики на регистрах вероисповедание использовать не позволяет.
Только вот... у аруинки-нанки при тактовой частоте 16МГц время исполнения одноцикловой команды будет 0,0000000625 секунды, а время восприятия глаза хотя бы 0,1-0,2 секунды.
Это сколько ж команд(написать в тексте исходника) надобно то будет?...
:tea:
Реклама
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Demiurg »

Проблема у ТС в голове. И давайте не будем плодить сущности. Тем более что у нас тема AVR.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Martian »

BOB51, можно увеличить время, используя ресет
Газзель!
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт сен 14, 2023 23:53:12

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Газзель! »

пишут что ресет обнуляет регистры, что ваще логично, но в даташите я в упор не вижу initial value

Добавлено after 11 minutes 48 seconds:
[uquote="Demiurg",url="/forum/viewtopic.php?p=4547313#p4547313"]книгу Вольфганг Трамперт "AVR-RISC Микроконтроллеры".[/uquote]

спасибо! Да, немного многовато подробностей, но кое что нашел. Я до этого смотрел Джон Мортон, понравился простотой, но со странностями. А еще ИИ Кочегаров и ВА Трусов. Все учебники примерно похожи, но чуть переформулированное изложение позволяет догадаться в чем дело сравниваю несколько вариантов.

нащет примера, вот как раз новичку проще открыть даташит и увидеть номер регистра, все. В примере я пытался запомнить что в дефайнах, но это только если сидеть и зубрить наизусть. В итоге пока я пытался разобраться в программе, я уже забывал что есть что
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Martian »

Изображение
To make use of the reset flags to identify a reset condition, the user should read and then reset the MCUSR as early as
possible in the program.
Газзель!
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт сен 14, 2023 23:53:12

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Газзель! »

[uquote="BOB51",url="/forum/viewtopic.php?p=4547816#p4547816"]у аруинки-нанки при тактовой частоте 16МГц время исполнения одноцикловой команды будет 0,0000000625 секунды, а время восприятия глаза хотя бы 0,1-0,2 секунды.[/uquote]

именно этим я и руководствовался, когда придумывал, что нужно от программы, и поэтому закладывал 3 ступени 256*256*256. Но факты говорят об обратном.
После того как я освободил первые 26 строк, где должны быть векторы прерываний, программа заработала стабильным меандром примерно 2Гц, может 3Гц, хотя сама программа получается должна быть = 1 регистр * кол-во строк программы

поправка, регистр откуда выводится в порт забыл, получается 256*128* (104 строк проги) = 1966080 горит, и столько же негорит.
Уже близко, но все равно где то в 2 раза быстрее, чем в реальности получилось

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

nop ; сюда приходят прерывания
nop ; которые я ващето не использую 
nop ; однака...
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

cli ;     то же не знаю зачем
clr R16 ; вот теперь после nop эти clr не стопорят диод
clr R17 ; в чем разница все равно не понятно
clr R18
clr R19
clr R20
clr R21
clr R22
clr R23
clr R24
clr R25
clr R26
clr R27
clr R28
clr R29
clr R30
clr R31

nop ; кажись это строка 44


dec R16 ; здесь b7 будет 127раз 1 + 128й раз 1
inc R17 ; здесь b7 будет 127раз 0 + 128й раз 1

mov R31, R16 ; здесь  в R31 и 0x1E будем  
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
out 0x1E, R31 ; переворачивать b7 в b0
cbi 0x1E, 7
cbi 0x1E, 6
cbi 0x1E, 5
cbi 0x1E, 4
cbi 0x1E, 3
cbi 0x1E, 2
cbi 0x1E, 1
in R31, 0x1E ;  перевернули

add R18, R31 ;здесь b7 сложится из 128раз 
;             перевернутых единиц R16 и перевернутых нулей R17
;             а потом , после использования, вычтется из 
;             перевернутых нулей R16 и перевернутых единиц R17

mov R31, R18
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
out 0x1E, R31
cbi 0x1E, 7
cbi 0x1E, 6
cbi 0x1E, 5
cbi 0x1E, 4
cbi 0x1E, 3
cbi 0x1E, 2
cbi 0x1E, 1
in R31, 0x1E ; 

add R21, R31 ; используем моргнувшие в R18 единички, складываем их

mov R31, R17 ; доделываем,  не даем R18 мгновенно заполниться
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
asr R31
out 0x1E, R31
cbi 0x1E, 7
cbi 0x1E, 6
cbi 0x1E, 5
cbi 0x1E, 4
cbi 0x1E, 3
cbi 0x1E, 2
cbi 0x1E, 1
in R31, 0x1E

sub R18, R31 ; , доделали, после пользования моргнувшей 
;              в R18 единички 127 раз держим b7 в ноль



mov R31, R21
asr R31
asr R31 ; b7 зажигает pb5


sbi 0x04, 5
out 0x05, R31 ; по задумке должно 128 гореть и гаснуть
jmp 44 ; появился цикл, которого по задумке нужно было избежать


большая просьба, кому не лень, залейте, пожалуйста, у себя прогу, как быстро моргает диод? И работает ли ваще? Я не понимаю, почему по факту скорость моргания не соответствует указанной BOB51

Добавлено after 2 minutes 2 seconds:
Martian , вот жеж! я искал сводную таблицу
Вложения
blibl2.hex
(640 байт) 50 скачиваний
blibl2.asm
(1.88 КБ) 55 скачиваний
Последний раз редактировалось Газзель! Пн фев 26, 2024 15:05:52, всего редактировалось 1 раз.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Demiurg »

Этта. ТС. Я сейчас скажу, и хотел бы, чтобы вы поняли правильно. Ассемблер такая штука. Никто не хочет смотреть в выкладывемые простыни кода. Исходи от другого. ТЗ. Что ты хочешь получить в целом. Где у тебя затруднения. И не лезь в ассемблер. Поясню. Всё пишут по разному. На основании своего опыта и текущего объёма знаний. И чтобы диалог был конструктивным. Нужно не кодами меряться, обмениваться. А постановкой задачи.
Газзель!
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт сен 14, 2023 23:53:12

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Газзель! »

ну какой может быть диалог с человеком, который первый раз в жизни пишет блинк. Еслиб я понимал где у меня затруднения, яб уже разобрался.

Тогда просто помогите, и проверьте прогу на своих платках. Если это не нано, то sbi 0x04, 5 для DDRB и out 0x05, R31 для PB5
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение BOB51 »

Классический пример "как испортить готовую конструкцию"
В данном случае платку Ардуино нано...
:cry: (похоронный марш)...
В нанке по умолчанию зашит свой бутлоадер, разумеется с соответствующей начальной инициализацией по сигналу сброса (reset)... А тут вдруг мы запихиваем туда свою прошивку да под ассемблером ... И в добавок сносим таблицу векторов прерываний (но оставив бутлоадер).
В результате ни работоспособной нанки ни работоспособной самоделки.
ПЕЧАЛЬКА.
:sleep:
В даташитах имена регистров всегда указаны (производителем по умолчанию).
Русское описание АВРок весьма полное в книгах Белова (есть в СУНДУКЕ КОТА). Одна книга по тинькам, другая по мегам.
К сожалению там меги 328й нету - написаны те книжи достаточно давно.
Удобно читать параллельно с даташитами.
8)
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Starichok51 »

BOB51, чем тебе прошивка под ассемблером не нравится для ардуино-нано? или ты думаешь, что под С++ там совсем другая система команд - не такая как у ассемблера?
для бутлодера не существует таблицы векторов в начале флеши, так как в "пустой" флеши там вообще не прописаны адреса векторов.
а также бутлодер может перенести таблицу векторов в совсем другое место, в такое место, куда "не достанет" записываемая прошивка.
поэтому все твои ПЕЧАЛЬКИ ни о чём, так как без проблем будет работать прошивка под ассемблером и векторам ничего не будет мешать.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение OKF »

Starichok51, можно мне вклиниться?
Пофигу на чём писать, только пиши по нормальному, а не быдлокодь. Ты понимаешь? Без абсолютных адресов и прочей туфты. И нихрена у ТС-а не получится, не ту область он выбрал. Мой ему совет - бросай, не трать время.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Martian »

Можно и быдлокодить, но для себя и не признаваться в этом никому ;)
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение OKF »

Да. И дрочить можно. Не афишируя, естественно. Хотя...
А если серьёзно, нужно иметь лицо, перед тем, когда выставляешь свои бредни на всеобщее обозрение.
И после того, когда их прочтут люди.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение BOB51 »

Для того, чтобы корректно добавить свой тест-проект в какой-либо МК, имеющий свою собственную прошивку, нужно достаточно полную информацию и об имеющейся в МК резидентной программе иметь и о его соответствующей конфигурации. Это совершенно не зависит от того на каком языке совмещение программ делать.
Без учета того, что выполнено в исходной программе не получиться свой тест вставить. Как минимум "начальный след" в регистровом файле и в ОЗУ вполне вероятен, даже если таблица векторов не задействована. Далее... Бутлоадер явно конфигурирует ресурсы ввода-вывода (UART, вероятно сопутствующий таймер, указатель стека и может еще чего).
Если тест-программа этого не учитывает(не выполняет реконфигурацию при запуске) ошибки неизбежны.
8)
Газзель!
Открыл глаза
Сообщения: 44
Зарегистрирован: Чт сен 14, 2023 23:53:12

Re: поезд из А движется пока из басейна вытекает... BLINK

Сообщение Газзель! »

ну яж не первый такой. У других работает. бутлодер не дает фьюзы изменить, но прогу с использованием прерываний можно загружать.

В моей проге не используются никакие ресурсы, что они сконфигурированы , что нет - только сложить/вычесть и перевернуть b7 в b0, все. Даже наоборот, мне все лишние ресурсы нужно подавить.

Собственно прога то работает, а в изначальной проге я круто просчитался с задержкой и заложил много ступеней, причем одну ваще и не собирался, и получилось 256*256*256*256*128* 227строк = 124794569752576 тиков = 7799660,6сек = 2166 часов. Вооощем 16мгц не так уж и много.

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

Вернуться в «AVR»