Гениально!! вот бы в моём 86 году такое было бы!!... (поял все на "коленках" ни тебе схем , ни деталей, ни интернета с википедией! ... вот такое было время... журнал "Радио" и интуиция ... ))) находил детали ... придумывал.. поял.. ну конечно не без поджёга деталей)...=)) ... ну тем ни менее медаль ВДНХ СССР получил ... (кому оно теперь нужно) ...Спасибо очень интересно , даже несмотря та то что все это мне известно! но как говориться -"Повторение - Мать учения!" =))) ... еще раз Спасибо за труд!!!
Несмотря на некоторые приколы, уроки отличнейшие и я бы сказал, одни из лучших. Если что то не работает в такой примитивной схеме, то это означает что надо искать неправильное написание программы или неправильное подключение в симуляции. Это не АЦП и ошибится тут просто негде, так как всё открыто и очевидно.
Забавно получилось, пока делал урок и учился думая головой и чисто логически правильно написал код и избежал ошибку на 26 минуте: ) Но все равно спасибо огромное за подобные уроки)))
Спасибо за урок, хорошо подан материал, всё наглядно и даже ошибки не вырезаны. Единственное замечание - большая просьба, не нужно говорить "так же само". Очень слух режет. Правильно говорить: "точно так же".
Уважаемый автор. Спасибо за уроки. Подскажите, какую бы тему дипломной работы Вы бы посоветовали для направления компьютерные науки для студентов техникума, связанную с программированием микроконтроллеров?
Спасибо за интересный курс! Подскажите пожалуйста почему Atmel Studio 6 не хочет подгружать библиотеку time.h для ATmega8 ? Хотелось бы использовать эту библиотеку для генерирования случайных чисел.
Привет. Функция delay не работает 6 ошибок ? сперва вообще автокомплит не находил, потом после вписывания вручную в код появилась но ошибки не куда не делись? Куда копать?
Выдает ошибку fabs was not declared in this scope, при двойном щелчке на ошибке открывает библиотеку задержки и указывает на __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); с выделенной частью __tmp. Пытался добавить библиотеку #include не помогло. В чем может быть причина?
Здравствуйте! Уважаемый автор, помогите разобраться. Согласно Вашему заданию с rand() хотельсь бы поморгать ОДНИМ СЛУЧАЙНЫМ светодиодом (портом). Но для того чтобы включить один порт надо в PORTB записать одно из чисел 1, 2, 4, 8, 16, 32, 64, 128 в десятичной форме. Записывая эти числа в PORTB, зажигается один из портов. Но если через переменную и возведение числа 2 в степень (pow) от 0 до 7, ничего не получается ??? Вот код /* Хотим моргать ЛЮБЫМ ОДНИМ светодиодом (портом) */ #define F_CPU 8000000 #include #include #include void preset(){ DDRB = 0xff; // все порты выход PORTB = 0x00; // все порты погашены } int main(void) { preset(); while(1) { int i = rand ()%7; // i присваиваем целое число от 0 до 7 i = pow(2,i); // i присваиваем 2 в степени от 0 до 7, т.е. 1,2,4,8,16,32,64,128 PORTB = i; // включаем один из портов _delay_ms(200); // задержка PORTB = 0x00; // все порты гасим _delay_ms(200); // задержка1 } }
За урок спасибо! Но у меня питание не подается с мк на схему, выходы горят синим, не красным, настройки питания ничего не изменили работаю с ИСИС профешнл. Есть идеи что не так? Сам разобрался, перед циклом не указал пресет, ошибка в коде была.
Подскажыте пожалста как из шыма можно вийти на другой цикл ну например из плавного мигания на другое мигания как в китайских гирляндах,но при помощи одной кнопки.Хотябы кусочек кода.штоб двигатса в каком то направлении. С Празником Вас
Почему он сохраняется как design file а не как .pdsprj? У меня в протеусе нет такой функции - создать дизайн. Также 6 портс является ресетом. Он не зажигается. Почему?
сделал аналогичное для мк attiny2313, с портом В и D все хорошо, порт А частично работал, PA2/RESET не работал, для ресета надо что-то особенное писать, чтобы он работал и светодиод моргал?
Выдаёт ошибку " Unable to start program libgcc Library. The specified file is an unrecognized or unsupported binary format." "Не удается запустить программу libgcc библиотеки. Указанный файл неизвестной или не поддерживается формат binare." Не могу создать NEX file. Подскажите как решить проблему.
через SPI программируется, потребуются 4 ножки, не считая питания. Если для вас это сложно, попробуйте ардуино, канал "Заметки Ардуинщика" в помощь, мне кажется он лучший на российском ютюбе.
DDRx - регистры конфигурирования портов, в 8-й меге: DDRB - порта B, DDRC - порта C, DDRD - порта D. Перед тем как "выводить сигнал" порт нужно сконфигурировать, т.е. указать какие ноги порта будуть работать как ввод, какие - как вывод (обычно это делается в самом начале программы). В данном примере (DDRB =0xFF) - все ноги порта B настраиваются на вывод.
В Proteus собрал эту схему. Загрузил прошивку, а светодиоды не мигают. К одному с выходов подключил вольтметр - он показывает скачки напряжения от 2.5-5V. При этом светодиоды не горят. Что мне делать? Как это исправить?
На сайте "схем.нет" что-то не понятно! Задал вопросы, а теперь не могу найти, где их задал! Может кто-то ответил? Я смотрю, у многих проблемы с этим "delay.h" Когда коментую строки "_delay_ms(1000)" -ошибок ноль! А с этими строками ошибки в файле "Delay.h". Пишет:"проверить выражение до"=". Как там могут быть ошибки?? И ещё, как в Atmel St создать уже готовый Hex файл?7
мои вариант дз, два дня пыхтел, неполучалось из за незнания синтаксиса С, но в конце концов разобрался, спасибо автору, жду новых уроков)) ЗЫ может мои код слишком длинный, может кто знает как его оптимизировать //Atmega8 #define F_CPU 8000000 #include #include #include void preset (){ DDRB = 0xff; PORTB = 0x00; DDRC = 0xff; PORTC = 0x00; DDRD = 0xff; PORTD = 0x00; }int main(void) { preset(); while(1) { int val = rand() % 7; int abr = rand() % 3; if (abr==0) { PORTB=(1
Собрал но в протеусе выдет 2 ошибки No power supply specified for net VCC in Power Rail Configuration Simulation FAILED due to netlist compiler error может подскжите в чуь проблема? Спасбо
+Stanislavas Goldyckis не настроено питание симуляция не удалась. У меня такое было на демонстрационной версии скачаной с офиц. сайта. На ней вообще ничего не заработало, потом писало что ключ лицензии не подходит.
Интересно, ваш код, который должен работать, в 8 протеусе с мегой 8 не заработал - ноль на порту, без изменений. А код-то рабочий, в железе проверено. Глюк какой-то.
Сам столкнулся с такой проблемой. Окно IO View есть, но в нём пусто. Долго искал, переустанавливал программу Atmel Studio 6.2, но всё равно запустить проэкт полноценно с запущеной программы не удаётся. Окно IO View остаётся пустым. Выход следующий. Программу Atmel Studio 6.2 не запускать ярлыком. Запустить проэкт с папки, где он установлен "при помощи программы Atmel Studio 6.2". Запустится программа Atmel Studio 6.2, проэкт и в Окне IO View всё будет.
Подключил светодиод через 220 Ом к ножке №1 это PC6/RESET. Подключил всё правильно, порты сконфигурированны правильно, но именно эта ножка не работает, при работающих другших. Почему?
Как к этому проекту применить RAND и все такое, для меня, полного чайника, просто нереально, три дня искал как это применить, в теории легко, на практике не возможно. Студия постоянно выдает ошибки, предостережения, сообщения. Знающие ответ на эту домашку скиньте применение с реальным кодом.
Не претендую на истину, ибо с этим сталкивался и раньше, как раз при знакомстве с AVR. Бяда в том, что в различных местах, читая о GPIO, везде объяснялось именно так, на аналогиях первых букв In/Out, 1/0
Почему не позволяет? Вроде позволяет, но с меньшей точностью. When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.
Эти щелчки мне помогают ориентироваться. Бывает нажмет какую ни будь кнопку которую я не заметил и включит что то (Когда слышу щелчок - понимаю что он нажал на какую то кнопку, которую я мог бы не увидеть, пока набираю код в студии). По этому, мне в наушниках, это не мешает. Как говорится приспосабливайся и используй во благо себе
Раньше была бесплатная: cxem.net/software/atmel_studio.php А сейчас новая версия 2.2$ - чисто символическая сумма. Ссылки на варез на канале запрещены, ищите старые версии, там же на офсайте должны быть
вот что у меня получилось /* * GccApplication1.c * ATtiny2313A * Created: 16.01.2016 18:32:53 * Author: Алексей */ #define F_CPU 8000000 #include #include #include void preset() { DDRA = 0b11111111; //порт A работать на выход PORTA = 0b00000000; //установить все выходы порта A в состояние нуля DDRB = 0B11111111; //порт В работать на выход PORTB = 0b00000000; //установить все выходы порта В в состояние нуля DDRD = 0b11111111; //порт D работать на выход PORTD = 0b00000000; //установить все выходы порта D в состояние нуля } int main(void) { preset(); while(1) { PORTA = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255 PORTB = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255 PORTD = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255 _delay_ms(40); //выдержать паузу 0,4 сек } }
Кто-нибудь подскажет как использовать случайную величину для _delay_ms().Сгенерировать с использованием rand() число и поставить это значение для _delay_ms().Как не пытался такой вариант не прокатывает Как я понимаю _delay_ms()- это макрос. Автор, пожалуйста, подскажите как быть...Это домашнее задание для урока...
+refat ismailov а я поменял "_delay_ms(1000);" на "rand() % 1; " и сделал домашку )) только сроку, написанную автором "double val = rand();" закоментить пришлось, с ней почему то не получалось.
+Вячеслав Коновалов я подозреваю, что домашка "сделалась" по причине глюков в Протеусе. Если из кода вообще убрать задержки, Протеус начинает мигать диодами как бог на душу положит.
плохо что автор не показал как написать проект с 0 именно тот проект который он бы мог загрузить сюда НО В МЕСТО ЭТОГО ОН ЗАГРУЗИЛ СВОЙ ПРОЕКТ который мы не знае именно из за этого у меня в симуляторе не чего не заработало
что значит и для чего нужно набирать (void.preset .main) и так далее не известно ,нужно самим искать такое чувство что прежде нужно изучить программированние ,тогда к чему смотреть что то с середины понимания . То есть нужно указать что видео предназначено для знающих язык синтаксис регистры
Да, без определенных знаний программирования сложно будет. Я вот, когда начал изучать мк, уже примерно знал как устроен синтаксис языка си, но всё же не знал эти битовые операции и тд. Пришлось пересмотреть кучу видеоуроков, перечитать много статей, изучить что такое фьюзы и как не залочить мк. В общем информации много пришлось перелопатить. Потом спустя год-два перешел на ардуино, а потом снова вернулся к "голым" мк. Кстати если вы начинающий, рекомендую начать с ардуино, это платформа разработки "для самых начинающих". То есть для программирования не потребуется много знаний. Прошивка загружается по нажатию одной кнопки и никаких тебе танцев с бубном вроде программаторов, аврдудов и тд. В ардуино это конечно всё есть, но там это всё прозрачно для обычного пользователя. То есть ардуино подключил к компу, написал прошивку, нажал кнопку загрузить - всё готово.
после 12 минуты видео появилось миллион вопросов далее просмотр без этих ответов не интересен , повторюсь (include.void.int.main.preset.while) что обозначают и для чего их надо указывать , ато такое чувство что смотрю с конца
Че за хрень? Я Олег Ананьев, но я не писал коментов к этому ролику. Я его в глаза не видел... Но самое страное что тема ролика мне и так понятна потому что я по оразованию электронщик, но я еще повторяю что коментов к этому видео ни когда не писал.
У меня в протеусе после выполнении симуляции выходит 3 ошибки: Simulation FAILED due to fatal simulator errors. Real Time Simulation failed to start. mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.. [U1] Подскажите пожалуйста что делать
Гениально!! вот бы в моём 86 году такое было бы!!... (поял все на "коленках" ни тебе схем , ни деталей, ни интернета с википедией! ... вот такое было время... журнал "Радио" и интуиция ... ))) находил детали ... придумывал.. поял.. ну конечно не без поджёга деталей)...=)) ... ну тем ни менее медаль ВДНХ СССР получил ... (кому оно теперь нужно) ...Спасибо очень интересно , даже несмотря та то что все это мне известно! но как говориться -"Повторение - Мать учения!" =))) ... еще раз Спасибо за труд!!!
Курилка на форуме вообще-то уже 13 лет как существует
Всё супер. Просто слов нет. По 1 видео в день. Как раз хватает чтобы переварить прошлый выпуск и осмыслить что ещё предстоит сделать.
Все отлично работает, все три порта. С генератором еще не занимался. Спасибо автору!
Несмотря на некоторые приколы, уроки отличнейшие и я бы сказал, одни из лучших. Если что то не работает в такой примитивной схеме, то это означает что надо искать неправильное написание программы или неправильное подключение в симуляции. Это не АЦП и ошибится тут просто негде, так как всё открыто и очевидно.
хорошо что вы есть тут, спасибо было очень интересно
Большое спасибо за столь подробный урок....
Уроки интересные. А вот звук клика мыши сильно бесит.
По началу прдумал, что всё это шутка.
По тому как опубликовано видео 1 го апреля...
Спасибо за видео.
Ставлю ЛАЙК.
Мне понравилось
Спасибо большое, отличные уроки.
Огромное спасибо, все понятно и по полочкам++
Давно искал такой курс.
Автору огромное СПАСИБО!!!
Круто! Ура!!! Я так и знал что есть в цикле подвох с DDRB))) Ошибки случаются
Забавно получилось, пока делал урок и учился думая головой и чисто логически правильно написал код и избежал ошибку на 26 минуте: )
Но все равно спасибо огромное за подобные уроки)))
Премного благодарен автору за урок, все ясно и открыто объясняешь, одно но: ошибки в речи очень режут слух.
Спасибо за урок, хорошо подан материал, всё наглядно и даже ошибки не вырезаны. Единственное замечание - большая просьба, не нужно говорить "так же само". Очень слух режет. Правильно говорить: "точно так же".
спасибо за урок, пожалуйста еще видео.
я хочу научится, спасибо
Уважаемый автор. Спасибо за уроки. Подскажите, какую бы тему дипломной работы Вы бы посоветовали для направления компьютерные науки для студентов техникума, связанную с программированием микроконтроллеров?
отличный урок мне понравился))
Спасибо за интересный курс! Подскажите пожалуйста почему Atmel Studio 6 не хочет подгружать библиотеку time.h для ATmega8 ? Хотелось бы использовать эту библиотеку для генерирования случайных чисел.
Программирую ATmega328P. Не понимаю, почему пины D 3, 4 и 5 на вывод не срабатывают. В то же время, на Ардуино они работают. На таком же МК.
Отличный канал!Подписался.
Привет. Функция delay не работает 6 ошибок ? сперва вообще автокомплит не находил, потом после вписывания вручную в код появилась но ошибки не куда не делись? Куда копать?
Выдает ошибку fabs was not declared in this scope, при двойном щелчке на ошибке открывает библиотеку задержки и указывает на __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); с выделенной частью __tmp. Пытался добавить библиотеку #include не помогло. В чем может быть причина?
А ведь точно. У меня в протеусе тогда странности, приходится 100 приписывать, чтобы на 1 сек прерывания были. частота вроде верно стоит.
спасибо автору !
Здравствуйте! Уважаемый автор, помогите разобраться.
Согласно Вашему заданию с rand() хотельсь бы поморгать
ОДНИМ СЛУЧАЙНЫМ светодиодом (портом). Но для того чтобы
включить один порт надо в PORTB записать одно из чисел
1, 2, 4, 8, 16, 32, 64, 128 в десятичной форме.
Записывая эти числа в PORTB, зажигается один из портов.
Но если через переменную и возведение числа 2 в
степень (pow) от 0 до 7, ничего не получается ???
Вот код
/* Хотим моргать ЛЮБЫМ ОДНИМ светодиодом (портом)
*/
#define F_CPU 8000000
#include
#include
#include
void preset(){
DDRB = 0xff; // все порты выход
PORTB = 0x00; // все порты погашены
}
int main(void)
{
preset();
while(1)
{
int i = rand ()%7; // i присваиваем целое число от 0 до 7
i = pow(2,i); // i присваиваем 2 в степени от 0 до 7, т.е. 1,2,4,8,16,32,64,128
PORTB = i; // включаем один из портов
_delay_ms(200); // задержка
PORTB = 0x00; // все порты гасим
_delay_ms(200); // задержка1
}
}
Есть ли документация, в которой приведены описания таких функций как _delay_ms(), _delay_us()?
Подскажите как решать вот такую задачку ? вылезло в Proteuse
Cannot find model file 'LEDA.MDF'
Simulation FAILED due to netlist linker error(s).
спасибо за урок
За урок спасибо! Но у меня питание не подается с мк на схему, выходы горят синим, не красным, настройки питания ничего не изменили работаю с ИСИС профешнл. Есть идеи что не так?
Сам разобрался, перед циклом не указал пресет, ошибка в коде была.
Подскажыте пожалста как из шыма можно вийти на другой цикл ну например из плавного мигания на другое мигания как в китайских гирляндах,но при помощи одной кнопки.Хотябы кусочек кода.штоб двигатса в каком то направлении. С Празником
Вас
Почему он сохраняется как design file а не как .pdsprj? У меня в протеусе нет такой функции - создать дизайн. Также 6 портс является ресетом. Он не зажигается. Почему?
Автор красавчик
сделал аналогичное для мк attiny2313, с портом В и D все хорошо, порт А частично работал, PA2/RESET не работал, для ресета надо что-то особенное писать, чтобы он работал и светодиод моргал?
Да но не советую. Перепрошить контроллер потом не сможете.
Выдаёт ошибку " Unable to start program libgcc Library. The specified file is an unrecognized or unsupported binary format."
"Не удается запустить программу libgcc библиотеки. Указанный файл неизвестной или не поддерживается формат binare."
Не могу создать NEX file. Подскажите как решить проблему.
а эт, глупый вопрос конечно, но, как программируются сами эти микроконтроллеры? т.е. как мне его подключить к пк чтобы залить в него программу?)
Нужен девайс называемый программатором.
через SPI программируется, потребуются 4 ножки, не считая питания. Если для вас это сложно, попробуйте ардуино, канал "Заметки Ардуинщика" в помощь, мне кажется он лучший на российском ютюбе.
Написал программу, указав что проект на C++, диоды моргнули один раз и все, написал проект на C, моргают, как положено. С чем это может быть связанно?
При выполнении программы выкидывает на строку №164 __builtin_avr_delay_cycles(__ticks_dc);
библиотеки delay.h на новой вкладке
так DDR это обращение что порт работает на вход или на выход? Или этой командой можно выводить сигнал сразу?? тк в примере просто DDRB =0xFF;
DDRx - регистры конфигурирования портов, в 8-й меге: DDRB - порта B, DDRC - порта C, DDRD - порта D. Перед тем как "выводить сигнал" порт нужно сконфигурировать, т.е. указать какие ноги порта будуть работать как ввод, какие - как вывод (обычно это делается в самом начале программы). В данном примере (DDRB =0xFF) - все ноги порта B настраиваются на вывод.
Спасибо большое
Здравствуйте, на 3' 25" Вы сказали что у Вас установлен Proteus 10 версии, не нашёл, не поможете ?
Версия 7.10
сделайте видео как подключить сам микроконтроллер то к пк (например Ардуино ИДЕ сразу видит плату через подключение по ЮСБ) пожалуйста
В Proteus собрал эту схему. Загрузил прошивку, а светодиоды не мигают. К одному с выходов подключил вольтметр - он показывает скачки напряжения от 2.5-5V. При этом светодиоды не горят. Что мне делать? Как это исправить?
+Саня Крепыш 24-53, если диоды не горят и в протеусе, там ошибка кода, дальше на видео показано как исправить
+Alexey Korchagin Спасибо, уже разобрался. Переустановил Proteus и все заработало)
Была проблемка выдавала такую ощибку 'fabs' was not declared in this scope исправил добавлением библеотеки #include
помогите разобраться с генератором случайных чисел, я не понял как с ним работать
Не подскажешь аналог или где найти eg1181
na jeleze 1000 eta ne 1na sekunda primerno 10 sekund.pocemu? kak eto ispravit?
На сайте "схем.нет" что-то не понятно! Задал вопросы, а теперь не могу найти, где их задал! Может кто-то ответил? Я смотрю, у многих проблемы с этим "delay.h" Когда коментую строки "_delay_ms(1000)" -ошибок ноль! А с этими строками ошибки в файле "Delay.h". Пишет:"проверить выражение до"=". Как там могут быть ошибки?? И ещё, как в Atmel St создать уже готовый Hex файл?7
+Игорь Флейфле Ну а при чем сайт, если вы не помните где задавали вопросы?!
Домашка 3 урока
//Atmega8A
#define F_CPU 8000000
#include
#include
void preset(){ // создаем конфигурацию порта
DDRB=0xFF;
PORTB=0x00;
DDRC=0xFF;
PORTC=0xFF;
DDRD=0xFF;
PORTD=0x00;
}
int main(void)
{
preset();
while(1)
{
int port_num = rand() % 3;
// зажигаем выбранный порт
switch(port_num)
{
case 0:
PORTB = 0xFF;
break;
case 1:
PORTC = 0xFF;
break;
case 2:
PORTD = 0xFF;
break;
}
_delay_ms(500);
// тушим все диоды
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;
_delay_ms(100);
}
}
мои вариант дз, два дня пыхтел, неполучалось из за незнания синтаксиса С, но в конце концов разобрался, спасибо автору, жду новых уроков))
ЗЫ
может мои код слишком длинный, может кто знает как его оптимизировать
//Atmega8
#define F_CPU 8000000
#include
#include
#include void preset (){
DDRB = 0xff;
PORTB = 0x00;
DDRC = 0xff;
PORTC = 0x00;
DDRD = 0xff;
PORTD = 0x00;
}int main(void)
{
preset();
while(1)
{
int val = rand() % 7;
int abr = rand() % 3;
if (abr==0)
{
PORTB=(1
Собрал но в протеусе выдет 2 ошибки
No power supply specified for net VCC in Power Rail Configuration
Simulation FAILED due to netlist compiler error
может подскжите в чуь проблема?
Спасбо
+Stanislavas Goldyckis
не настроено питание
симуляция не удалась.
У меня такое было на демонстрационной версии скачаной с офиц. сайта. На ней вообще ничего не заработало, потом писало что ключ лицензии не подходит.
Интересно, ваш код, который должен работать, в 8 протеусе с мегой 8 не заработал - ноль на порту, без изменений. А код-то рабочий, в железе проверено. Глюк какой-то.
А сколько вольт идёт с лапок процессора на светодиоды это как узнать и где задается?
5В. Стандартное питание контроллера в этой программе
Atmel studio 6.2,начал настраивать ,что то не то нажал и пропали порты и регистры в меню IO View ,как вернуть?
Сам столкнулся с такой проблемой. Окно IO View есть, но в нём пусто. Долго искал, переустанавливал программу Atmel Studio 6.2, но всё равно запустить проэкт полноценно с запущеной программы не удаётся. Окно IO View остаётся пустым. Выход следующий. Программу Atmel Studio 6.2 не запускать ярлыком. Запустить проэкт с папки, где он установлен "при помощи программы Atmel Studio 6.2". Запустится программа Atmel Studio 6.2, проэкт и в Окне IO View всё будет.
Доброго времени. Как можно подключить светодиодную ленту к МК она 12В а МК 5 макс выдает?
+Антон Верховых Через MOSFET транзистор например
+Ivan Semenich спасибо
Здравствуйте! Почему я делаю все как вы, но увы всё сделал что мог - светодиоды в протеусе не загораются, почему так?
Такая же проблема. Сигнал подается, а светодиод не горит. Получилось решить ?
Номиналы резисторов изменили? Может оставили 10 кОм.
Подключил светодиод через 220 Ом к ножке №1 это PC6/RESET. Подключил всё правильно, порты сконфигурированны правильно, но именно эта ножка не работает, при работающих другших. Почему?
кристалл ATMEGA8
Александр Анисимов такая же проблема
Может reset особенный какой-то.....
с тех пор так руки и не дошли даташит почитать
Его наверное настроить нужно, перед тем как использовать как обычный порт.
Stas Germanov Верно но не совсем точно: можно но не нужно. Контроллер потом не перешьешь без сброса фьюзов с помощью fusebit doctor'а
Почему все то-же самое не работает с Atmega 328P
Класс)
что делать если у тебявинда десятка и протеус не устанавливается?
Как к этому проекту применить RAND и все такое, для меня, полного чайника, просто нереально, три дня искал как это применить, в теории легко, на практике не возможно. Студия постоянно выдает ошибки, предостережения, сообщения. Знающие ответ на эту домашку скиньте применение с реальным кодом.
Нашел только Протеус 8,1... а у автора 10. Где взял???
у автора 7.10
Людмила Томош Спасибо.
правда я делал на attiny 2313 и мерцание не такое быстрое как у вас(
Странно с регистром входа/выхода на 14 минуте, но по идее 1 - in put - вход, 0 - out put - выход. И это общепринятая практика.
Это где ж она такая общепринятая? 1 - единица на выходе, то есть высокий потенциал. Всё правильно, 1 - выход, 0 - вход.
Не претендую на истину, ибо с этим сталкивался и раньше, как раз при знакомстве с AVR. Бяда в том, что в различных местах, читая о GPIO, везде объяснялось именно так, на аналогиях первых букв In/Out, 1/0
почему ошибку выбила что МК перегружен CPU 87% сделал как у вас
Перегружен не МК а процессор вашего ПК.
Как у тебя задержка в 1секунду , если делей непозволяет этого делать ?
Почему не позволяет? Вроде позволяет, но с меньшей точностью. When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.
Блин((( в_delay_ms нальзя переменную загнать. Только константу. И как быть то?
Цикл написать, в котором осуществлять задержку длительностью 1 мс _delay_ms(1). А сам цикл выполнять столько раз сколько записано в переменную.
помогите кто то!почему на лапке PORTD диоды не горят пропускает только PORTB! Надо разные циклы прописывать?задержка же вроди разная должны гореть сначало Б а потом Д или нет?
// Atmega8A
#define F_CPU 8000000
#include
#include
void preset () {
DDRB = 0xFF; // portB -На выход
PORTB = 0x00; // portB - обнуляем;
}
void drest() {
DDRD = 0xFF; // portd - na vihod
PORTD = 0x00; // portd - obnul
}
int main(void)
{
preset();
drest();
while(1)
{
PORTB = 0xFF; // подать сигнал
_delay_ms(1000); // пауза 1 секунда
PORTB = 0x00; // убрать сигнал
_delay_ms(1000); // пауза
PORTD = 0xFF;
_delay_ms(3000); // пауза 1 секунда
PORTD = 0x00;
_delay_ms(3000); // пауза 1 секунда
}
}
У меня ваш код в Proteus 8.13 работает. Вы резисторы на порте D изменели с 10 кОм на меньшее значение?
Спасибо за уроки, но так как слушаю в наушниках очень по мозгам клики мышки бьют, и речь у директора с ошибками тоже напрягает.
Эти щелчки мне помогают ориентироваться. Бывает нажмет какую ни будь кнопку которую я не заметил и включит что то (Когда слышу щелчок - понимаю что он нажал на какую то кнопку, которую я мог бы не увидеть, пока набираю код в студии). По этому, мне в наушниках, это не мешает. Как говорится приспосабливайся и используй во благо себе
От куда скачали программу? На оф.сайте www.atmel.com/tools/atmelstudio.aspx она платная!
Раньше была бесплатная: cxem.net/software/atmel_studio.php
А сейчас новая версия 2.2$ - чисто символическая сумма. Ссылки на варез на канале запрещены, ищите старые версии, там же на офсайте должны быть
Паяльник TV Ок! Я понял! И отличные уроки! Супер, я все понимаю и делаю дом. задания
Она и сейчас бесплатная
вот что у меня получилось
/*
* GccApplication1.c
* ATtiny2313A
* Created: 16.01.2016 18:32:53
* Author: Алексей
*/
#define F_CPU 8000000
#include
#include
#include
void preset()
{
DDRA = 0b11111111; //порт A работать на выход
PORTA = 0b00000000; //установить все выходы порта A в состояние нуля
DDRB = 0B11111111; //порт В работать на выход
PORTB = 0b00000000; //установить все выходы порта В в состояние нуля
DDRD = 0b11111111; //порт D работать на выход
PORTD = 0b00000000; //установить все выходы порта D в состояние нуля
}
int main(void)
{
preset();
while(1)
{
PORTA = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
PORTB = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
PORTD = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
_delay_ms(40); //выдержать паузу 0,4 сек
}
}
Вы конечно молодец, только вы не меняете время задержки, а в задании именно задежка мигания портов подразумевалась
все классно, только сделайте звук нормальным, а то как в .....!
Кто-нибудь подскажет как использовать случайную величину для _delay_ms().Сгенерировать с использованием rand() число и поставить это значение для _delay_ms().Как не пытался такой вариант не прокатывает Как я понимаю _delay_ms()- это макрос. Автор, пожалуйста, подскажите как быть...Это домашнее задание для урока...
Вот так можно:
void _delay_rand(int r) {
for(int i = 0; i < r; i++) {
_delay_ms(1);
}
}
r - случайное число сгенерированное rand().
работает пасиб
правда как оно работает я хз.. как компилятор генерирует случайно r..??
так будет более понятно
int r=rand()%100;
void a (r) {
for(int i = 0; i < r; i++) {
_delay_ms(1);
}
}
"r" не совсем случайное число, ознакомься, к примеру, с линейно-конгруэнтным методом Лемера.
я поменял _delay_ms(1000); на _delay_ms(100); и мерцать стало быстрее))
+refat ismailov а я поменял "_delay_ms(1000);" на "rand() % 1; " и сделал домашку )) только сроку, написанную автором "double val = rand();" закоментить пришлось, с ней почему то не получалось.
+Вячеслав Коновалов я подозреваю, что домашка "сделалась" по причине глюков в Протеусе. Если из кода вообще убрать задержки, Протеус начинает мигать диодами как бог на душу положит.
да, так и есть))
Где ошибка?
#define F_CPU 8000000
//тактовая частота процессора 8МГц (мегагерц)
#include
#include
//подключить паузу
void preset()
{
DDRB = 0xFF;
//0xFF = 0d11111111; PORTB - QUt
PORTB = 0x00;
//0x00 = 0d00000000; Default PORTB - OFF
}
int main(void)
{
preset();
while(1);
//(1-бесконечный цикл)
{
PORTB = 0xFF;
//Подать сигнал
_delay_ms(1000);
//Выдержать паузу - 1 сек.
PORTB = 0x00;
//Убрать сигнал
_delay_ms(1000);
//Выдержать паузу - 1 сек.
}
}
while(1); - точка с запятой не нужна!!!
Что высокий уровень, что низкий на пине МК все это сигнал.
А резисторы зачем?
Ограничивают ток чтобы светодиоды не перегорели.
плохо что автор не показал как написать проект с 0 именно тот проект который он бы мог загрузить сюда НО В МЕСТО ЭТОГО ОН ЗАГРУЗИЛ СВОЙ ПРОЕКТ который мы не знае именно из за этого у меня в симуляторе не чего не заработало
Смотри внимательнее. Все работает. А с 0 в предыдущих уроках объясняют
Максим Победоносцев
возможно это работает но не у меня ибо он загрузил схему а не писал ее заново.
Константин Бородинов 13:08 ?
Чуть погромче бы голос.
что значит и для чего нужно набирать (void.preset .main) и так далее не известно ,нужно самим искать такое чувство что прежде нужно изучить программированние ,тогда к чему смотреть что то с середины понимания . То есть нужно указать что видео предназначено для знающих язык синтаксис регистры
вообще-то в первом видео об этом говорилось
Да, без определенных знаний программирования сложно будет. Я вот, когда начал изучать мк, уже примерно знал как устроен синтаксис языка си, но всё же не знал эти битовые операции и тд. Пришлось пересмотреть кучу видеоуроков, перечитать много статей, изучить что такое фьюзы и как не залочить мк. В общем информации много пришлось перелопатить. Потом спустя год-два перешел на ардуино, а потом снова вернулся к "голым" мк. Кстати если вы начинающий, рекомендую начать с ардуино, это платформа разработки "для самых начинающих". То есть для программирования не потребуется много знаний. Прошивка загружается по нажатию одной кнопки и никаких тебе танцев с бубном вроде программаторов, аврдудов и тд. В ардуино это конечно всё есть, но там это всё прозрачно для обычного пользователя. То есть ардуино подключил к компу, написал прошивку, нажал кнопку загрузить - всё готово.
после 12 минуты видео появилось миллион вопросов далее просмотр без этих ответов не интересен , повторюсь (include.void.int.main.preset.while) что обозначают и для чего их надо указывать , ато такое чувство что смотрю с конца
кстати, 1000ms = 10 сек
да ну? это 1 сек, а на 10
Че за хрень? Я Олег Ананьев, но я не писал коментов к этому ролику. Я его в глаза не видел... Но самое страное что тема ролика мне и так понятна потому что я по оразованию электронщик, но я еще повторяю что коментов к этому видео ни когда не писал.
Дизлайк, очень много ошибок, раздражает, автор совсем не понимает что делает и не разбирается в этом
У меня в протеусе после выполнении симуляции выходит 3 ошибки:
Simulation FAILED due to fatal simulator errors.
Real Time Simulation failed to start.
mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.. [U1]
Подскажите пожалуйста что делать
Купи лицензию! :))