Ну, если бы у бабушки был...Аlex писал(а):Ну если макросы sbi и cbi определены, то почему бы этому не работать ?
С другой стороны согласен, а с третьей: если CHECKBIT(x,y) определили, то и пару строчек о sbi() и cbi() можно было черкнуть.
Ну, если бы у бабушки был...Аlex писал(а):Ну если макросы sbi и cbi определены, то почему бы этому не работать ?
Ну, если бабушке всё рассказать и всему научить, то ей и дедушка не понадобитьсяIM1 писал(а):пару строчек о sbi() и cbi() можно было черкнуть.
Код: Выделить всё
/**
\ingroup deprecated_items
\def sbi(port, bit)
\deprecated
Set \c bit in IO port \c port.
*/
#define sbi(port, bit) (port) |= (1 << (bit))
/**
\ingroup deprecated_items
\def cbi(port, bit)
\deprecated
Clear \c bit in IO port \c port.
*/
#define cbi(port, bit) (port) &= ~(1 << (bit))А Atmel Studio посылает очень далеко с такими конструкциями.uni писал(а):Т.е. пользоваться ими не рекомендуется, но они стандартные, т.к. определены в библиотеке. Вообще, следует просматривать иногда эти заголовочники, чтобы не изобретать велосипедов.
Код: Выделить всё
#include <compat/deprecated.h>Готовить умею, просто не люблю. Посмотрел папку, да уж, круто, аж 2005г. макросы! Ради несчастных sbi - cbi...uni писал(а):Может вы просто не умеете её готовить?
IM1 писал(а):Готовить умею, просто не люблю. Посмотрел папку, да уж, круто, аж 2005г. макросы! Ради несчастных sbi - cbi...uni писал(а):Может вы просто не умеете её готовить?
Уже писал, что дело вкуса и привычки. В стандарте нет, значит нет, а макрос можно любой склепать.
a_skr писал(а):Наверное, нужна длина строки (см. strlen), а не размер указателя.
Вот Вы неугомонный, я же сказал: дело вкуса и делайте, что хотите. Почитайте классику что ли, например K&R.uni писал(а):А что за стандарт такой?
Здорово Вы меня приложили. У меня тоже была мысль, что в Вас бродит ностальгия по ассемблеру, раз так рьяно используете названия его команд. Но постеснялся написать, чтобы не обидеть.uni писал(а):Если когда-нить решитесь озаботиться изучением ассемблера AVR, то обратите внимание на инструкции SBI и CBI и подумайте почему макросы так названы.

kapitaneo писал(а):Помогите разобраться
Как присвоить значение с ноги одного порта на ногу другого?
В Codevisione все просто PORTC.1=PINB.2;
А как в WINAVre
Я уже голову сломал, гуглин нифига.
Спасибо, заранее.
IM1 писал(а):И, что, прям ЭТО работает в GCC?uni писал(а):Код: Выделить всё
#define CHECKBIT(x,y) ((x) & (1<<(y)))
CHECKBIT( PINB, 2 ) ? sbi( PORTC, 1 ) : cbi( PORTC, 1 );
IM1 писал(а):А Atmel Studio посылает очень далеко с такими конструкциями.uni писал(а):Т.е. пользоваться ими не рекомендуется, но они стандартные, т.к. определены в библиотеке. Вообще, следует просматривать иногда эти заголовочники, чтобы не изобретать велосипедов.
TICLIR писал(а):a_skr писал(а):Наверное, нужна длина строки (см. strlen), а не размер указателя.
Вот вот. где то вдалеке я это понимаю, вот как бы это по граммотному сделать.
А где смотреть?
Все обидеть норовите?uni писал(а):Так что кого вы тут учите? Садитесь за букварь и изучайте инструментальные средства, которыми пользуетесь, угомонитель вы наш.
Не надо нести чушь на пустом месте, - есть правила, есть стандарты. Например, Вы же не ездите по левой стороне и не ходите голым по улице?Аlex писал(а):А так, согласен, новичка эти слова могут ввести в ступор. Можно было и описать их в примере.
Код: Выделить всё
00000034 <main>:
#include <avr/io.h>
int main(void)
{
while(!(PINA&0x10));
34: cc 9b sbis 0x19, 4 ; 25
36: fe cf rjmp .-4 ; 0x34 <main>
}
38: 80 e0 ldi r24, 0x00 ; 0
3a: 90 e0 ldi r25, 0x00 ; 0
3c: 08 95 ret
a_skr писал(а):Не игнорирует: