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

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

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

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

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

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


 
Опции темы
Непрочитано 03.08.2012, 18:00  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Типа, так можно
Код:
unsigned int a,b, i;

	for(i=0; a = pgm_read_byte(&RGB[i++])‹‹8;) 
	{
	      write_data(a |= pgm_read_byte(&RGB[i++]));
       }
Реклама:

Последний раз редактировалось Yurkin2007; 03.08.2012 в 18:09.
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
С.М.С (03.08.2012)
Непрочитано 03.08.2012, 18:11  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Благодарю оба варианта подошли.
С.М.С вне форума  
Непрочитано 03.08.2012, 19:07  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
Здравствуйте. Как считать из Flash памяти МК два байта в двубайтовую переменную? Так записывается только младший байт.
Код:
{
unsigned int a,b, i;

    for(i=0;pgm_read_byte(&RGB[i]);i++) 
    {
    a=pgm_read_byte(&RGB[i]);
    a = a››8;
    i=i++;
    a=pgm_read_byte(&RGB[i]);
    write_data(a);
}
С.М.С, никто не обратил Вашего внимания на некоторые ошибки в тексте, значит, Вы их снова допустите в других случаях. Чтобы этого не произошло, хочу обратить внимание на следующее:
Код:
{    for(i=0;pgm_read_byte(&RGB[i]);i++) 
    { ...}
Здесь, в качестве признака завершения цикла, использовано значение, возвращаемое вызовом pgm_read_byte. Врядли Вы именно это имели ввиду - ведь так цикл и чтения будут продолжаться до тех пор, пока из Flash не будет считан ноль.
Код:
{    a=pgm_read_byte(&RGB[i]);
    a = a››8;
    ...
    a=pgm_read_byte(&RGB[i]);}
Здесь первое считанное в переменную 'a' значение выталкивается из нее полностью, так как сдвиг происходит в сторону младших, а не старших разрядов. Переменная становится равной нулю и только второе чтение из Flash запоминается в ней.
Код:
{    i=i++;}
Этот оператор не приводит к изменению значения переменной i, так как Вы применили постинкрементирование, то есть, последовательность такова:
  1. сохраняется старое значение переменной,
  2. переменная увеличивается на 1,
  3. переменной присваивается значение, сохраненное на шаге 1.
Если бы не эти огрехи, Ваш код тоже сработал бы, повидимому.

Удачи.
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 04.08.2012 в 00:09.
tempora вне форума  
Сказали "Спасибо" tempora
С.М.С (03.08.2012)
Непрочитано 03.08.2012, 21:51  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Благодарю, а то я уже битый час гадаю, почему из цикла вылетает, а оно вон как. Надо нормальную книгу найти, а то так долго можно мозги парить себе и другим.
С.М.С вне форума  
Непрочитано 03.08.2012, 22:03  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
Надо нормальную книгу найти, а то так долго можно мозги парить себе и другим.
Вообще-то не книгу нормальную надо искать. Их навалом. Надо их читать с большим вниманием и стараться поглубже вникать.
Все рекомендуют, я присоединяюсь. Обязательно к прочтению. С нее надо начинать.
Brian W. Kernigan
Dennis M. Ritchie
The C Programming Language.
Я по ней учил язык.
Есть полностью и правильно переведенная на русский.
А уж про десятки аналогичных, да и просто справочников по языку - даже не говорю.
Читать, каждый фрагмент, каждый оператор, каждую функцию проверять на практике. Шагать симуляторами, отладчиками. Впитывать в кровь. Ведь недаром студентов на лабы загоняют...
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 03.08.2012 в 22:06.
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
С.М.С (03.08.2012)
Непрочитано 03.08.2012, 22:26  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
Надо нормальную книгу найти,
Ну, со сдвигами-то всё просто - в позиционной записи чисел старшие разряды - слева, младшие - справа, поэтому сдвиг в сторону старших разрядов обозначается стрелками влево ("‹‹"), а в сторону младших - наоборот ("››").
__________________________________________________ ______________________________
Сообщение от ut1wpr Посмотреть сообщение
студентов на лабы загоняют...
От меня в М.З. не знали, как избавиться.

__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 03.08.2012 в 22:31.
tempora вне форума  
Непрочитано 03.08.2012, 23:51  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от st__1 Посмотреть сообщение
Вы ничего не путаете???
Каким боком здесь EEPROM???
Тут ошиблись, а так да, из цикла выходило при первом нулевом значении. Переписал, картинка на экране появилась. Странно это на асме не хочет, а на Си работает, ну да ладно едем дальше.
С.М.С вне форума  
Непрочитано 04.08.2012, 00:05  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
на асме не хочет, а на Си работает
А зачем этот футбол на минном поле???
Вот пока на СИ что-то получается... и не останавливайтесь... забудьте про АСМ... абстрагируйтесь...
st__1 вне форума  
Непрочитано 04.08.2012, 00:11  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
Странно это на асме не хочет, а на Си работает
Не вините язык программирования, он ни при чем.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 04.08.2012, 00:12  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Собственно с Си и начал из-за корявости рук с асм, но скоро может автономка быть без интернета, вот и пытаюсь урвать по больше, чтобы потом в свободное время допиливать. Благодарю за помощь!

Сообщение от ut1wpr Посмотреть сообщение
Не вините язык программирования, он ни при чем.
само собой, вот и проверяю на нескольких, раз на одном работает, значит дело не в бабине...

Последний раз редактировалось С.М.С; 04.08.2012 в 00:14.
С.М.С вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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