Мелкие вопросы по МК и ПЛИС.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Вешать можно на любую лапку, все равно там свой протокол.
Docendo discimus
- Volgol_555
- Потрогал лапой паяльник
- Сообщения: 301
- Зарегистрирован: Пт сен 23, 2011 13:13:51
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Всем привет. Возможно это было ранее, возможно и глупо, но все же...
Я ещё не достаточно изучил USART, но я так понял что для его реализации нужны только 2 ноги МК (RxD и TxD)? С учетом того, что я делаю проект с последующим наращиванием функций, встал такой вопрос. Могу ли я использовать USART и параллельно подключить нагрузку, но так чтобы ничто друг другу не мешало???
Уточняю: мне нужно подключить LCD дисплей на порты D у Atmega8 и в тоже время пользоваться USART'ом, а это порты D.0 и D.1. Если поставить резисторы в 4.7кОм, на именно эти 2 порта идущие к LCD - это поможет?
Заранее спасибо)
Я ещё не достаточно изучил USART, но я так понял что для его реализации нужны только 2 ноги МК (RxD и TxD)? С учетом того, что я делаю проект с последующим наращиванием функций, встал такой вопрос. Могу ли я использовать USART и параллельно подключить нагрузку, но так чтобы ничто друг другу не мешало???
Уточняю: мне нужно подключить LCD дисплей на порты D у Atmega8 и в тоже время пользоваться USART'ом, а это порты D.0 и D.1. Если поставить резисторы в 4.7кОм, на именно эти 2 порта идущие к LCD - это поможет?
Заранее спасибо)
Самое гениальное - всегда самое простое
Re: Мелкие вопросы по МК и ПЛИС.
Что-то я опять затупил...
Можно как-то сложить знаковое 8-битное число с беззнаковым 16-битным без условных переходов?
Можно как-то сложить знаковое 8-битное число с беззнаковым 16-битным без условных переходов?
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
резисторы в 4.7кОм, на именно эти 2 порта идущие к LCD - это поможет?
От чего поможет?
Вообще говоря - нет, поскольку одним выходом вы собираетесь управлять двумя входами. Ясен пень они оба будут ловить инфу. Но! Если продумать как следует, то возможно, что одно другому и не помешает или будет не мешать работать как надо. Все зависит от ваших возможностей.
2ploop: Навскидку: знаковый бит размножить на старший байт и сложить два двухбайтных числа.
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
Типа этого?
Код: Выделить всё
; r16 - LSB беззнакового 16-битного
; r17 - MSB беззнакового 16-битного
; r18 - знаковое 8-битное
clr r19
bst r18,7
bld r19,0
neg r19
add r16,r18
adc r17,r19
-
BerZerK-ku
- Мучитель микросхем
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Re: Мелкие вопросы по МК и ПЛИС.
Вот что значить асм мышление, я бы о подобном подходе и не подумал
:
Код: Выделить всё
clr r19
sbrc r18, 7
ldi r19,0xFF
-
Alkul
- Держит паяльник хвостом
- Сообщения: 933
- Зарегистрирован: Ср апр 13, 2011 11:09:20
- Откуда: Екатеринбург
Re: Мелкие вопросы по МК и ПЛИС.
Volgol_555 писал(а):Я ещё не достаточно изучил USART, но я так понял что для его реализации нужны только 2 ноги МК (RxD и TxD)?
Если Вы говорите именно про USART, то, исходя из названия, он может работать как в асинхронном, так и в синхронном режиме.
Для асинхронного режима достаточно двух пинов (выводов) - RxD и TxD, вы правы. А для синхронного режима задействуется третий пин - XCK (вроде, так он называется) для подачи синхроимпульсов.
Volgol_555 писал(а):С учетом того, что я делаю проект с последующим наращиванием функций, встал такой вопрос. Могу ли я использовать USART и параллельно подключить нагрузку, но так чтобы ничто друг другу не мешало???
Уточняю: мне нужно подключить LCD дисплей на порты D у Atmega8 и в тоже время пользоваться USART'ом, а это порты D.0 и D.1.
Я настоятельно не рекомендую так делать. Во-первых, это моветон
Если да, то для управления таким дисплеем пины микроконтроллера, как правило, переключаются в режим выходов.
Таким образом, для подачи управляющего сигнала на дисплей Вам будет нужно переключить пин RxD в режим выхода, а это можно сделать, только отключив USART. При этом, скорее всего, потребуются добавочные схемотехнические решения для исключения конфликтов наподобие подачи логических уровней на выходные цепи драйвера преобразования интерфейса USART TTL в RS-485/422/232. И Вы сможете, во-первых, потерять байт(ы), поступившие на USART в то время, когда Вы управляете дисплеем. Во-вторых, из-за отключения USART при этом Вы не сможете организовать отправку данных по USART, используя прерывания по передаче байта.
Я понимаю, что у Вас, скорее всего, есть готовые подпрограммы для работы с дисплеем, рассчитанные для подключения дисплея к порту D. Поверьте, гораздо проще будет внести изменения в эти подпрограммы и перенести дисплей на другой порт. Тем более, что изменения не так уж и велики.
Re: Мелкие вопросы по МК и ПЛИС.
Вот что значить асм мышление, я бы о подобном подходе и не подумал
Угу, просто спать больше надо
Re: Мелкие вопросы по МК и ПЛИС.
Не знаю, на работе пока, девайс дома 
Судя по расчетам - должно.
Судя по расчетам - должно.
- Volgol_555
- Потрогал лапой паяльник
- Сообщения: 301
- Зарегистрирован: Пт сен 23, 2011 13:13:51
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Alkul писал(а):
Я понимаю, что у Вас, скорее всего, есть готовые подпрограммы для работы с дисплеем, рассчитанные для подключения дисплея к порту D. Поверьте, гораздо проще будет внести изменения в эти подпрограммы и перенести дисплей на другой порт. Тем более, что изменения не так уж и велики.
Спасибо, я тоже так думал - переделать программу на другой порт, - но мне дозволяется в CodeVisionAVR у Atmega8 выставить LCD на порты B или D. Но мне нужны порты D.0 и D.1 для USART и порты B.6 и B.7 для внешнего кварца, т.е. конфиг портов B и D не подходит. Остается только порты C. Но к нему относится порт С6-reset, поэтому CodeVision не позволяет выполнить подключение к C, но есть С.3, который по идее свободный и можно было бы его поставить вместо С6. Так вот вопрос: как в CodeVision поменять порт С6 c С3 для LCD дисплея. Пробовал в библиотеки залезть, но там ничего конкретного нету(
Вот как в CV проходит инициализация портов для B
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
Как сделать для портов C ?
Самое гениальное - всегда самое простое
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Мелкие вопросы по МК и ПЛИС.
.. заглянуть в datasheet или файл mega8.h в папке inc.Volgol_555 писал(а):Как сделать для портов C ?
Код: Выделить всё
#asm
.equ __lcd_port=0x15 ;PORTС
#endasm- Volgol_555
- Потрогал лапой паяльник
- Сообщения: 301
- Зарегистрирован: Пт сен 23, 2011 13:13:51
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ChipKiller писал(а):.. заглянуть в datasheet или файл mega8.h в папке inc.Volgol_555 писал(а):Как сделать для портов C ?Код: Выделить всё
#asm
.equ __lcd_port=0x15 ;PORTС
#endasm
да, нашел) Остался один вопрос. Можно ли С6 заменить на С3?, скажем переопределить заново? И так чтобы это сработало с LCD дисплеем, т.е. в каком-то смысле его обмануть посылая сигнал не С.6, как это должно быть,а на С3, соответственно туда ногу подключив. При этом сделать наиболее просто не переправляя библиотеки. Если да, то как это можно сделать на Си?
Самое гениальное - всегда самое простое
- DJ_Kiridza
- Мучитель микросхем
- Сообщения: 458
- Зарегистрирован: Пн дек 13, 2010 13:01:59
- Откуда: Украина
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
pyzhman писал(а):Вешать можно на любую лапку, все равно там свой протокол.
Проблема не в том, чтобы вешать на лапку - это я и сам понимаю, корень вопроса звучал:
"подходит ли USI для работы с DS18B20" ??
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
DJ_Kiridza писал(а):"подходит ли USI для работы с DS18B20" ??
Проще с нуля написать 1-Wire, чем колдовать с USI.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Мелкие вопросы по МК и ПЛИС.
pyzhman писал(а):Типа этого?
Проканало? А то вломы проверять.
Вот так вот:
Код: Выделить всё
clr r19
sbrc r18, 7
ldi r19,0xFF
add r16,r18
adc r17,r19
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Код: Выделить всё
sbrc r18, 7Что за фигня???!!!! Сначала одно, потом другое. Пацан сказал - пацан сделал. Некрасиво как-то получается.
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
Дык, я как покороче
Работает главное...
Работает главное...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Так и говорил бы - покороче, а не морочить голову людям. Расстроил ты меня. Пойду водку пить, вчера мне обещали. 
Docendo discimus
Re: Мелкие вопросы по МК и ПЛИС.
Кстати первый вариант тоже работает.
Так что много не напивайся
Так что много не напивайся