С чего начать программировать микроконтроллеры?
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18849
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Stalker46 писал(а):все равно указывает на ошибки for,char.
А зачем char? Объяви переменную Int i;
Pippeytz писал(а):А нахрена тибе юсарт для работы с лсд?
Хз. Я пока не разобрался, что это такое. Как я понял, это что-то для передачи данных на комп? А с LCD вроде и без этого работает.
P.S. Фигасе...
я хочу попользоваться директивой #define
вот надо заменить фрагмент текста программы на букву А. Как это сделать. Курил справку по этой директиве, но ниче не понял.
Вот фрагмент программы:
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
надо так сделать?
#define A PORTD.0=1;\ // зажигаем 1 светодиод
delay_ms(100);\ // ждем 100 миллисекунд
PORTD.0=0;\ // гасим 1 светодиод
delay_ms(100);\ // ждем 100 миллисекунд
так?
вот надо заменить фрагмент текста программы на букву А. Как это сделать. Курил справку по этой директиве, но ниче не понял.
Вот фрагмент программы:
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
надо так сделать?
#define A PORTD.0=1;\ // зажигаем 1 светодиод
delay_ms(100);\ // ждем 100 миллисекунд
PORTD.0=0;\ // гасим 1 светодиод
delay_ms(100);\ // ждем 100 миллисекунд
так?
Не умеешь - не берись, но не взявшись не научишься...
Читал про прерывания, но опять какша в голове...
прерывания в проекте должны выполнять такую ф-ю: провека работоспособности системы - обработчик прерывания будет мигать светодиодом.
вот некоторый код:
я делаю проект.
При нажатии на кнопку на входе но порта А, выходы потра D задействованы на светодиоды.
дело такое:
нажимаем на кнопку, работает режим 1, нажимаем на кнопку - работает режим 2.
вот код:
// основной код первого режима
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD. 6=0; // гасим 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=1; // зажигаем 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=0; // гасим 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
// основной код второго режима
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD. 6=0; // гасим 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=1; // зажигаем 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
прерывания в проекте должны выполнять такую ф-ю: провека работоспособности системы - обработчик прерывания будет мигать светодиодом.
вот некоторый код:
я делаю проект.
При нажатии на кнопку на входе но порта А, выходы потра D задействованы на светодиоды.
дело такое:
нажимаем на кнопку, работает режим 1, нажимаем на кнопку - работает режим 2.
вот код:
// основной код первого режима
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD. 6=0; // гасим 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=1; // зажигаем 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=0; // гасим 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
// основной код второго режима
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD. 6=0; // гасим 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.7=1; // зажигаем 8 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=0; // гасим 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.6=1; // зажигаем 7 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=0; // гасим 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.5=1; // зажигаем 6 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=0; // гасим 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.4=1; // зажигаем 5 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=0; // гасим 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.3=1; // зажигаем 4 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=0; // гасим 2 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.2=1; // зажигаем 3 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.0=0; // гасим 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
PORTD.1=1; // зажигаем 2 светодиод
PORTD.0=1; // зажигаем 1 светодиод
delay_ms(100); // ждем 100 миллисекунд
Не умеешь - не берись, но не взявшись не научишься...
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18849
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Делать такую кучу не в виде массива - полный изврат
С массивом можно наверное вдвое больше наворотить, при втрое меньших размерах.
А по поводу режимов.... Наверное надо использовать функцию Switch
Вот пример: http://radiokot.ru/forum/viewtopic.php?p=180124#180124
С массивом можно наверное вдвое больше наворотить, при втрое меньших размерах.
А по поводу режимов.... Наверное надо использовать функцию Switch
Вот пример: http://radiokot.ru/forum/viewtopic.php?p=180124#180124
Последний раз редактировалось SeregaT Пн мар 30, 2009 15:39:00, всего редактировалось 1 раз.
у меня есть небольшие проблемы с пониманием языка Си
.
Вот в книгах дается описание, что и как, но я не понимаю, что вписывать сюда, например:
#if A=15
[группа операторов 1]
#else
[группа операторов 2]
#endif
что вписывать в группу операторов....
Вот в книгах дается описание, что и как, но я не понимаю, что вписывать сюда, например:
#if A=15
[группа операторов 1]
#else
[группа операторов 2]
#endif
что вписывать в группу операторов....
Не умеешь - не берись, но не взявшись не научишься...