С чего начать программировать микроконтроллеры?
Это было прописано. Вот сейчас USART настроил, на sprintf вроде перестало ругаться, но вот на lcd_buffer всёравно ругается.
- Реклама
глянь в c:\cvavr\examples\ проекты DS18B20 и DS1820
а мне на поезд пора бежать, в Москву в коммадировку еду
а мне на поезд пора бежать, в Москву в коммадировку еду
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
Ага, вроде работает
надо было прописать char lcd_buffer[33]; Спасибо за советы...
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Для того, чтобы на LCD выводить кириллицу, надо прошивать в контроллер дисплея соответствующие шрифты, или можно как-то программно сделать?
- Реклама
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
А зачем в цикле for точка с запятой после 5, 10, i...? Там просто запятую надо. Ну и закрывающую фигурную скобку.Stalker46 писал(а):char i; //
for (i=5;i<10;++i;) {
PORTD.0=1; //
delay_ms(100); //
PORTD.0=0; //
delay_ms(100); //
а какая директива нужна?
А нахрена тибе юсарт для работы с лсд?
Полный пипеутз.
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
А зачем char? Объяви переменную Int i;Stalker46 писал(а):все равно указывает на ошибки for,char.
Хз. Я пока не разобрался, что это такое. Как я понял, это что-то для передачи данных на комп? А с LCD вроде и без этого работает.Pippeytz писал(а):А нахрена тибе юсарт для работы с лсд?
P.S. Фигасе...
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
я хочу попользоваться директивой #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 миллисекунд
так?
Не умеешь - не берись, но не взявшись не научишься...
Я пока с #define не разбирался, но тут полюбому фрагмент надо взять в скобки (фигурные).
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
Читал про прерывания, но опять какша в голове...
прерывания в проекте должны выполнять такую ф-ю: провека работоспособности системы - обработчик прерывания будет мигать светодиодом.
вот некоторый код:
я делаю проект.
При нажатии на кнопку на входе но порта А, выходы потра 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 миллисекунд
Не умеешь - не берись, но не взявшись не научишься...
Делать такую кучу не в виде массива - полный изврат 
С массивом можно наверное вдвое больше наворотить, при втрое меньших размерах.
А по поводу режимов.... Наверное надо использовать функцию 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 раз.
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
у меня есть небольшие проблемы с пониманием языка Си
.
Вот в книгах дается описание, что и как, но я не понимаю, что вписывать сюда, например:
#if A=15
[группа операторов 1]
#else
[группа операторов 2]
#endif
что вписывать в группу операторов....
Вот в книгах дается описание, что и как, но я не понимаю, что вписывать сюда, например:
#if A=15
[группа операторов 1]
#else
[группа операторов 2]
#endif
что вписывать в группу операторов....
Не умеешь - не берись, но не взявшись не научишься...
Как что? Действия, которые выделывает программаStalker46 писал(а):что вписывать в группу операторов....
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36
- Сообщения: 4435
- Зарегистрирован: Сб мар 07, 2009 20:44:36


