Страница 5 из 421

Добавлено: Сб сен 15, 2007 20:29:28
Negor
Попробую... Есть пара вопросов. В процессе инициализации дисплея на пине Enable должен быть высокий уровень?

Добавлено: Чт ноя 22, 2007 14:35:22
MetEl
CV AVR пишет evaluation version file size limit exceeded... и чё?
Любой блок ремаркирую всё нормально (типа объём уменьшаю).

Раньше такое тоже бывало, но когда появлялось, а когда исчезало...

В чём писать то?

У меня какраз сейчас самый кайф - менюшки и циферки оживают.

Меня по прежнему бросает в прострацию кагда я смотрю на эти простыни! И мне (толькочто чтото осилившему) бъёт по мозгам!
А там- вон то. То-да сё... жми сюда!

If -ы глючат!

if (ляляля){
if (бебебе){
то даcё }
if(а вот нада){
то и это}
}

бебебе не выполняется никогда.
а вот это нада тоже бредит.

Думаю применить case, но примеры не понятные...

Вот так пойдёт?

switch (PORTB.5==0)

{
case a=1: a++; break;
case a=2: a++; break;
case a=3: a=1; break;
default : ;
}

Добавлено: Чт ноя 22, 2007 14:48:08
tych
MetEl писал(а):Вот так пойдёт?

Код: Выделить всё

 switch (PORTB.5==0)

{
 case a=1: a++;    break;
 case a=2:  a++;    break;
 case a=3:  a=1;    break;
 default : ;
 }
Похоже так должно быть

Код: Выделить всё

 switch (a) { // выбор в зависимости от значения переменной - a
 case 1: a++;     break;
 case 2:  a++;    break;
 case 3:  a=1;     break;
                          }

PORTB.5==0 не знаю к чему там.

Добавлено: Чт ноя 22, 2007 14:49:33
tych
MetEl писал(а):If -ы глючат !
Вы не верно их пишите. Посмотрите на стр. 5 как правильно.

Добавлено: Чт ноя 22, 2007 15:09:03
MetEl
Никаких выводов я не могу сделать из 05 стр.
По switch посмотрите сами и свыжим взглядом.

А на ссылках по примерам (for посмотрите...) вообще тупик.
Хотя я больше им пользуюсь (citforum-учебнгик по Си).

И посмотрите шаблон for вCV AVR!

Добавлено: Чт ноя 22, 2007 15:28:56
tych
MetEl писал(а):По switch посмотрите сами и свыжим взглядом.
Напишите словами ПОДРОБНО что вам нужно сделать.
MetEl писал(а):А на ссылках по примерам (for посмотрите...) вообще тупик.

И посмотрите шаблон for вCV AVR!
Вы же про IF писали !
For откуда "всплыл" в бесседе ?

Или вы перешли в стадию обучения когда вопросы растут как снежный ком ?

Добавлено: Чт ноя 22, 2007 15:37:35
tych
MetEl писал(а):По switch посмотрите сами и свыжим взглядом.
Я по ошибке редактированием прежнего сообщения сделал - посмотри выше.

Добавлено: Чт ноя 22, 2007 15:42:36
tych
MetEl писал(а):Никаких выводов я не могу сделать из 05 стр.
По switch
Вот цитата сто страницы 5 "Си для МК"

Код: Выделить всё

switch (выражение) {
case 5:
/* этот код будет выполняться если результат вычисления выражения равен числу 5   ... 
А у вас как связано то что в скобках () со строчками выбора ???

Код: Выделить всё

switch (PORTB.5==0) 
{ 
 case a=1: a++;    break; 
 case a=2:  a++;    break; 
 case a=3:  a=1;    break; 
 default : ; 
 }
Что вы тут не можете понять ?
Что у меня написано не понятно ?

Уверен что IF и FOR вы тоже поймете если прочитаете ВНИМАТЕЛЬНО и НЕСПЕША ! думая ...

ЖУЙТЕ!

Добавлено: Чт ноя 22, 2007 16:14:29
MetEl
tych писал(а):

Код: Выделить всё

switch (выражение) {
case 5:
/* этот код будет выполняться если результат вычисления выражения равен числу 5   ... 
Видетели, я не вижу в,- " /* это код выполнятся если..."
никакого кода! Там нету ни чиго!!!

Я догадываюсь, что вы имели ввиду, что этот код (программа чтоли?) может быть там написан!!! ГДЕ код , да и что это такое!

Как я это понимаю :

{ // начало тела програмы
int s;
// int объявление (предоставление пячейки памяти, чтоб скомпоновать и распределить место в машинном коде программы) переменной под названием s (s для удовства, желательно подходящее по смыслу с тем с тем где оно и как будет применятся) или mama_papa...

**тело програмы (общее) ***

if (условие) { ***тело женское***
// if - оператор - который оперируя заданными условиями
направляет точку работы программы в следующее за ним тело (женское) или пропуская тело женское безусловно(еслибы был оператор else (то (.) выполнения программы перешло бы в тело следующее за else)) на нижеследующие строки програмы( в общее тело)
}

*** тело программы (общее, и всё тоже)***

}

пример:
{
int s,r;
***
if(PORTB.5==0){
if (s=1){
r++;
s=0;
}
if(s=2){
r--;
s=1;
}
}

То что в примере, я пытаюся написать и осуществить. Но оно не работает.



ЗЫ:
(.) выполнения пограмы - счётчик команд.

Re: ЖУЙТЕ!

Добавлено: Чт ноя 22, 2007 16:23:03
tych
MetEl писал(а):Видетели, я не вижу в,- " /* это код выполнятся если..."
никакого кода! Там нету ни чиго!!!
ДАК !!! Страницу то надо с начала читать! Тогда и ясен будет стиль изложения. Естественно при чтении с серидины не всё будет ясно.

Но точто после "кэйз" должно быть ЧИСЛО - КОНСТАНТА и так ясно ?

И что это число результат вычисления выражения в скобках тоже ЯСНО.

Re: ЖУЙТЕ!

Добавлено: Чт ноя 22, 2007 16:25:47
tych
MetEl писал(а):
if (условие) { ***тело женское***
// if - оператор - который оперируя заданными условиями
направляет точку работы программы в следующее за ним тело (женское) или пропуская тело женское безусловно(еслибы был оператор else (то (.) выполнения программы перешло бы в тело следующее за else)) на нижеследующие строки програмы( в общее тело)
}

*** тело программы (общее, и всё тоже)***

}
Где вы такую чепуху находите ???

Вот на странице 5 написано:
if(){}else{}; идеальная конструкция если вам нужно выполнить какую то часть программы при наличии каких либо условий :

Код: Выделить всё

if (выражение) { /* делать этот код если выражение "истина" - т.е. результат его вычисления не ноль */
                }
else { /* делать этот код если выражение "ложь" - т.е. результат его вычисления равен нулю */
        };  
ЧЁ тут непонятно ТА ?

Вот что мне нада

Добавлено: Чт ноя 22, 2007 16:39:15
MetEl
tych писал(а):
ЧЁ тут непонятно ТА ?
А если у меня нет else. Или оно мне не нада?!
Что мне там писать! Сразу выход?
Мне просто нада:

Если PORTB на земле.
{
проверить н если:
-н=1 тогда { н=3 и ф=20}
-н=2 тогда { н=1 и ф=10}
-н=3 тогда {н=2 и ф=0}
}

Re: ЖУЙТЕ!

Добавлено: Чт ноя 22, 2007 16:48:08
MetEl
tych писал(а): Вот на странице 5 написано:
if(){}else{};

/* делать этот код если выражение
}
/* делать этот код если выражение

ЧЁ тут непонятно ТА ?
Который оперируя заданными условиями направляет точку работы программы... Разве это не одно и тоже?

Я сперва вижу if(){}else{}; и сразу же так и запоминаю...
Потом так и пишу.
А на пол страницы искать где там у вас закрывающая ковычка стоит... и потерялся.

((

Добавлено: Чт ноя 22, 2007 17:29:59
MetEl
tych писал(а):
metEl писал(а): И посмотрите шаблон for вCV AVR!
Вы же про IF писали !
For откуда "всплыл" в бесседе ?

Или вы перешли в стадию обучения когда вопросы растут как снежный ком ?
Извените описАлся, читать как, - "И посмотрите шаблон IF в CVAVR".
Там ; в конце оператора If , если нету else...

Вообщето я не обучаюсь.
Я говорю что if в if -е в CVAVR глючит.

Добавлено: Чт ноя 22, 2007 18:48:37
ARV
Изучить классический Си надо в первую очередь, а лишь потом браться за его версию для МК. Причем изучать по книгам, на которых не одно поколение программистов выросло, а не по курсам "для чайников".

По всем предыдущим вопросам и выкрикам можно сделать один разъединственный вывод: вопросы задает человек, не имеющий ни малейшего понятия о том языке, на котором пытается писать программы.

Так дела не делаются. У tych-а еще терпения хватает че-то отвечать... а решение всего лишь в преодолении лени - MetEI, прочти книжку про Си!

Re: Вот что мне нада

Добавлено: Чт ноя 22, 2007 20:37:00
tych
MetEl писал(а):А если у меня нет else. Или оно мне не нада?!
Что мне там писать! Сразу выход?
Можно пустоту оставить { пусто } а можно и желательно просто
else{} не писать - о чем и написано на стр. 5
MetEl писал(а): Мне просто нада:

Если PORTB на земле.
{
проверить н если:
-н=1 тогда { н=3 и ф=20}
-н=2 тогда { н=1 и ф=10}
-н=3 тогда {н=2 и ф=0}
}
Дак чтобы проверить на земле ли ножка PB5 вам

НУЖНО ВНИМАТЕЛЬНО прочитать стр. 2 курса - "устройство AVR" и понять из какого регистра читают ВХОДНЫЕ сигналы !

Код: Выделить всё

if(регистр входных сигналов B.5==0){ 

  swich  как я написал вам выше.

};

Добавлено: Чт ноя 22, 2007 22:11:51
MetEl
А может дело в компиляторе?
Один знакомый присла прогу для ознакомления.
Там всё просто, хочешь в строчку пишу с ; хочешь вертикально раскладывай.
Хочешь за if-ом хоть пол страницы.
Всё работает правильно.

У меня компилятор не ругается, просто контроллер не делает так как в програме. Вот такое-

if(a<x<b){
ляляля}

Он тоже не выполняет...

Скачал ICCV7 for AVR думал запущу. Нет. Нет atmega128.h, delay.h.
((((

Добавлено: Чт ноя 22, 2007 23:13:25
tych
MetEl писал(а):Вот такое-

if(a<x<b){
ляляля}

Он тоже не выполняет...
Я взял пример C:\CVAVR\examples\LED

и вставил ваше выражение - у меня выполняет, не ругается. Можете скомпилировать и асм листинг посмотреть.
MetEl писал(а):Скачал ICCV7 for AVR думал запущу. Нет. Нет atmega128.h
Там заголовки по другому называются.

======== А вообще если несколько компиляторов
кривые то нужно в "танцоре" проблему поискать ИМХО.

Добавлено: Ср ноя 28, 2007 12:41:13
lexmulya
Потому что нужно писать

Код: Выделить всё

if((x>a)&(x<b)){
}
В остальных ваших примерах тоже ошибки

Добавлено: Ср ноя 28, 2007 12:48:55
tych
lexmulya писал(а):Потому что нужно писать

Код: Выделить всё

if((x>a)&(x<b)){
}
В остальных ваших примерах тоже ошибки
Лучше &&