С чего начать программировать микроконтроллеры?
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18852
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Подскажите с условными операторами И и ИЛИ
Тут мне давали ссылку про язык программирования Си.
Там написано типа условный оператор И записывается вот так:
(Условие1 && Условие2)
А условный оператор ИЛИ записывается вот так:
(Условие1 || Условие2)
А у меня получилось наоборот... Там ошибка или это я что-то не так понял?
Тут мне давали ссылку про язык программирования Си.
Там написано типа условный оператор И записывается вот так:
(Условие1 && Условие2)
А условный оператор ИЛИ записывается вот так:
(Условие1 || Условие2)
А у меня получилось наоборот... Там ошибка или это я что-то не так понял?
- Pippeytz
- Потрогал лапой паяльник
- Сообщения: 396
- Зарегистрирован: Ср май 28, 2008 19:30:31
- Откуда: Донецк
- Контактная информация:
На, почитай http://lib.ru/CTOTOR/starterkit.txt
Ну у тытча совсем чуть чуть, но для начале те хватит
http://www.123avr.com/05.htm
Ну у тытча совсем чуть чуть, но для начале те хватит
http://www.123avr.com/05.htm
Полный пипеутз.
-
therian
- Говорящий с текстолитом
- Сообщения: 1682
- Зарегистрирован: Чт окт 20, 2005 12:46:34
- Контактная информация:
может быть случилась самая распространенная невнимательная ошибка: использование = вместо == для сравнивания ?
потом замечал странный глюк в некоторых IDE (в визуал студии 2005) а!=б не всегда работает правильно поэтому лучьше делать так !(а==б) хоть и менее читабельно зато не врет
ну и самое последние вы используете скобки ? ((a==b)&&(c==d))
если не ошибаюсь то по стандарту нужно
потом замечал странный глюк в некоторых IDE (в визуал студии 2005) а!=б не всегда работает правильно поэтому лучьше делать так !(а==б) хоть и менее читабельно зато не врет
ну и самое последние вы используете скобки ? ((a==b)&&(c==d))
если не ошибаюсь то по стандарту нужно
Последний раз редактировалось therian Сб мар 21, 2009 10:56:07, всего редактировалось 1 раз.
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18852
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Pippeytz писал(а):На, почитай http://lib.ru/CTOTOR/starterkit.txt
Во во. Я про эту ссылку и говорил.
ОПЕРАТОРЫ "И, ИЛИ, НЕ"
Условия могут быть сложными.
ЕСЛИ красный И вес < 10 ТО ...;
ЕСЛИ красный ИЛИ синий ТО ...;
ЕСЛИ НЕ красный ТО ...;
На языке Си такие условия записываются так:
if(условие1 && условие2) ...; /* "И" */
if(условие1 || условие2) ...; /* "ИЛИ" */
if(! условие1) ...; /* "НЕ" */
А когда я пишу:
while (!PINB.3 && !PINB.4);
или
while (PINB.3==0 && PINB.4==0);
То срабатывает, когда сигнал или на PINB.3 или на PINB.4
Но если я пишу:
while (!PINB.3 || !PINB.4);
срабатывает когда сигнал одновременно на PINB.3 и PINB.4
Последний раз редактировалось SeregaT Сб мар 21, 2009 11:15:01, всего редактировалось 4 раза.
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18852
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Ладно, спрошу проще
Оператор И обозначается && или ||?
Ну мне просто надо, чтобы в этом месте программа остановилась и ждала сигнала с указаных входов, и как только на обоих входах появится сигнал, программа выполняется дальше.
Оператор И обозначается && или ||?
therian писал(а):а почему у вас после while ; это специально а не ошибка ? тоесть это либо do while либо ждете пока оно крутится на этой строке ?
Ну мне просто надо, чтобы в этом месте программа остановилась и ждала сигнала с указаных входов, и как только на обоих входах появится сигнал, программа выполняется дальше.
-
therian
- Говорящий с текстолитом
- Сообщения: 1682
- Зарегистрирован: Чт окт 20, 2005 12:46:34
- Контактная информация:
SeregaT писал(а):Ну мне просто надо, чтобы в этом месте программа остановилась и ждала сигнала с указаных входов, и как только на обоих входах появится сигнал, программа выполняется дальше.
когда появится то станит не нулем ?
тогда все правильно работеть
while (!PINB.3 && !PINB.4);
тоесть
пока на обоих ноль то ждет потому что правда как на одном не 0 то неправда и while заканчивается
есле вы хотите чтоб програма выполнялась дальше только когда на обоих появится 1 то нужно какраз ИЛЕ
пока !PINB.3 ИЛЕ !PINB.4 правда потому что один иле оба 0 то крутись
как один становится 1 то оно продолжает крутится так как второй еще правда ну и когда на обоих 1 то заканчивается так как вывернуто это неправда
вот дежавю, помню тоже по полночи не мог понять что творится, вывернутая логика
Последний раз редактировалось therian Сб мар 21, 2009 11:41:01, всего редактировалось 2 раза.
SeregaT писал(а):Есть у меня ЖКИ - WHC0802B-NGA-CT
Хочу попробовать подключить его к микро контроллеру, но понятия не имею с чего начать.
Вот подробное описание подключения и программирования таких LCD c контроллером совместимым с hd44780. А так же работа с USART AVR на Си - прием и передача данных очень подробно.
therian писал(а):while (!PINB.3 && !PINB.4);
Я советую скобок не жалеть:
Код: Выделить всё
while ((!PINB.3) && (!PINB.4));
Последний раз редактировалось ikarab Чт мар 26, 2009 19:26:26, всего редактировалось 1 раз.
1. Народ, научите писать заголовочные файлы на код. На CodeVisionAVR.
2.В этой программе можно писать код на ассемблере?
Простенькие схемы уже понял как делать, сегодня буду проект делать.
3.и еще. Вот я нажал шифт+ф9. Он мне выдает такую таблицу (там ошибки всякие).
4.Куда файл компилируется?
5.И если компилируется, то на всех расширениях?
Там на Хекс, С, ....
6.Какой язык лучше для программирования - СИ или ассемблер? Прошу ответить на этот вопрос профессионалов...
А то я не могу определиться...
Помогите, плиз...
7.Но лучше пока научите выставлять заголовочные файлы.
8. Когда я расставил и настроил порты для ввода и вывода, что там за 0,1, Т, что они означают?
Можно ли в процессе написания кода изменить назначения портов?(ввод - вывод).
Когда я все сделал в настройках контролера, надо сгенерировать код. я его сгенерировал, там надо что то сохранить три раза, и появляется в окне сгенерированный код. что с ним делать?
2.В этой программе можно писать код на ассемблере?
Простенькие схемы уже понял как делать, сегодня буду проект делать.
3.и еще. Вот я нажал шифт+ф9. Он мне выдает такую таблицу (там ошибки всякие).
4.Куда файл компилируется?
5.И если компилируется, то на всех расширениях?
Там на Хекс, С, ....
6.Какой язык лучше для программирования - СИ или ассемблер? Прошу ответить на этот вопрос профессионалов...
А то я не могу определиться...
Помогите, плиз...
7.Но лучше пока научите выставлять заголовочные файлы.
8. Когда я расставил и настроил порты для ввода и вывода, что там за 0,1, Т, что они означают?
Можно ли в процессе написания кода изменить назначения портов?(ввод - вывод).
Когда я все сделал в настройках контролера, надо сгенерировать код. я его сгенерировал, там надо что то сохранить три раза, и появляется в окне сгенерированный код. что с ним делать?
Не умеешь - не берись, но не взявшись не научишься...