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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

Закрытая тема
Опции темы
Непрочитано 25.07.2015, 10:42   #51
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от omercury Посмотреть сообщение
Если в UTF-8, а в UNICODE?

Сейчас модно пользоваться uint-ами.
UTF сравнивать с char что запорожец с помидором
Реклама:
Boba_spb вне форума  
Непрочитано 25.07.2015, 13:25   #52
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,915
Сказал спасибо: 2,980
Сказали Спасибо 3,160 раз(а) в 2,145 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Если это ГЦЦ, то там где-то в мануалах было, что 8-и битные операции всё равно выполняются как 16-и битные. Вероятно, что-то вроде temp &= [uint8]~(1‹‹1) поможет. Кстати, вторую единицу я-бы назвал как-то символьно, что-бы не думать потом "что-же это там второй бит делает".
ForcePoint вне форума  
Непрочитано 26.07.2015, 12:02   #53
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ForcePoint Посмотреть сообщение
Кстати, вторую единицу я-бы назвал как-то символьно, что-бы не думать потом "что-же это там второй бит делает".
У меня с короткими и понятными названиями тяжело. Поэтому я помечаю в отдельном текстовом файле ,что у меня каждый флаг(бит) делает. Мне так проще оказалось.

Попробовал temp &= [uint8]~(1‹‹1) .Ругается. Говорит не знаю что это.
ARTEM277 вне форума  
Непрочитано 26.07.2015, 12:38   #54
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,915
Сказал спасибо: 2,980
Сказали Спасибо 3,160 раз(а) в 2,145 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Тогда, круглые скобки и скобки вокруг выражения (не помню точно) - (uint8 )(~(1‹‹1)).
Поищите в руководствах. Это, вроде, "модификатор типа" называется. Т.е. компилятор должен часть выражения посчитать используя другой тип данных.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
ARTEM277 (26.07.2015)
Непрочитано 26.07.2015, 14:55   #55
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Провел кое какие исследования. И получил вот что.

На уровне ассемблера эта команда PORTA&=~(1‹‹1) выглядит как
CBI 0x18,1. Эта команда PORTA|=(1‹‹1) выглядит как SBI 0x18,1.
Эти команды обращаются на прямую к регистру PORTA (так же и к другим физическим регистрам).
То есть в системе команд atmeg-и команды сделаны прямо для этого.
http://www.gaw.ru/html.cgi/txt/doc/m.../asm/start.htm
CBI 0x18,1 это 2 байта
SBI 0x18,1 это тоже 2 байта

Теперь рассмотрим эту операцию
это в си;
unsigned char temp=4;

temp&=~(1‹‹1);

в ассемблере ;

LDS R24,0x0060;занимает 4 байта. Загружаем содержимое по адресу 0x0060 в R24. То есть число 4.
ANDI R24,0xFD ;занимает 2 байта. Делаем логическое and
STS 0x0060,R24 ;занимает 4 байта. Выгружаем обратно.

То есть получается все верно. Эта операция занимает temp&=~(1‹‹1); занимает 10 байт. Все по честному.
И по другому ни как я не могу в своей переменной очистить бит.
Если конечно представить ,что R26(например) будет моя переменная temp и сделать вставку ассемблера
,то я могу делать так
ORI R26,0x01 ; то это займет 2 байта.
но кто знает как компилятор распорядится этим регистром

Команд,которые могут работать с битами ячеек ОЗУ на прямую я не нашёл.
Значит если нужен очень компактный код, то шлепать надо на асме. И работать только с регистровым файлом. Не создавая ни каких переменных в озу.
Человек который писал на ассемблере похожую программу работал только с регистровым файлом. Вся программа заняла 2490 байт. На си моя программа должна будет занять примерно 5 кБайт. Но она будет гибче и понятнее. За удобство надо платить.

У Microchip такая возможность как изменить один бит в ОЗУ есть.
Это взято с реально работающей программы.
Контроллер PIC12F629
begin:
mask1 EQU 21h ; называем ячейку в ОЗУ по адресу 21h как mask1

инициализация

start:
bsf GPIO,1 ;команда занимает 1 байт. Установить в 1 "ногу порта"
bsf mask1,1;команда занимает 1 байт. Установить бит 1 в mask1

То есть команда bsf может работать как с регистрами так и с ОЗУ
Почему ATMEL так не сделал.

Комментируйте и исправляйте если я ,что то не так сообразил...
Хочу выслушать Ваше мнение уважаемые форумчане.
ARTEM277 вне форума  
Непрочитано 26.07.2015, 14:58   #56
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ForcePoint Посмотреть сообщение
Тогда, круглые скобки и скобки вокруг выражения (не помню точно) - (uint8 )(~(1‹‹1)).
Ругается.
Я обязательно почитаю руководства. Более подробно.
ARTEM277 вне форума  
Непрочитано 26.07.2015, 18:38   #57
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
она будет гибче и понятнее. За удобство надо платить
не верю! (с)
проблема будет с кроссплатформенностью, не более. насчет понятности - макросы спасут, вплоть до отсутствующих в списке команд или формул. а уж имена давать можно любые, только воздерживайтесь от типа - ДАЗДРАПЕРМА, ДЕЛЕЖ, КУКУЦАПОЛЬ
jump вне форума  
Непрочитано 26.07.2015, 19:22   #58
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

А ЛАПАНАЛЬДА можно ?
baiderin вне форума  
Непрочитано 26.07.2015, 21:08   #59
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от jump Посмотреть сообщение
насчет понятности - макросы спасут
Хочу пример. Если не сложно . Напиши о каких макросах идет речь ?
Может я что то не знаю.Я ведь только учусь.
ARTEM277 вне форума  
Непрочитано 26.07.2015, 21:10   #60
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от baiderin Посмотреть сообщение
А ЛАПАНАЛЬДА можно ?
Можно. Это же не попало в список санкций.
ARTEM277 вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Re-0505S помогите советом Superki Источники питания и свет 2 08.10.2008 20:14
Помогите советом начинающему eler Делимся опытом 64 11.09.2008 17:28
Товарищи помогите советом!!! Mrak Микроконтроллеры, АЦП, память и т.д 13 17.11.2005 18:46
[Решено] Помогите советом Madison Видеотехника 9 06.08.2005 04:17
[Решено] помогите советом pioneer KEH-P7450 sreg kr Информация по радиокомпонентам 2 20.07.2005 18:57


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


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