Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 17.04.2014, 10:10  
KOCTR
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KOCTR на пути к лучшему
По умолчанию Сдвиг в cvavr

Объясните пож. почему сдвиг работает не так как я от него ожидаю

проект создан в cvavr версии 2.04.4а
проц attyni2313

вот часть кода, код сгенерирован по умолчанию(запустил код генератор и сразу save and exit)


Код:
...
unsigned char qwerty=0x00;
...
void main(void)
{
...
while(1)
{
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
qwerty=1‹‹qwerty;
}
}
}
не понимаю почему переменная qwerty последовательно принимает значения:
0x00
0x01
0x02
0x04
0x10 !!!!!?
0x00 !!!!!?

т.е. после значения 4 переменная qwerty сразу принимает значение 16 вместо значения 8! почему?!
прикладываю проект в архиве rar.
Вложения:
Тип файла: rar proga1.rar (26.6 Кб, 25 просмотров)
Реклама:
KOCTR вне форума  
Непрочитано 17.04.2014, 10:16  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: сдвиг в cvavr

А если на бумажке, вручную, включив мозг в режиме тиньки, проделать этот кусок программы? Пар не пойдет?
Внимательно посмотрите, чего хотите от контроллера и что, по факту, просите сделать.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Непрочитано 17.04.2014, 12:29  
KOCTR
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KOCTR на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Будьте добры просто напишите инструкцию так как она должна выглядеть! У меня явное не понимание синтаксиса cvavr!
Если вы намекаете на: qwerty=qwerty‹‹1; то сдвига не происходит вообще!
KOCTR вне форума  
Непрочитано 17.04.2014, 12:32  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Сообщение от KOCTR Посмотреть сообщение
почему?!
Потому что вы двигаете 1 на число раз в qwerty и присваиваете результ qwerty

Если хотите просто двигать qwerty
Код:
qwerty= qwerty ‹‹ 1;
или
qwerty ‹‹= 1;
Учите Си!
realid вне форума  
Непрочитано 17.04.2014, 12:50  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Можно типа
for (i=1; i‹17; i++) {
qwerty=1‹‹i;
.......
}

И при чем тут CV ? Просто потому, что привыкли на него наезжать?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Непрочитано 17.04.2014, 13:29  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Сообщение от KOCTR Посмотреть сообщение
Код:
unsigned char qwerty=0x00;
До опупения можно сдвигать, ноль, он и "сдвинутый" будет ноль. Куда бы ни сдвигали..
Выше правильно посдказывали.
Код:
unsigned char qwerty=0x01;
qwerty ‹‹= 1;
// etc
...Учите и понимайте Си.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 17.04.2014, 13:59  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Сообщение от KOCTR Посмотреть сообщение
после значения 4 переменная qwerty сразу принимает значение 16 вместо значения 8! почему?!
Для получения 8 надо сдвинуть на 3, а у Вас уже 4 в переменной лежит. Значение 3 проскакивается из-за применяемого способа сдвига.
Yurkin2014 вне форума  
Непрочитано 17.04.2014, 15:16  
KOCTR
Прохожий
 
Регистрация: 28.08.2007
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KOCTR на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Учите си в значении не приставай с дурацкими вопросами... Но на то вопросы и задаются чтобы понять что-то! Однако и я дам совет: вместо того чтобы умничать иногда нужно просто дать готовый ответ! Извините не я задал тон общения! Начинающему всегда трудно понять логику из-за отсутствия опыта. Ключевым моментом тут было то что переменная имела нулевое значение из за чего я и не получал нужного результата, а в литературе нигде не было сказано об этом! Тем не менее боьшое всем спасибо!
KOCTR вне форума  
Непрочитано 17.04.2014, 16:24  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Сообщение от KOCTR Посмотреть сообщение
1‹‹qwerty
Это значит единицу продвинуть столько раз, СКОЛЬКО ЛЕЖИТ в переменной. Другими словами, если в переменной единица сдвинута уже в 3-й разряд (4-й по счету), то следующий сдвиг будет уже на 8 разрядов.
Это к
Сообщение от KOCTR Посмотреть сообщение
Учите си в значении не приставай с дурацкими вопросами...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Непрочитано 17.04.2014, 17:23  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Сдвиг в cvavr

Сообщение от KOCTR Посмотреть сообщение
Учите си в значении не приставай с дурацкими вопросами... Но на то вопросы и задаются чтобы понять что-то! Однако и я дам совет: вместо того чтобы умничать иногда нужно просто дать готовый ответ! Извините не я задал тон общения! Начинающему всегда трудно понять логику из-за отсутствия опыта. Ключевым моментом тут было то что переменная имела нулевое значение из за чего я и не получал нужного результата, а в литературе нигде не было сказано об этом! Тем не менее боьшое всем спасибо!
Ни один из советующих не умничал. Ни разу. А вот давать советы имея 3 (три) личных поста на форуме я бы не рекомендовал. Не так поймут.
В дальнейшем для понимания сути происходящего тренируйте беглое представление чисел в разных форматах представления. В вашем случае вам достаточно было написать подряд 8 нулей (0х00 в бинарном представлении выглядят "00000000") чтобы сразу увидеть, какие числа будут появляться при смещении этих нулей влево или вправо.
dec-›hex-›bin в пределах восьми разрядов у вас должны быть зрительно-мгновенны. На вскидку. Работайте над этим. Это основы.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

Закладки

Метки
cvavr, сдвиг
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AD9850, сдвиг фаз - кто работал? pavned Микроконтроллеры, АЦП, память и т.д 8 05.01.2013 11:21
Attiny13\2313 и генератор импульсов на CVAVR deeman30rus AVR 31 22.11.2012 19:20
Помогите с записью в память по заданному адресу в cvavr begun Микроконтроллеры, АЦП, память и т.д 5 06.04.2011 11:32
Знатоки CVAVR. АЙ НИД ХЕЛП!!! Nikopol Микроконтроллеры, АЦП, память и т.д 3 06.06.2008 12:18
Как или чем определить фазовый сдвиг Online Измерительное оборудование 19 06.11.2006 15:12


Часовой пояс GMT +4, время: 15:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot