willka78 Опубликовано 8 января, 2011 Поделиться Опубликовано 8 января, 2011 Ребята спасите, уже который месяц сижу думаю и думаю, и ничего не могу надумать путевого Возможно я ищу что-то не в правильном направлении, но найти ответа на сложившиеся вопросы я просто не могу. Мне нужно следующее, прямое управление с компьютера микроконтроллером, все поиски постоянно выводят меня на программирование микроконтроллеров, это для меня пройденный этап, вот некоторые поиски вывели на USART/UART, почитал, что-то понял, что-то нет, был бы пример я бы разобрался давно. Как я понял это и есть отправка-прием сигналов в микроконтроллер-из микроконтроллера, схема преобразования в TTL есть и ее подключение к МК, а что делать дальше?, это самый больной для меня сейчас вопрос. Допустим мы соберем простую схему, прицепим 1 светодиод к микроконтроллеру, и подключим к ком порту все это через вышесказанную схему, а как писать программу в компьютере на отправку сигнала? Насколько я понимаю мы пишем сперва программу для МК, заливаем ее, а потом нужно писать программу для компа как бы??? Скажем сделаем программу так, 2 кнопки, вкл и выкл, на вкл включаем светодиод на выкл- выключаем. Если кому-то не составит труда объяснить все это на "пальцах" если я это понимаю не так как оно есть на самом деле, а еще лучше с программным кодом, ну так для намека чтобы было. Надеюсь на Вашу помощь, и заранее говорю спасибо 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 8 января, 2011 Поделиться Опубликовано 8 января, 2011 (изменено) на компе пишите программу скажем 1 кнопке присваиваете какой-то код в проге настраиваете управление СОМ-портом и передаете этот код в МК в МК обрабатываете этот код и зажигаете свои СД более подробно об этом можно почитать у 1 А.Ю. Кузьминов интерфейс RS232 ,примеры прог для ПК и МК 2 Пей Ан Сопряжение с ПК Изменено 8 января, 2011 пользователем IMXO 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Реле, вентиляторы, корпуса, разъемы, а так же любые электронные компоненты в нашем каталоге! Бесплатная доставка + 15% кэшбэк + скидки!Перейти на сайт ТМ Электроникс Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
willka78 Опубликовано 8 января, 2011 Автор Поделиться Опубликовано 8 января, 2011 А для МК тоже что-то писать нужно, прошивку? или оно будет общаться с компом напрямую, данные будут поступать, или будет оно работать так как мы в МК зашиваем программу, а потом просто с компа говорим что именно нужно сделать из запрограммированого случая??? А еще литературы не найдется по данной теме, а то так вкусно, аж еще охото, да еще и примеры написанные на дельфи, это вообще замечательно, вот дельфи я заметил, язык программирования с полной дисциплиной, не как с++ помойка какая-то, а не программная структуризация, не понимаю почему оно завоевало себе такой авторитет, хотя программная возможность выше как понимается. ну это все лирика, а за книги большое спасибо как раз то что нужно, хотя конкретные примеры было бы лучше 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
FR. Опубликовано 8 января, 2011 Поделиться Опубликовано 8 января, 2011 Естественно, для МК нужна прошивка и для ПК программа управляющая. Для связи МК с ПК я пользовал адаптер на FT232, можно и на МАХ232. Я делал так - в мк кольцевой буфер на прием\отправку, сидит и ждет пока в буфер свалится какойто символ, дальше проверяем, если это нужный символ - делаем что нада, если нет - сидим дальше. Сложного ничего нет) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке. Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
willka78 Опубликовано 8 января, 2011 Автор Поделиться Опубликовано 8 января, 2011 Естественно, для МК нужна прошивка и для ПК программа управляющая. Для связи МК с ПК я пользовал адаптер на FT232, можно и на МАХ232. Я делал так - в мк кольцевой буфер на прием\отправку, сидит и ждет пока в буфер свалится какойто символ, дальше проверяем, если это нужный символ - делаем что нада, если нет - сидим дальше. Сложного ничего нет) Ну если не сложно дайте пример, я в этом еще не много понимаю, из-за большого количества устной инфы я ничего толком то и не пойму, реальный примерчик, дело другое, просто примерчик напишите как это реализовывать, очень прошу 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Литиевые батарейки и аккумуляторы от мирового лидера EVE в КомпэлКомпания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
mr_electron Опубликовано 8 января, 2011 Поделиться Опубликовано 8 января, 2011 (изменено) Надо найти даташит на конкретный микроконтроллер, поддерживающий (а точнее имеющий в своем составе) USART. Далее по даташиту проследить всю цепочку задействования этого USART'а. То есть какие имеются регистры, что надо сделать для приема байта, что - для передачи. Если имели дело с PIC'ами, то вроде PIC16F874 (876, 877) работают с USART. Со стороны комьютера надо определиться на каком языке будете программировать. Если на Delphi, то имеется свободно распространяемый компонент TBComPort (построен на основе api функций, но в использовании намного проще). Его необходимо установить в Delphi, описание его использования как правило прилагается (наберите в поиске TBComPort). А конкретная программа вряд ли поможет, если перед глазами нет даташита. Ой, я извиняюсь. Не посмотрел, что форум AVR, но общая мысль остается. Изменено 8 января, 2011 пользователем mr_electron 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
FR. Опубликовано 8 января, 2011 Поделиться Опубликовано 8 января, 2011 работа с буфером подробно описана на http://chipenable.ru/index.php/programming-c/44-usart-uart-queue.html Код рабочий, я на его взял за основу А вообще рекомендую обучалку DIHALTa http://easyelectronics.ru/category/avr-uchebnyj-kurs 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
willka78 Опубликовано 17 января, 2011 Автор Поделиться Опубликовано 17 января, 2011 Помогите пожалуйста еще с уартом, что-то не получается сделать вход в МК и сверить условие, по примерам делал, там пишут у них работает у меня нет, работает только выход из МК, ну отправка в компьютер в сымсле, а из компьютера не хочет 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
FR. Опубликовано 17 января, 2011 Поделиться Опубликовано 17 января, 2011 ну так код покажите и как-что подключено 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuroy Опубликовано 20 января, 2011 Поделиться Опубликовано 20 января, 2011 (изменено) Добрый день програмисты! Мучаюсь с ATMEGA8535. Хочу передать информацию, а именно в моём случае три буквы "AVR" с мокроконтроллера через USART на COM порт компьютера в программу hiper terminal. Программка зашиваемая в контроллер вот: .include "m8535def.inc" ; Присоединение файла описаний .list ; Включение листинга .def temp=R16 ; Определение главного рабочего регистра .def count=R17 ; Счётчик .equ start=0 ; 0 вывод порта PD .def rab=r18 .org 0 ; Установка текущегно адреса в ноль rjmp init ;---------------Инициализация микроконтроллера------------------ init: ;-----------------Инициализация стёка-------------------------- ldi temp, high(RAMEND) ; Выбор адреса вершины стёка out SPH, temp ; Запись его в регистр стёка ldi temp, low(RAMEND) out SPL, temp ldi ZL, low(text*2) ldi ZH, high(text*2) ldi count, 3 ; Установка счётчика байтов ldi temp, 0 ; Запись 0 в temp out DDRC, temp ; Порт D на ввод ldi temp, 0xFF out PORTC, temp ; Подключаем внутренние резисторы ;---------------Настройка UART на передачу данных--------------- ldi temp, 1 ;Настройка скорости out UBRRL, temp ldi temp, 0 out UCSRA, temp ldi temp, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE) out UCSRB, temp ldi temp, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1) out UCSRC, temp WAIT_START: sbic PINC, start ; Ожидание нажатия кнопки rjmp WAIT_START OUTPUT: lpm ; Загрузка байта из програмной памяти в r0 out UDR, r0 ; Вывод этого байта в регистр данных(пер-ик) sbi UCSRA, TXC ; Сброс флага ТХС WAIT: sbic UCSRA, TXC ; Ожидание завершения передачи rjmp next rjmp WAIT next: adiw zl,1 ; Увеличение адреса на 1 dec count ; Уменьшение счётчика на 1 brne OUTPUT ; Продолжение вывода(перейти сли Z не равно 0) fin: rjmp fin ; Передача завершена text: .db 'A','V','R' ; Текст сообщения Пишу а AVR studio. Когда запускаю пошаговое выполнение программы в AVR studio, то нужный код поступает в регистр UDR. Когда прошиваю программу в контроллер , то на выходе TXD нет никакого кода. Симулирую программу в протеусе, тоже на выходе TXD ничего нет. Вопрос в том куда этот код девается, как его на TXD вывести? Может в программу ещё што-то надо дописать....? Много книжек пересмотрел, не могу найти нужный пример. Может как-нибудь надо ещё и TDX инициализировать??? Выручайте.... Изменено 20 января, 2011 пользователем Yuroy 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
rtfcnf Опубликовано 20 января, 2011 Поделиться Опубликовано 20 января, 2011 Помимо записи программы в AVR еще нужно прошить конфигурацию, Вы это делаете? Схему устройство тоже не плохо бы показать. А Гипер-терминал умеет работать с LPT? 0 Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности за материальный, либо моральный ущерб причиненный данным сообщением напрямую или косвенно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuroy Опубликовано 20 января, 2011 Поделиться Опубликовано 20 января, 2011 Помимо записи программы в AVR еще нужно прошить конфигурацию, Вы это делаете? Схему устройство тоже не плохо бы показать. А Гипер-терминал умеет работать с LPT? Исправил на COM. Если вы имеете ввиду фьюзы под словом конфигурация, то их пока не трогал? Схема очень простая. Питание, и кнопка в порту PC0. Есть ещё микросхема МАХ232, но и без этого сигнал на вывлде контроллера TXD должен быть. Частота от внутреннего генератора 1 МГц. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
rtfcnf Опубликовано 20 января, 2011 Поделиться Опубликовано 20 января, 2011 (изменено) В симуляторе вся Ваша передача занимает 1 миллисекунду. Вы в железе можете отловить такую короткую посылку? Про протеус не могу ни чего сказать, не пользуюсь. Вот еще вариант. Свой код допишите сами. Обратите внимание, что ожидание сделано вот так " SBIS UCSRA,UDRE " .include "m8535def.inc" ; Internal Hardware Init ====================================== .equ XTAL = 8000000 .equ baudrate = 9600 .equ bauddivider = XTAL/(16*baudrate)-1 .list ; Включение листинга .def temp=R16 ; Определение главного рабочего регистра .def count=R17 ; Счётчик .equ start=0 ; 0 вывод порта PD .def rab=r18 .org 0 ; Установка текущегно адреса в ноль rjmp init ;-----------------Инициализация стёка-------------------------- init: ldi temp, high(RAMEND) ; Выбор адреса вершины стёка out SPH, temp ; Запись его в регистр стёка ldi temp, low(RAMEND) out SPL, temp ldi ZL, low(text*2) ldi ZH, high(text*2) ldi count, 3 ; Установка счётчика байтов ldi temp, 0 ; Запись 0 в temp out DDRC, temp ; Порт D на ввод ldi temp, 0xFF out PORTC, temp ; Подключаем внутренние резисторы rcall uart_init Main: LDI R16,'E' ; загоняем в регистр код буквы «E» RCALL uart_snt ; Вызываем процедуру отправки байта. stop: NOP ; Любой дальнейший код NOP rjmp stop uart_init: LDI R16, low(bauddivider) OUT UBRRL,R16 LDI R16, high(bauddivider) OUT UBRRH,R16 LDI R16,0 OUT UCSRA, R16 ; Прерывания запрещены, прием-передача разрешен. LDI R16, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE) OUT UCSRB, R16 ; Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор LDI R16, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1) OUT UCSRC, R16 ; Процедура отправки байта uart_snt: SBIS UCSRA,UDRE ; Пропуск если нет флага готовности RJMP uart_snt ; ждем готовности - флага UDRE OUT UDR, R16 ; шлем байт RET ;Посылка байта: RCALL uart_init ; вызываем нашу процедуру инициализации. ;Ожидание байта uart_rcv: SBIS UCSRA,RXC ; Ждем флага прихода байта RJMP uart_rcv ; вращаясь в цикле IN R16,UDR ; байт пришел - забираем. RET text: .db 'A','V','R' ; Текст сообщения Изменено 20 января, 2011 пользователем rtfcnf 0 Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности за материальный, либо моральный ущерб причиненный данным сообщением напрямую или косвенно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuroy Опубликовано 21 января, 2011 Поделиться Опубликовано 21 января, 2011 В общем кажется разобрался. Моя программа написана правильно. rtfcnf, вся загвоздка была как вы и предполагали в частоте микроконтроллера, а также в скорости передачи кода BAUD. В регистр UBRRL загрузил 0х33, что соответствует скорости 9600 при частоте микроконтроллера 8 МГц. Заработало в протеусе! Попробовал разные частоты, разные скорости обмена, почему-то только на частоте 8 МГц и со скоростью 9600 работает(в протеусе). На других частотах выдаёт непонятные символы. Ну хорошо, что теперь знаю почему не работало. Я думал, что всё таки дело в программе. В понедельник проверю на железе - отпишусь. rtfcnf, спасибо за советы. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.