Программирование МК AVR. Урок 9. Оформление кода. Функции

  Рет қаралды 28,570

narod stream

narod stream

Күн бұрын

Пікірлер: 36
@ЛюдмилаЗахлебина
@ЛюдмилаЗахлебина 7 жыл бұрын
Спасибо автору, хорошие пояснения, особенно для чайников в области МК
@narodstream552
@narodstream552 7 жыл бұрын
И Вам спасибо за интерес к ресурсу!
@forextraders9105
@forextraders9105 9 жыл бұрын
автору респект за знания
@2812FireMan
@2812FireMan 6 жыл бұрын
Спасибо Вам за понятные и четко выраженные уроки, но при прохождении очередного урока поймал себя на мысли, что имея алгоритм программы можно было бы улучшить усвояемость уроков, тем более что с усложнением кода программы это мне кажется было бы очень кстати. Не критика а предложение.
@igor0242
@igor0242 5 жыл бұрын
НИЗКИЙ ЗЕМНОЙ ПОКЛОН автору за курсы!!!!!!!
@naonisbond9493
@naonisbond9493 8 жыл бұрын
единственые уроки которые дошли до меня)
@narodstream552
@narodstream552 8 жыл бұрын
Спасибо!
@Serious_Sam
@Serious_Sam 2 жыл бұрын
Спасибо!
@alekskapitonov2738
@alekskapitonov2738 3 жыл бұрын
Спасибо автору.
@АлександрРезников-о5ж
@АлександрРезников-о5ж 6 жыл бұрын
я все получил!!! Большое спасибо вам!!!!
@Adf-123-w2x
@Adf-123-w2x 6 жыл бұрын
С вопросом разобрался. Всё работает.
@TheT735
@TheT735 8 жыл бұрын
ИМХО, необязательно было переписывать нули/единицы в кейсах. Итоговый код не изменится ни по содержанию, ни по скорости выполнения. Компилятор по любому пересчитает нужные значения и подставит константы. p.s. Спасибо за уроки! Ковыряю AVR и STM32 параллельно по Вашим роликам :)
@vadimilinbaev1164
@vadimilinbaev1164 5 жыл бұрын
Магия, просто магия...я тут типа как в хогвартсе XDXDXD
@Trumpetua
@Trumpetua 9 жыл бұрын
лайк смотрю
@МихаилБ-я3ъ
@МихаилБ-я3ъ 9 жыл бұрын
познавательно
@Adf-123-w2x
@Adf-123-w2x 6 жыл бұрын
Здравствуйте. Не пойму, что происходит. Использую Atmel Studio 7, ATMEL ICE и ATmega128. Не могу понять, почему при возврате из самописной функции, не происходит переход на следующую за функцией инструкцию. Переход происходит непонятно куда, в итоге программа начинается с инициализации и всё повторяется. В Proteus и Simulator Atmel Studio 7, всё отлично, но в железе творится непонятное. Посоветовали мне проверить настройки компилятора на размер RAM, да только где это сделать не могу найти. Пробовал косвенной адресацией менять значение регистра SP, результат идентичен. Скажите, у вас была подобная проблема? Если была, то подскажите как вы её решили.
@Adf-123-w2x
@Adf-123-w2x 6 жыл бұрын
Здравствуйте. Не пойму, что происходит. Использую Atmel Studio 7, ATMEL ICE и ATmega128. Не могу понять, почему при возврате из самописной функции, не происходит переход на следующую за функцией инструкцию. Переход происходит непонятно куда, в итоге программа начинается с инициализации и всё повторяется. В Proteus и Simulator Atmel Studio 7, всё отлично, но в железе творится непонятное. Посоветовали мне проверить настройки компилятора на размер RAM, да только где это сделать не могу найти. Пробовал косвенной адресацией менять значение регистра SP, результат идентичен. Скажите, у вас была подобная проблема? Если была, то подскажите как вы её решили.
@ВикторГурченков-б5у
@ВикторГурченков-б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); } } }
@andreyparovozz
@andreyparovozz 7 жыл бұрын
Инверсию можно было и не убирать - компилятор сам считает все статические выражения.
@КонстантинС-р1г
@КонстантинС-р1г 7 жыл бұрын
осталось чтобы заработало -)))))
@ruslanseptember1458
@ruslanseptember1458 8 жыл бұрын
напишыте пожалуйста как можно с помощью датчика света включать и отключать МК
@narodstream552
@narodstream552 8 жыл бұрын
Скорее всего как-то через watchdog, но я не пробовал, поэтому врать не буду. Но копать надо именно в ту сторону. И скорее это не включать и выключать, а усыплять и будить
@ruslanseptember1458
@ruslanseptember1458 8 жыл бұрын
за сколько вы напишете мне прошивку для атини 13
@narodstream552
@narodstream552 8 жыл бұрын
Я не пишу на заказ.
@splinterkab9007
@splinterkab9007 4 жыл бұрын
Массивом не проще цифры прописать чем кейсом?
@Hippan_
@Hippan_ 4 жыл бұрын
ну да красота в простоте const uint8_t digit[] = {0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f};
@romik5608
@romik5608 4 жыл бұрын
Теоретически, можно. Но, как я понимаю, мы еще маленькие и нам еще рано массивы изучать :D
@splinterkab9007
@splinterkab9007 4 жыл бұрын
@@romik5608 может и рано. Но как понимаю кейс занимает время мк. Да и выше человек написал пример, что может быть проще. Да и к массиву обратится ничего сложного. Чем городить многоэтажные конструкции из кейса. Лучше сразу показать как проще и быстрее. Может конечно видео для совсем начинающих. Хотя если у человека нет элементарных знаний в программировании, лучше ему это не изучать. Думаю мало будет толка.
@ВячеславСартисон
@ВячеславСартисон 5 жыл бұрын
Если у кого то будет гореть только 0 и 1 а другие цифры не видны то проверьте соответствие тактовой частоты генератора на плате и установкой в программе. У меня mega 328P на 16 мегагерц в коде автора 8 мегагерц.
@ВячеславСартисон
@ВячеславСартисон 5 жыл бұрын
Проблема была не только в частоте еще в ошибке в коде надо PORTB = 0b00000001; а у меня было PORTD = 0b00000001;
@черныйваня-ь4з
@черныйваня-ь4з 5 жыл бұрын
Вот просматриваю ролики как начинающих и никак не могу понять. А где Объяснение почему именно сюда цикл или туда. Какие причины всё в куче непонятно. Но неужели нельзя начинать проект с нового листа чтобы было все понятно с самого начала куда и что пихать. не понятно как можно хвалить такие ролики.
@narodstream552
@narodstream552 5 жыл бұрын
А покажите-ка пример как надо, прежде чем ругать. У этого видео уже борода ниже земли. Посмотрел Ваш канал, там очень много видео и все со смыслом, пошел учиться. Даже бросил монтаж очередного видео ибо не умею.
@petrpetr9576
@petrpetr9576 7 жыл бұрын
Автор, у Вас опрос кнопки - нажата или нет происходит на мой взгляд как то мудрено. Я вот выбрал такой вариант, хотелось бы услышать Вашу критику. while(1) { char i; for(i=0; i
@narodstream552
@narodstream552 7 жыл бұрын
Нормальный алгоритм. Имеет право на существование. Только я бы задержку с помощью нескольких пустых циклов сделал бы.
@tupoy_ytub_uberi_psevdonim
@tupoy_ytub_uberi_psevdonim 3 жыл бұрын
еще бы научиться все это применять на практике, а не тупить как я)
Программирование МК AVR. Урок 7. Кнопка
32:31
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
ОБЯЗАТЕЛЬНО ПОСМОТРИ! ВСË про ESP32 за 2 МИНУТЫ! ТЕЛЕГА arduino_uno_ws #shorts
2:46
ARDUINO Uno WorkShop - канал про Arduino и прочее
Рет қаралды 2,5 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19