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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.07.2015, 21:22  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,002
Сказал спасибо: 0
Сказали Спасибо 4,946 раз(а) в 2,373 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от baiderin Посмотреть сообщение
можно ?
в этом доме попрошу не выражаться! (С) да-с!
Реклама:
jump вне форума  
Непрочитано 26.07.2015, 21:26  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,002
Сказал спасибо: 0
Сказали Спасибо 4,946 раз(а) в 2,373 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

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

Сообщение от jump Посмотреть сообщение
а мы - ищем клац и читаем
За ссылочку конечно спасибо. Но мне ассемблер не интересен. Я пока ,что СИ постигаю. Я не много писал под микрочип на асме. Поэтому принцип работы ассемблера я понимаю. С макросами в ассемблере дело не имел. Как то не доходило.
Начинать споры о том какой язык круче ,бессмысленно. У каждого языка как свои плюсы так и минусы.... Но пока ,что от си я в восторге. Много фишек этого языка я не знаю конечно, но для этого и есть этот форум ,что бы люди делились своими знаниями. Ибо,идущий осилит дорогу... по моему так говорится..
ARTEM277 вне форума  
Непрочитано 27.07.2015, 23:54  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,002
Сказал спасибо: 0
Сказали Спасибо 4,946 раз(а) в 2,373 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
мне ассемблер не интересен. Я пока ,что СИ постигаю
тогда вы не постигнете дзен
Сообщение от ARTEM277 Посмотреть сообщение
Я не много писал под микрочип на асме. Поэтому принцип работы ассемблера я понимаю. С макросами в ассемблере дело не имел
тогда вы не понимаете принципов. кстати, погуглите "макросы в С"
jump вне форума  
Непрочитано 28.07.2015, 06:51  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от jump Посмотреть сообщение
кстати, погуглите "макросы в С"
Конечно я посмотрел. #define это макрос. Я ПРАВИЛЬНО ПОНЯЛ ? Через него я пытался решить проблему описанную мной в 55 посте. Не знаю на сколько правильно я его использовал.
Есть у меня такая ячейка. button_pressed называется .Она 16 битовая. Каждый бит этой ячейки соответствует состоянию кнопки.
То есть операция выглядит как
button_pressed =button_pressed &~(1‹‹0); //кнопка 1 не нажата. Занимает 20 байт
button_pressed =button_pressed |(1‹‹0);//кнопка 1 нажата. Занимает 20 байт.

через define сделал так
#define clr(x) button_pressed =button_pressed &~(1‹‹(x));
#define set(x) button_pressed =button_pressed|(1‹‹(x));

Да удобно оказалось. На будущее буду пользоваться. Но проблему с памятью не решило. Я думал получится некий шаблон. Куда я только подставляю номер бита .Но нет,каждая такая операция занимает set(x) или clr(x) так же 20 байт.
ARTEM277 вне форума  
Непрочитано 28.07.2015, 12:38  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
.Но нет,каждая такая операция занимает set(x) или clr(x) так же 20 байт.
Оптимизация включена или нет?
_Артём_ вне форума  
Непрочитано 28.07.2015, 12:51  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
каждая такая операция занимает set(x) или clr(x) так же 20 байт.
Так и должно быть. Этот дефайн просто тупо заменяет все set(x) на то, что описано в нём.
Для экономии памяти надо объявить функцию
Код:
void set(int x)
{
     button_pressed =button_pressed|(1‹‹(x));
}
Тогда каждый вызов set(x) будет занимать меньше 20 байтов в памяти. При большом количестве вызовов это позволит существенно сэкономить памяти по сравнению с #define.
Yurkin2014 вне форума  
Сказали "Спасибо" Yurkin2014
ARTEM277 (05.08.2015)
Непрочитано 03.08.2015, 12:07  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от _Артём_ Посмотреть сообщение
Оптимизация включена или нет?

Да включена. -Os
При ней самый маленький код получается.
ARTEM277 вне форума  
Непрочитано 03.08.2015, 12:09  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от Yurkin2014 Посмотреть сообщение
Для экономии памяти надо объявить функцию
Код:
void set(int x)
А вот это я попробую. Я делал ,что то подобное... Но вариантов у меня было уже столько перебрано ,что я и забыл,делал я так или нет....
ARTEM277 вне форума  
Непрочитано 05.08.2015, 11:21  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от Yurkin2014 Посмотреть сообщение
Код:
void set(int x)
{
button_pressed =button_pressed|(1‹‹(x));
}
Попробовал. И вспомнил ,что я так уже делал. Отказался от этого ,потому ,что
при применение этого метода программа (на данном этапе ) становится на 92 байта больше, но при этом больше не увеличивается,что радует . Метод очень хорош ,но не в моем случае наверное уже. На будущее возьму его на вооружение ...
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, время: 03:30.


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