Александр, я заметил, что при отладке 6 студия делает 4 хода при нажатии на F11, когда стрелка стоит на операторе "nop" в бесконечном цикле. Не подскажете, как сделать так, чтобы она делала 1 ход за одно нажатие.
Здравствуйте, Александр! Не могли бы вы помочь в одном непростом деле? Дело такое: Мне нужно сканировать состояние кнопок(пусть их будет 8шт подключённые через мультиплексор) и передавать их по юарту. Но тут есть одно "НО": перед отправкой байта кнопки(нажата - 0x7F; отпущена - 0х00;) должен отправляться статус-байт(0b10110000) а заним id кнопки. И если нажато например сразу 5 кнопок- то юарт передают значение каждой кнопки с ранее переданой перед ним статус-байтом и id. тут такое примечание: каждая кнопка имеет свой id. В конечном результате поссылка должна состоять их 3 байт(статус-байт---байт-id---байт-состояния) например: 0xB0 0x01 0x7F; 0xB0 0x05 0x7F; 0xB0 0x09 0x7F; Двумя словами: хочу реализовать MIDI протокол но по Юарту
Добрый день! Подскажите пожалуйста. Долго бьюсь- не могу понять почему после записи в регистр UDR программа начинается с начала. В процессе отладки видно что маркер становится сразу после int main(void). Не обращайте внимания на быдлокод- это черновик - урезал большую программу - искал причину неадекватного поведения. Отлаживаю на JTAG ICE 1. AVR Studio 4. //Atmega16A - èñïîëüçóåìûé ìèêðîêîíòðîëëåð #define F_CPU 7372800 //îáúÿâèì áèáëèîòåêè //#include #include "util/delay.h" #include #include //ïîäãðóæàåì ïðåðûâàíèå unsigned char Rx_Char, Rx_Char_old ; unsigned char char1; int Time_max=30; // ÷òåíèå ïîðòà ISR(USART_RXC_vect) { Rx_Char = UDR; char1=Rx_Char; //UCSRB |=(1
+Александр Писанец Я так понимаю ATmega16 может тактироваться внутренним резонатором до 16 МГц. Как меняется программно частота тактирования без подключения внешних резонаторов? Просто умолчанию при создании проекта контролер тактируется с частотой в 1 МГц.
+Александр Писанец Okk. Думаю не только мне будет интересен по этой теме урок. В одних из тем вы спрашивали что было бы интересно для подписчиков. Так вот эта тема интересна, а именно урок на тему установок бит фьюзов. И еще команда #define F_CPU 4000000, про которую кричат на всех форумах в студии работает или нет? Путем експериментов так и не выяснил для себя. По крайней мере значение частоты контролера в окошке Processor View не меняется...
Jack Sparrow могу точно сказать что работает для библиотеки delei. И для ряда других библиотек. Так мы даем понять на какой частоте работает микроконтроллер для подпрограмм библиотек. Частота микроконтроллера так не устанавливается
Добрый день. Вот тоже разбираюсь по usart, правда под рукой есть книга программирование avr на С. Автор несколько вариантов показывает, но я не могу ни как разобраться с программой. т.е "Использование потока stdout" "Использование потоков stdout, stdin для передачи и приема символов" "Использование потоков stdout, stdin для передачи и приема СТРОКИ" помогите пожалуйста разобратся, куда я могу скинуть листинги программы.
Я потоки не использую и врятли чем помогу. Подготовлю другое видео там все понятно на примере объясню. С USART работать очень просто и программы получаются гибкие.
Здравствуйте. А вы не используете протеус? у меня в нем возникли проблемы, когда я через terminal v1.9 отправляю число (в протеусе использую COMPIM подключеный к VIRTUAL TERMINAL), то в окне VIRTUAL TERMINAL, во время симуляции, показывает всякую несурядицу. Com port емулирую с помощью VSPE....
Подскажите, как включить IO View - там всё неактивно. JTAG у меня нет, но, как я понял, у вас в качестве отладчика стоит симулятор. Поставил у себя так же, но в IO View ничего не изменилось - всё так же неактивно
Спасибо большое. Все понятно, но возник такой вопрос. Я скопировал ваш проект и залил в мега 16 Микроконтроллеру отправляю через терминал цифру 2 а микруха принимает цифру 50 и так с любыми цифрами разница 48. Частота и боды обоих совподают. И еще когда микроконтроллер отправляет по юарту отправляет шеснадцатиричной системе исчисления как перевести в десятиричной. В чем причина не могу понять.
На самом деле микроконтроллер принимает и отправляет все шеснацатиричном системе. Проверил. Если задать на отправку 0х32 то терминал принимает нормально как цифру 2 Как можно решить эту проблему. Помоги разобраться. Может фюзы. Может студию надо настроить под десятиричную систему.6о цифрами проблема. А буквы нормально принимает и отправляет
Хорошо я понял, дело может быть и в терминале. Сегодня сделал такой эксперемент. Подключил к одному микроконтроллеру дисплей и заставил отследить что принимает уарт и если придет цифра 2 должен отвечать отправив цифру 10. А с другого микраконтроллера отправляю цифру 2. Так вот, отправляю цифру 2 другой микроконтроллер пригимаед на дисплее отображается 50 и все. И так с любыми цифрами разница получается на 48. А вот буквы нормально отправляет. Частота и боды у обоих одинаковы. 4000000 25 9600 бод
А разве при расчете скорости получается ровно 9,600 ? у меня получилось 9,615384... Не скажется ли такое округление при синхронизации с другими устройствами, которые рассчитывают скорость по своему?
хватит и приблизительной точности отклонение не большое. Даже если у вас выдет при каких то условиях на калькуляторе 9600 то в реале она всёравно подгуливать может.
Обязательно будут. Сейчас неплохой проект попался, востанавливаю электронный манипулятор. Попутно язык Java изучаю. Вы уж извините, все упирается во времени.
Добрый час Александр. Подскажите из практики если есть такова, в гараже у меня скважина от скважены к дому проходит " футляр" - труба диаметром на 110мм. в нем заведений кабель 380в и труба от скважены, хочу управлять насосом и другими нагрузками с помощью МК АТмега16 который будет находится в гараже и по плану общаться с ЦПУ находящийся в доме, соединение планируется проводить витой парой , расстояние 26 метров. Можете дать какие-то практические советы, по данному интерфейсу, кабель, может микросхему МАХ 232 применить, смущает ещё кабель 380 у него нет экрана просто 2я изоляция. Я из Ваших роликов понял ,что Вам этот интерфейс очень хорошо знаком. Спасибо Евгений. evgenvl25 @gmail.com
здраствуйте, имею вот такую штучку www.ebay.com/itm/171229503155 (USB to TTL RS232 Arduino Pro Mini Download PL2303 Replace FT232RL CP2302 Serial) можеш показать для чего она и как с ней работать? я недавно начал работать с микроконтроллерах. Спасибо.
Спасибо Огромное за Урок!!! Очень хороший урок, на высшем уровне.
Спасибо Огромное за Урок!!! Очень хорошо расказали про Юарт, и про его каждые биты!!! СПАСИБКИ!!!
Я этого урока столько ждал! Спасибо большое. :)
Очень ясно и понятно. Спасибо.
Спасибо Большое! Все было понятно рассказано !
Будим ждать с нетерпением
Здравствуйте Александр Николаевич! выкладывайте пожалуста исходники которые вы показываете в примерах. Спасибо!
Александр, я заметил, что при отладке 6 студия делает 4 хода при нажатии на F11, когда стрелка стоит на операторе "nop" в бесконечном цикле. Не подскажете, как сделать так, чтобы она делала 1 ход за одно нажатие.
Здравствуйте, Александр! Не могли бы вы помочь в одном непростом деле?
Дело такое: Мне нужно сканировать состояние кнопок(пусть их будет 8шт подключённые через мультиплексор) и передавать их по юарту. Но тут есть одно "НО": перед отправкой байта кнопки(нажата - 0x7F; отпущена - 0х00;) должен отправляться статус-байт(0b10110000) а заним id кнопки. И если нажато например сразу 5 кнопок- то юарт передают значение каждой кнопки с ранее переданой перед ним статус-байтом и id.
тут такое примечание: каждая кнопка имеет свой id. В конечном результате поссылка должна состоять их 3 байт(статус-байт---байт-id---байт-состояния)
например:
0xB0 0x01 0x7F;
0xB0 0x05 0x7F;
0xB0 0x09 0x7F;
Двумя словами: хочу реализовать MIDI протокол но по Юарту
Александр а 3 МК можно соединить по USART один мастер а 2 подчиненых
можно ли в двух подчиненных использовать только RX один провод ? Зарание спасибо.
+Никола Пшоня да
Здравствуйте, очень хорошие уроки для начинающих! Не планируется ли пара уроков по CAN?
Jony J Нет, я их сам не знаю. Всего невозможно охватить, та и незачем.
Добрый день! Подскажите пожалуйста. Долго бьюсь- не могу понять почему после записи в регистр UDR программа начинается с начала. В процессе отладки видно что маркер становится сразу после int main(void). Не обращайте внимания на быдлокод- это черновик - урезал большую программу - искал причину неадекватного поведения. Отлаживаю на JTAG ICE 1. AVR Studio 4.
//Atmega16A - èñïîëüçóåìûé ìèêðîêîíòðîëëåð
#define F_CPU 7372800
//îáúÿâèì áèáëèîòåêè
//#include
#include "util/delay.h"
#include
#include //ïîäãðóæàåì ïðåðûâàíèå
unsigned char Rx_Char, Rx_Char_old ;
unsigned char char1;
int Time_max=30;
// ÷òåíèå ïîðòà
ISR(USART_RXC_vect)
{ Rx_Char = UDR;
char1=Rx_Char;
//UCSRB |=(1
Отличный Урок! Скорость передачи задается от тактовой частоты контролера. А как изменять частоту контроллера?
+Jack Sparrow Сменить кварцевый резонатор.
+Александр Писанец Я так понимаю ATmega16 может тактироваться внутренним резонатором до 16 МГц. Как меняется программно частота тактирования без подключения внешних резонаторов? Просто умолчанию при создании проекта контролер тактируется с частотой в 1 МГц.
Устанавливается фюзами, внутреннее тактирование максимально можно установить 8Mгц.
+Александр Писанец Okk. Думаю не только мне будет интересен по этой теме урок. В одних из тем вы спрашивали что было бы интересно для подписчиков. Так вот эта тема интересна, а именно урок на тему установок бит фьюзов. И еще команда #define F_CPU 4000000, про которую кричат на всех форумах в студии работает или нет? Путем експериментов так и не выяснил для себя. По крайней мере значение частоты контролера в окошке Processor View не меняется...
Jack Sparrow могу точно сказать что работает для библиотеки delei. И для ряда других библиотек. Так мы даем понять на какой частоте работает микроконтроллер для подпрограмм библиотек. Частота микроконтроллера так не устанавливается
Добрый день. Вот тоже разбираюсь по usart, правда под рукой есть книга программирование avr на С. Автор несколько вариантов показывает, но я не могу ни как разобраться с программой.
т.е "Использование потока stdout"
"Использование потоков stdout, stdin для передачи и приема символов"
"Использование потоков stdout, stdin для передачи и приема СТРОКИ"
помогите пожалуйста разобратся, куда я могу скинуть листинги программы.
Я потоки не использую и врятли чем помогу. Подготовлю другое видео там все понятно на примере объясню. С USART работать очень просто и программы получаются гибкие.
Здравствуйте. А вы не используете протеус? у меня в нем возникли проблемы, когда я через terminal v1.9 отправляю число (в протеусе использую COMPIM подключеный к VIRTUAL TERMINAL), то в окне VIRTUAL TERMINAL, во время симуляции, показывает всякую несурядицу. Com port емулирую с помощью VSPE....
Владимир Зинченко Не использую протеус
проблема видимо с настройками скорости
Подскажите, как включить IO View - там всё неактивно.
JTAG у меня нет, но, как я понял, у вас в качестве отладчика стоит симулятор.
Поставил у себя так же, но в IO View ничего не изменилось - всё так же неактивно
Богдан Белик Врятли чем помогу, не должно такого быть.
Здравствуйте Александр, продолжение планируете или проект изжил себя?
На данный момент свободного времени нет. Бросать не собераюся, продолжение обязательно будет. Все упирается в свободное время.
Ясненько))) Будем ждать с нетерпением))) У вас просто шикарно получается объяснять)
Я может пропустил что то, но захотелось посмотреть на текст программы
и не нашел. Тексты не выкладываются или я не знаю где их смотреть?
Спасибо.
+S. Portnik Код маленький не стал размещать.
Александр чи можна з 2 МК передавати дані на 1 приймач, тобто коли 2 передатчика і 1 приймач?
+Міша Поляруш Только если передавать данные поочередно.
Спасибо большое. Все понятно, но возник такой вопрос. Я скопировал ваш проект и залил в мега 16 Микроконтроллеру отправляю через терминал цифру 2 а микруха принимает цифру 50 и так с любыми цифрами разница 48. Частота и боды обоих совподают. И еще когда микроконтроллер отправляет по юарту отправляет шеснадцатиричной системе исчисления как перевести в десятиричной. В чем причина не могу понять.
В терминале скорей всего настроено сразу не на десятичную систему
@@АлександрПисанец если терминал настроить на десятиричную систему то вообще не принимает цифры. Принимает только буквы
На самом деле микроконтроллер принимает и отправляет все шеснацатиричном системе. Проверил. Если задать на отправку 0х32 то терминал принимает нормально как цифру 2 Как можно решить эту проблему. Помоги разобраться. Может фюзы. Может студию надо настроить под десятиричную систему.6о цифрами проблема. А буквы нормально принимает и отправляет
Микроконтроллер передает в любой системе исчисления, а вот как воспринимает термирнальная программа это уже вопрос.
Хорошо я понял, дело может быть и в терминале. Сегодня сделал такой эксперемент. Подключил к одному микроконтроллеру дисплей и заставил отследить что принимает уарт и если придет цифра 2 должен отвечать отправив цифру 10. А с другого микраконтроллера отправляю цифру 2. Так вот, отправляю цифру 2 другой микроконтроллер пригимаед на дисплее отображается 50 и все. И так с любыми цифрами разница получается на 48. А вот буквы нормально отправляет. Частота и боды у обоих одинаковы. 4000000 25 9600 бод
А разве при расчете скорости получается ровно 9,600 ? у меня получилось 9,615384... Не скажется ли такое округление при синхронизации с другими устройствами, которые рассчитывают скорость по своему?
хватит и приблизительной точности отклонение не большое. Даже если у вас выдет при каких то условиях на калькуляторе 9600 то в реале она всёравно подгуливать может.
Александр ето все, или продолжение уроков еще будет?
Обязательно будут. Сейчас неплохой проект попался, востанавливаю электронный манипулятор. Попутно язык Java изучаю. Вы уж извините, все упирается во времени.
Добрый час Александр.
Подскажите из практики если есть такова, в гараже у меня скважина от скважены к дому проходит " футляр" - труба диаметром на 110мм. в нем заведений кабель 380в
и труба от скважены, хочу управлять насосом и другими нагрузками с помощью МК АТмега16 который будет находится в гараже и по плану общаться с ЦПУ находящийся в доме, соединение планируется проводить витой парой , расстояние 26 метров.
Можете дать какие-то практические советы, по данному интерфейсу, кабель, может микросхему МАХ 232 применить, смущает ещё кабель 380 у него нет экрана просто 2я изоляция.
Я из Ваших роликов понял ,что Вам этот интерфейс очень хорошо знаком.
Спасибо Евгений.
evgenvl25 @gmail.com
здраствуйте, имею вот такую штучку www.ebay.com/itm/171229503155 (USB to TTL RS232 Arduino Pro Mini Download PL2303 Replace FT232RL CP2302 Serial) можеш показать для чего она и как с ней работать? я недавно начал работать с микроконтроллерах. Спасибо.
Сам им не пользовался, и рассказать про нее не чего не могу.