реклама на сайте
подробности

 
 
> Вопрос по WinAvr
all505
сообщение Oct 13 2009, 23:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Подскажите новичку, почему не работает приведенный ниже код? help.gif
Или как считать данные с порта?
Компилятор Avr-Gcc.

CODE
#include <avr/io.h>
#include <avr/delay.h>
#include <util/delay.h>


int main(void)

{

DDRA&=~_BV(0);//порт А.0 вход
PORTA|=_BV(0);//Резистор ON
DDRD|=_BV(0);// порт D.0 выход

while(1)
{

if(PINA,0) //проверить нажата кнопка <<<<<<<<<<<< Не работает!!!!
{
PORTD|=_BV(0); //выключаем светодиод
}else{
PORTD&=~_BV(0); //включаем светодиод
};

};
}



Сообщение отредактировал all505 - Oct 14 2009, 00:34
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
all505
сообщение Oct 14 2009, 01:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Цитата
А что по-вашему должен делать оператор?
Код
if(PINA,0)
поясните своими словами.


Сделать что-то если на ножке 0 порта A будет лог.1.

В CodeVision работает. excl.gif

Сообщение отредактировал all505 - Oct 14 2009, 01:35
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Oct 14 2009, 06:10
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(all505 @ Oct 14 2009, 04:34) *
Сделать что-то если на ножке 0 порта A будет лог.1.
В CodeVision работает. excl.gif

С точки зрения Си получаем: if(PINA,0) берется самое правое выражение, при этом компилер матюкаеццо:
Цитата
warning: left-hand operand of comma expression has no effect

Поскольку приняли во внимание только 0 - получили всегда ложное условие. Поятому ничего не выполнилось.

В связи с этим вопрос: насколько вообще кодвижн близок к Си, если там такая ботва? cranky.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 14 2009, 07:13
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_Pasha @ Oct 14 2009, 09:10) *
В связи с этим вопрос: насколько вообще кодвижн близок к Си, если там такая ботва? cranky.gif
Вообще-то в CV результат будет идентичным. В CV работет запись PINA.0, но на нее WinAVR выругался и автор, видимо, решил заменить точку на запятую.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016