Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

Помогите советом ATmega8535

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

Убрал volatile во всех глобальных переменных
Получил 3460 байт за место 3988
Но без volatile не могу просматривать переменные в режиме отладки.
Реклама:
ARTEM277 вне форума  
Непрочитано 24.07.2015, 18:44  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

http://chipenable.ru/index.php/progr...-volatile.html
NewWriter вне форума  
Сказали "Спасибо" NewWriter
ARTEM277 (24.07.2015)
Непрочитано 24.07.2015, 19:00  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

У меня в программе много таких операций как temp|=(1‹‹0);

//начало
unsigned char temp=0; // регистр флагов(это создаю раз глобально)


В какой ни будь функции делаем так..
temp|=(1‹‹0);

Потом в другой функции его опрашиваю

if (temp&(1‹‹0)){
делаем что то...
после чего ....
temp&=~(1‹‹0);
return;
} else {return;}

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

Вот такая программка заняла 98 байт. Это нормально ?

#include ‹avr/io.h›
#include ‹avr/interrupt.h›
unsigned char a;


int main (void){

PORTB&=~(1‹‹1);

a&=~(1‹‹1);

}
ARTEM277 вне форума  
Непрочитано 24.07.2015, 19:22  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
Это нормально ?
Посмотрите листинг. Там поймете.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 25.07.2015, 00:42  
ARTEM277
Временная регистрация
 
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ARTEM277 на пути к лучшему
Радость Re: Помогите советом ATmega8535

Сообщение от akegor Посмотреть сообщение
Посмотрите листинг. Там поймете.
Листинг чего ? Своей же программы ? Или в дизассемблере ?

Просто вот такое PORTA&=~(1‹‹1) занимает два байта.
А если свою переменную temp&=~(1‹‹1) 10 байт.Если int temp
то 20 байт. Почему то переменную char он понимает в 16 bit.вот это мне не понятно.
В букварях написанно ,что char это 8 bit.

Я эту тему закрою.А то с еепром уехали в азы СИ .Создам новую.
С вопросами по теме настройки avr studio+win avr
Всем огромное спасибо.Очень доволен форумом.И вами форумчане.
ARTEM277 вне форума  
Непрочитано 25.07.2015, 00:46  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
Листинг чего ?
ASM Где-то он должен быть. Не помню, где он у Студии.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 25.07.2015, 00:48  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
Листинг чего ? Своей же программы ?
Или в дизассемблере, для разных типов переменных и сравните с асмом
jump вне форума  
Непрочитано 25.07.2015, 01:12  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Помогите советом ATmega8535

Сообщение от ARTEM277 Посмотреть сообщение
В букварях написанно ,что char это 8 bit.
Если в UTF-8, а в UNICODE?

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

Перевариваю.Смотрю.Думаю.
ARTEM277 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Re-0505S помогите советом Superki Источники питания и свет 2 08.10.2008 20:14
Помогите советом начинающему eler Делимся опытом 100 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, время: 06:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.