Jump to content

Michael_M

Members
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

1 Обычный

About Michael_M

  • Rank
    Новенький

Электроника

  • Стаж в электронике
    Менее года
  1. Спасибо! Старался пока по заданию выполнить, в дальнейшем с набором опыта буду импровизировать Конечно же в ближайшее время выложу более компактный код. Еще раз спасибо Вам!
  2. Господа прошу сильно не пинать Я только изучаю программирование МК. Спасибо Вам kobraz за уроки! Можно в эту тему скидывать код домашнего задания? *********************************************************************** Знаю что код можно написать более компактно и более производительным (Я ТОЛЬКО НАЧАЛ ИЗУЧАТЬ) Все конструктивные замечания приветствуются. В ПРОТЕУСЕ все работает. Порт С занял 6 ножек вместо 7-ми PC6 занята и не заработала у меня *********************************************************************** //Atmega8A #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> //Предварительная настройка портов void preset() { DDRB = 0xFF; //PORTB настроен на выход DDRC = 0xFF; //PORTC настроен на выход DDRD = 0xFF; //PORTD настроен на выход PORTB = 0x00; //По умолчанию PORTB отключен PORTC = 0x00; //По умолчанию PORTC отключен PORTD = 0x00; //По умолчанию PORTD отключен } int main(void) { preset(); //Предварительная настройка портов while(1) { int rnd_PORT = rand() % 4;//Генерируем число от 1-3 //Выбираем порт на основании сгенерированного числа switch (rnd_PORT) { case 1: //Подать сигнал на PORTB PORTB = 0xFF; //Выдержать паузу - 1 секунда _delay_ms(1000); //Убрать сигнал PORTB = 0x00; //Выдержать паузу - 1 секунда _delay_ms(1000); break; case 2: //Подать сигнал на PORTC PORTC = 0xFF; //Выдержать паузу - 1 секунда _delay_ms(1000); //Убрать сигнал PORTC = 0x00; //Выдержать паузу - 1 секунда _delay_ms(1000); break; case 3: //Подать сигнал на PORTD PORTD = 0xFF; //Выдержать паузу - 1 секунда _delay_ms(1000); //Убрать сигнал PORTD = 0x00; //Выдержать паузу - 1 секунда _delay_ms(1000); break; default: break; } } } ***********************************************************************
×
×
  • Create New...