Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июн 19, 2025 20:40:21

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7952 ]    , , , 4, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 00:43:05 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт июл 31, 2007 20:32:30
Сообщений: 174
Откуда: Киев, Украина
Рейтинг сообщения: 0
очищает все пины порта B кроме 0 и 1
т.е. на 4 линиях даных ЖКИ делает нули, а сигналы RS и E оставляет неизмеными

RS -> PB0
EN -> PB1
DB4 -> PB2
DB5 -> PB3
DB6 -> PB4
DB7 -> PB5


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 00:45:40 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 12, 2007 20:53:05
Сообщений: 84
Откуда: Одесса
Рейтинг сообщения: 0
Томатный писал(а):
очищает все пины порта B кроме 0 и 1
т.е. на 4 линиях даных ЖКИ делает нули, а сигналы RS и E оставляет неизмеными

по идее должно быть так:
in r16,PORTB
andi r16,$03
out PORTB,r16


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 00:56:32 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт июл 31, 2007 20:32:30
Сообщений: 174
Откуда: Киев, Украина
Рейтинг сообщения: 0
ну да, я выложил код, до того как нашел ошибку :) сорри, что забыл сказать


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 14:06:03 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср мар 07, 2007 22:58:02
Сообщений: 586
Откуда: Черкассы, Украина
Рейтинг сообщения: 0
Итак. Хочу тахометр на МК для вентилятора ПК. Хочу на АСМе. Выбор пал мерять длину периода с таходатчика вентилятора. Меряем время одного периода, умножаем на два и делим 60 на то что получилось. Проблема в математике. Написал на Си - и нихрена не понял что там он на асме накатал. Посмотрел аппноут AVR200 и не понял как там деление получается. Надо реализовать такую формулу 60/(word*0.01024) где word - 16-разр число. полученное число я планирую переделать в BCD и вывести на LCD. А вот с такими вот действиями на асме всё стало. Прошу подробно распиать наиболее выгодный путь. Я читал тут на форуме что можно запятые потом в ответы подставлять и т.д. Поэтому неплохо было бы в ответе написать логику рассуждений - типа "ввиду того что делимое 0,01024 делить мы будем такто потому что если будем делить нетакто то получится вот так". Заранее спасибо

_________________
There is only 10 kind of people: those who understands binary code and those who dont!!!


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 14:09:19 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Negor писал(а):
Написал на Си - и нихрена не понял что там он на асме накатал. Посмотрел аппноут AVR200 и не понял как там деление получается.


Дак если на Си УЖЕ написал ... может РАЗУМНО и продолжить на нём ?!

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 14:34:48 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср мар 07, 2007 22:58:02
Сообщений: 586
Откуда: Черкассы, Украина
Рейтинг сообщения: 0
Не - на Си я написал кусочек(ничтожный) который и вычисляет эту формулу. Написал СПЕЦИАЛЬНО чтоб потом заюзать в проэкте на асм. Написать проэкт на АСМе - дело принципа, тем более что столбко уже вложил - осталось чуть меньше половины

_________________
There is only 10 kind of people: those who understands binary code and those who dont!!!


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 15:16:57 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт июл 31, 2007 20:32:30
Сообщений: 174
Откуда: Киев, Украина
Рейтинг сообщения: 0
извините, что перебиваю, но я снова остановился на проблеме...
как мне вывести число в регистре на символьный ЖКИ?
с делением проблемы...
команда FMUL дает тот же результат что и сдвиг регистра вправо


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 13, 2008 21:38:22 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт июл 31, 2007 20:32:30
Сообщений: 174
Откуда: Киев, Украина
Рейтинг сообщения: 0
ложная тревога, тут все есть:
http://elm-chan.org/cc_e.html :oops: :?

пока найдешь, можно подумать что этим никто никогда не занимался...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 19, 2008 19:03:19 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт окт 02, 2007 14:43:23
Сообщений: 223
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Господа, вопрос следующий
имеется рабочая прошивка для тини 2313, девайс готов и думаю что исправен. Но есть одно но! Семисегментные индикаторы я воткнул не с общим анодом, как автор статьи просил - а с общим катодом (были у меня под рукой, не стал заморачиваться). В обучалке автор писал что мол замена индикаторов - дело плёвое, 2 строчки в коде и всё ок. Но я уже второй час по форуму в поисках этих двух строчек и ничего вразумительного не нашел. Будьте любезны, не откажите в помощи.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 19, 2008 19:21:04 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
эти строчки надо не на форуме искать, а в исходнике программы :)

кратко: надо инвертировать сигналы на сегменты и общие анлды/катоды. т.е. найти место в программе, где эти данные выводятся и перед выводом проинвертировать их.

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 19, 2008 19:25:02 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт окт 02, 2007 14:43:23
Сообщений: 223
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Это я догодался, но проблема в том что я очень плохо знаком с синтаксисом ассемблера, потому и спрашиваю, может ли кто-нить подсказать какие комманды мне нужно дописать (или стереть) чтоб инвертировать выход портаБ


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 19, 2008 19:33:32 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 05, 2007 12:44:43
Сообщений: 87
Откуда: C:\Russia\SPb
Рейтинг сообщения: 0
GRafGRay писал(а):
но проблема в том что я очень плохо знаком с синтаксисом ассемблера

Очень плохо.

Всё засисит от того каким образом идет взаимодействие с портом, т.е. нужные биты устанавливаются/очищаются по одиночке или все сразу.
Если по одиночке, то копайте в сторону команд SBI и CBI.
Если сразу, то чтоб инвертировать значение в регистре юзайте команду COM.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 19, 2008 19:54:39 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт окт 02, 2007 14:43:23
Сообщений: 223
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Код и девайс отсюда http://www.radiokot.ru/lab/controller/01/


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 27, 2008 22:40:22 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт июл 10, 2007 23:15:17
Сообщений: 167
Откуда: Магнитогорск
Рейтинг сообщения: 0
во вложении два фрагмента кода от программы (контроллер мега64)
один без использования RCALL а второй с использованием вот который без RCALL (MEG1.ASM) он работает на выводе порта D7 пролетает 0 а коде MEG2.ASM этого 0 нет объясните почему хотя компилятор ошибки не выдаёт просто хочу чтобы в основной программе были подпрограммы а неполучается


Вложения:
Комментарий к файлу: этот код не работает
MEG2.ASM [1.17 KiB]
Скачиваний: 640
Комментарий к файлу: этот код работает
MEG1.ASM [1.21 KiB]
Скачиваний: 656
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 27, 2008 22:56:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 05, 2007 12:44:43
Сообщений: 87
Откуда: C:\Russia\SPb
Рейтинг сообщения: 0
И в MEG2.ASM и MEG1.ASM код почти одинаковый, всё должно работать и в том и в другом случае. Разница только в том, что там где используется RCALL, задержка будет на 7 тактов дольше.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 27, 2008 23:10:46 
Нашел транзистор. Понюхал.

Зарегистрирован: Вт июл 10, 2007 23:15:17
Сообщений: 167
Откуда: Магнитогорск
Рейтинг сообщения: 0
в том то и дело что не работает
я сейчас просто записываю эти короткие коды в мегу и осцилом смотрю в коде где без rcall нолик пробегает а с rcall его нет вот такая вот проблема
а вот ещё если вместо файла m64def.inc подставить 8515def.inc и в коде убрать строку sts XMCRA,temp копилятор при таком раскладе ругается (т.к у 8515 нет такого регистра) всё робит но у меня же мега64


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 28, 2008 00:37:01 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 12, 2007 20:53:05
Сообщений: 84
Откуда: Одесса
Рейтинг сообщения: 0
может включен режим совместимости с мега103, как здесь

http://www.radiokot.ru/forum/viewtopic.php?t=8985


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 28, 2008 16:26:46 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт июл 31, 2007 20:32:30
Сообщений: 174
Откуда: Киев, Украина
Рейтинг сообщения: 0
пожалуйста наведите на правильный путь :shock: :oops:
когда происходит прерывание по завершению приема UART, МК перегружается или происходит прыжок в начало програмы(или другой вариант, сам не знаю).
Это видно по тому, что у меня после инициализации на ЖКИ выводится надпись "Хеллоу" и после очистки экрана должна выполняться основная програма, но у меня после очистки экрана снова появляется надпись "Хеллоу" и так происходит пока поступают даные на RXD.
для меги32 векторы прерываний описал так:
Код:
rjmp RESET
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
rjmp USART_RXC
reti
reti
reti
reti
reti
reti
reti

в подпрограме USART_RXC пусто:
Код:
USART_RXC:
reti

и ещё вопрос: можно ли в одной подпрограме использовать несколько ret или reti ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 28, 2008 16:36:26 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
оформите таблицу векторов прерываний, как положено - думаю, проблемы исчезнут. используйте конструкцию
Код:
   .org VECTOR
   rjmp VECTOR_FUNC
вместо кучи бестолковых nop-ов или rjmp-ов. кто вас научил так оформлять таблицу векторов прерываний?!

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 28, 2008 16:39:05 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Томатный писал(а):
когда происходит прерывание по завершению приема UART, МК перегружается или происходит прыжок в начало програмы(или другой вариант, сам не знаю).

для меги32 векторы прерываний описал так:


Как правильно сделать посмотрите в АСМ листинге (файл .lst) в примере к задаче 5 курса - там как раз работа с USART и с LCD.

Или в примере в VMLAB
C:\VMLAB\AVR_demo\UART.ASM

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


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

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


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

Сейчас этот форум просматривают: GARMIN и гости: 31


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

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


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