Спасибо автору, хорошие пояснения, особенно для чайников в области МК
@narodstream5527 жыл бұрын
И Вам спасибо за интерес к ресурсу!
@forextraders91059 жыл бұрын
автору респект за знания
@2812FireMan6 жыл бұрын
Спасибо Вам за понятные и четко выраженные уроки, но при прохождении очередного урока поймал себя на мысли, что имея алгоритм программы можно было бы улучшить усвояемость уроков, тем более что с усложнением кода программы это мне кажется было бы очень кстати. Не критика а предложение.
@igor02425 жыл бұрын
НИЗКИЙ ЗЕМНОЙ ПОКЛОН автору за курсы!!!!!!!
@naonisbond94938 жыл бұрын
единственые уроки которые дошли до меня)
@narodstream5528 жыл бұрын
Спасибо!
@Serious_Sam2 жыл бұрын
Спасибо!
@alekskapitonov27383 жыл бұрын
Спасибо автору.
@АлександрРезников-о5ж6 жыл бұрын
я все получил!!! Большое спасибо вам!!!!
@Adf-123-w2x6 жыл бұрын
С вопросом разобрался. Всё работает.
@TheT7358 жыл бұрын
ИМХО, необязательно было переписывать нули/единицы в кейсах. Итоговый код не изменится ни по содержанию, ни по скорости выполнения. Компилятор по любому пересчитает нужные значения и подставит константы. p.s. Спасибо за уроки! Ковыряю AVR и STM32 параллельно по Вашим роликам :)
@vadimilinbaev11645 жыл бұрын
Магия, просто магия...я тут типа как в хогвартсе XDXDXD
@Trumpetua9 жыл бұрын
лайк смотрю
@МихаилБ-я3ъ9 жыл бұрын
познавательно
@Adf-123-w2x6 жыл бұрын
Здравствуйте. Не пойму, что происходит. Использую Atmel Studio 7, ATMEL ICE и ATmega128. Не могу понять, почему при возврате из самописной функции, не происходит переход на следующую за функцией инструкцию. Переход происходит непонятно куда, в итоге программа начинается с инициализации и всё повторяется. В Proteus и Simulator Atmel Studio 7, всё отлично, но в железе творится непонятное. Посоветовали мне проверить настройки компилятора на размер RAM, да только где это сделать не могу найти. Пробовал косвенной адресацией менять значение регистра SP, результат идентичен. Скажите, у вас была подобная проблема? Если была, то подскажите как вы её решили.
@Adf-123-w2x6 жыл бұрын
Здравствуйте. Не пойму, что происходит. Использую Atmel Studio 7, ATMEL ICE и ATmega128. Не могу понять, почему при возврате из самописной функции, не происходит переход на следующую за функцией инструкцию. Переход происходит непонятно куда, в итоге программа начинается с инициализации и всё повторяется. В Proteus и Simulator Atmel Studio 7, всё отлично, но в железе творится непонятное. Посоветовали мне проверить настройки компилятора на размер RAM, да только где это сделать не могу найти. Пробовал косвенной адресацией менять значение регистра SP, результат идентичен. Скажите, у вас была подобная проблема? Если была, то подскажите как вы её решили.
@ВикторГурченков-б5у5 жыл бұрын
доброго дня суток. как заставить переменную читать eeprom при включение камня? смотрел ваш урок по еепром но так нечего не добился. память записывается но при каждом включении получается непонятно что он запускает. переменная идет от 0 до 10. когда он включается не одна из этих цифр не совпадает. void mode (position) { switch (position) { case 0: DDRB=0x00;PORTC = 0b00000000; PORTD = 0b00000000; OCR2 = 0; break; case 1: DDRB=0x08;PORTC = 0b00000001; PORTD = 0b00000000; OCR2 = 5; break; case 2: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00000000; OCR2 = 10; break; case 3: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00000001; OCR2 = 20; break; case 4: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00000011; OCR2 = 30; break; case 5: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00000111; OCR2 = 50; break; case 6: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00001111; OCR2 = 100; break; case 7: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00011111; OCR2 = 150; break; case 8: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b00111111; OCR2 = 200; break; case 9: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b01111111; OCR2 = 225; break; case 10: DDRB=0x08;PORTC = 0b00000011; PORTD = 0b11111111; OCR2 = 254; break; default:{position = 0;} } } предупреждение выскакивает: type of 'position' defaults to 'int' [-Wimplicit-int] int main(void) { // USART_Init (8); asm("nop"); position=EEPROM_read(1); port_ini(); //настраиваются порты init_PWM_timer();//включается ШИМ unsigned butcount=0, butstate=0; // статус 1 и 2 кнопок и счетчик задержки нажатия(от дребезга) while(1) { for (position=0; position 0) // крутим проверку с 5 до 0 { butcount--; } else { position=0;// меняем режим на выключение butstate=1; // меняем флаг или статус на "была нажата" } } } mode(position); //собственно меняем яркость и индикацию _delay_ms(200);// задержка butstate = 0;//сбрасываем флаг после выполнения всех циклов проверок кнопок EEPROM_write(1,position); } } }
@andreyparovozz7 жыл бұрын
Инверсию можно было и не убирать - компилятор сам считает все статические выражения.
@КонстантинС-р1г7 жыл бұрын
осталось чтобы заработало -)))))
@ruslanseptember14588 жыл бұрын
напишыте пожалуйста как можно с помощью датчика света включать и отключать МК
@narodstream5528 жыл бұрын
Скорее всего как-то через watchdog, но я не пробовал, поэтому врать не буду. Но копать надо именно в ту сторону. И скорее это не включать и выключать, а усыплять и будить
@ruslanseptember14588 жыл бұрын
за сколько вы напишете мне прошивку для атини 13
@narodstream5528 жыл бұрын
Я не пишу на заказ.
@splinterkab90074 жыл бұрын
Массивом не проще цифры прописать чем кейсом?
@Hippan_4 жыл бұрын
ну да красота в простоте const uint8_t digit[] = {0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f};
@romik56084 жыл бұрын
Теоретически, можно. Но, как я понимаю, мы еще маленькие и нам еще рано массивы изучать :D
@splinterkab90074 жыл бұрын
@@romik5608 может и рано. Но как понимаю кейс занимает время мк. Да и выше человек написал пример, что может быть проще. Да и к массиву обратится ничего сложного. Чем городить многоэтажные конструкции из кейса. Лучше сразу показать как проще и быстрее. Может конечно видео для совсем начинающих. Хотя если у человека нет элементарных знаний в программировании, лучше ему это не изучать. Думаю мало будет толка.
@ВячеславСартисон5 жыл бұрын
Если у кого то будет гореть только 0 и 1 а другие цифры не видны то проверьте соответствие тактовой частоты генератора на плате и установкой в программе. У меня mega 328P на 16 мегагерц в коде автора 8 мегагерц.
@ВячеславСартисон5 жыл бұрын
Проблема была не только в частоте еще в ошибке в коде надо PORTB = 0b00000001; а у меня было PORTD = 0b00000001;
@черныйваня-ь4з5 жыл бұрын
Вот просматриваю ролики как начинающих и никак не могу понять. А где Объяснение почему именно сюда цикл или туда. Какие причины всё в куче непонятно. Но неужели нельзя начинать проект с нового листа чтобы было все понятно с самого начала куда и что пихать. не понятно как можно хвалить такие ролики.
@narodstream5525 жыл бұрын
А покажите-ка пример как надо, прежде чем ругать. У этого видео уже борода ниже земли. Посмотрел Ваш канал, там очень много видео и все со смыслом, пошел учиться. Даже бросил монтаж очередного видео ибо не умею.
@petrpetr95767 жыл бұрын
Автор, у Вас опрос кнопки - нажата или нет происходит на мой взгляд как то мудрено. Я вот выбрал такой вариант, хотелось бы услышать Вашу критику. while(1) { char i; for(i=0; i
@narodstream5527 жыл бұрын
Нормальный алгоритм. Имеет право на существование. Только я бы задержку с помощью нескольких пустых циклов сделал бы.
@tupoy_ytub_uberi_psevdonim3 жыл бұрын
еще бы научиться все это применять на практике, а не тупить как я)