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

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

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

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

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

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

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

 
Опции темы

Atmel Studio 6 вопросник

Непрочитано 23.12.2013, 16:52  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Atmel Studio 6 вопросник

Доброго времени суток. Решил изучать Atmel Studio 6.
Неверно происходит расчет данных для инициализации UARTA
PHP код:
# define F_CPU 14745600UL
#define ON  0xD8
#define OFF 0x00
 
void    UART_InitHW (char _uart, char _state, long _BaudRate)   //#uart 0,1; state ON/OFF; speed
 {
     if(_uart)
     {
         UCSR1A=0x00;
         UCSR1B= _state;     
         UCSR1C=0x06;
         UBRR1H=((F_CPU/(16*_BaudRate)-1)‹‹8)&0x00FF;    // UBRR0(h/l)=FCLK/(16*Baud Rate)-1
         UBRR1L=(F_CPU/(16*_BaudRate)-1)&0x00FF;
     }
     else     // USART0 initialization
     {

         UCSR0A=0x00;
         UCSR0B=_state;
         UCSR0C=0x06;
         UBRR0H=(unsigned char)((F_CPU/(16*_BaudRate)-1)‹‹8)&0x00FF;
         UBRR0L=(unsigned char)(F_CPU/(16*_BaudRate)-1)&0x00FF;
     }
     return;
 }


UART_InitHW (0, ON, 19200); 
во время выполнения этого кода, в регистр UBRR0L записывается 0х03, а должно 0х2F. Это видно и в протеусе и в самой студии. Пробовал добавлять временно другие переменные, что бы отследить процес вычисления скорости:
PHP код:
volatile     long tmtq;
volatile     long hgr;
volatile     unsigned char her;

         UCSR0A=0x00;
         UCSR0B=_state;
         UCSR0C=0x06;
         tmtq=_BaudRate*16.0;
         hgr=F_CPU/tmtq;
         tmtq=hgr-1;
         her = (unsigned char) (tmtq‹‹8)&0x00FF;
         UBRR0H=her;
         her = (unsigned char) (tmtq & 0x00FF);
         UBRR0L=her; 
Во время выполения этого участка, при попытке выполнить строчку tmtq=_BaudRate*16.0; дебагер или пишет в tmtq =0 и каким то образом перескакивая строки всеравно пишет 0х03 или матюкается No source Available.
Нажмите на изображение для увеличения
Название: (Debugging) - AtmelStudio (Administrator).png
Просмотров: 256
Размер:	71.2 Кб
ID:	56618
Компиляция идет без ошибок и вонингов.

Не могу понять в чем проблема - HELP!
Реклама:

Последний раз редактировалось wellcom; 23.12.2013 в 16:58.
wellcom вне форума  
Непрочитано 23.12.2013, 17:06  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от wellcom Посмотреть сообщение
Не могу понять в чем проблема - HELP!
Понять-то немудрено... Где-то ошибка...
Точно не скажу где, но не нравится мне эта строка:
Код:
UBRR0H=(unsigned char)((F_CPU/(16*_BaudRate)-1)‹‹8)&0x00FF;
сначала сдвигаете на 8 бит влево,то есть умножаете на 256 и получаете нули в младших 8 битах, а потом накладываете маску на них. Должно получится 0.Странно.
Попробуйте так:
Код:
UBRR0=F_CPU/16/BaudRate-1;
Кстати, какое значение у F_CPU и BaudRate?
_Артём_ вне форума  
Непрочитано 23.12.2013, 17:24  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Спасибо за оперативность. Вычисления происходили верно, затупил я сам , у меня через дефайн было определено # define F_CPU 14745600UL в delay.h а в моем главном хидере было # define F_CPU 1474560UL (без одного нуля)
wellcom вне форума  
Непрочитано 23.12.2013, 17:30  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от wellcom Посмотреть сообщение
у меня через дефайн было определено # define F_CPU 14745600UL в delay.h а в моем главном хидере было # define F_CPU 1474560UL (без одного нуля)
Бывает...
_Артём_ вне форума  
Непрочитано 24.12.2013, 11:51  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

еще вопрос: вроде как сохраняю масивы во флеш, но под них на старте почему то резервируется память. Как это исправить? Тот же код в CVAVR при старте не резервирует памяти. см. Рис симуляции в протеусе.Нажмите на изображение для увеличения
Название: ISIS Professional (Анимация).png
Просмотров: 217
Размер:	63.8 Кб
ID:	56658
как сделать так, что бы оперативка не сжиралась всякими строчными масивами?
wellcom вне форума  
Непрочитано 24.12.2013, 13:33  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

wellcom,
позвольте полюбопытствовать - каким хреном ваши вопросы к студии6 относятся? типичные ошибки, да еще и кодедрыжен притянули за уши... поменяйте название темы или попрошу модераторов
jump вне форума  
Сказали "Спасибо" jump
Fraktal (31.03.2014)
Непрочитано 24.12.2013, 13:40  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от wellcom Посмотреть сообщение
вроде как сохраняю масивы во флеш, но под них на старте почему то резервируется память.
Всё правильно - const не означает что переменные во флеш попадут, их менять в программе нельзя.
Сообщение от wellcom Посмотреть сообщение
Тот же код в CVAVR при старте не резервирует памяти.
CVAVR - не образец ниразу, как хочет, так и делает.
Сообщение от wellcom Посмотреть сообщение
как сделать так, что бы оперативка не сжиралась всякими строчными масивами?
Криво всё это в GCC сделано, но ничего не поделаешь.
Подключайте хидер pgmspace.h и объявляйте переменные с атрибутом PROGMEM
Код:
#include ‹avr/pgmspace.h›

const char PROGMEM v[]="Test string.";
_Артём_ вне форума  
Непрочитано 24.12.2013, 14:01  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от jump Посмотреть сообщение
wellcom,
позвольте полюбопытствовать - каким хреном ваши вопросы к студии6 относятся? типичные ошибки, да еще и кодедрыжен притянули за уши... поменяйте название темы или попрошу модераторов
просите, дело Ваше. все написано выше - все относиться к 6 студии. сивавр упомянут для сравнения. если типичные ошибки - проясните пожалуйста!

Сообщение от _Артём_ Посмотреть сообщение
Всё правильно - const не означает что переменные во флеш попадут, их менять в программе нельзя.
Криво всё это в GCC сделано, но ничего не поделаешь.
Подключайте хидер pgmspace.h и объявляйте переменные с атрибутом PROGMEM
В том то и дело, если внимательней расмотрите рисунок, там в красном квардатике исходника и есть тот же PROGMEM о котором Вы говорите и хидер подключен правильный, однако масивы с теми же именами почему то в оперативке а ячейки имеют значения 0.
Вот этого я не могу прояснить.
PHP код:
//что так 
const char PROGMEM C_hlp[]="help";
//что этак
const char C_hlp[] PROGMEM ="help"; 
результат один и тотже
https://kazus.run/forums/attachment....8&d=1387871379
настройки компилятора такие
Нажмите на изображение для увеличения
Название: 2013-12-24 12_51_38-MUX16x16 - AtmelStudio (Administrator).png
Просмотров: 51
Размер:	18.7 Кб
ID:	56666

Последний раз редактировалось wellcom; 24.12.2013 в 14:52.
wellcom вне форума  
Непрочитано 24.12.2013, 15:02  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от wellcom Посмотреть сообщение
вроде как сохраняю масивы во флеш, но под них на старте почему то резервируется память
Уверены или "вроде как"? Посмотрите в Студии, а то с вашего рисунка и зелёные человечки померещиться могут.
Сообщение от wellcom Посмотреть сообщение
Рис симуляции в протеусе.
Да, Протеус - железный аргумент!
nahimovv вне форума  
Непрочитано 24.12.2013, 15:13  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

Сообщение от nahimovv Посмотреть сообщение
Уверены или "вроде как"? Посмотрите в Студии, а то с вашего рисунка и зелёные человечки померещиться могут.
еще раз, что бы не мерещилось, даже новый проект создал, таже история

Нажмите на изображение для увеличения
Название: 123ISIS Professional (Анимация).png
Просмотров: 180
Размер:	75.7 Кб
ID:	56671
выяснилось, что масив и во флеше и под него, я так понимаю в оперативке место забито. почему адреса одинаковые?
вот проект
123.rar

Сообщение от nahimovv Посмотреть сообщение
Да, Протеус - железный аргумент!
другого пока нет. Даже сама студия имеет тот же адрес масива что отображает протеус - тоже не аргумент? чему верить?
Подозреваю что студия коряво генерит elf файл...выходит, зря пытаюсь на студию перейти...
Миниатюры:
Нажмите на изображение для увеличения
Название: 2013-12-24 13_06_07-123 - ISIS Professional (Анимация).png
Просмотров: 73
Размер:	47.6 Кб
ID:	56668   Нажмите на изображение для увеличения
Название: 2013-12-24 13_16_35-123 (Debugging) - AtmelStudio (Administrator).png
Просмотров: 59
Размер:	74.6 Кб
ID:	56670  

Последний раз редактировалось wellcom; 24.12.2013 в 15:43.
wellcom вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Atmel Studio 6.0 как русифицировать? Aleksand AVR 13 22.05.2019 19:36
Atmel Studio 6 majorka65 Embedd С 17 17.12.2013 15:33
Atmel Studio C++ для AVR-8 svad0 Микроконтроллеры, АЦП, память и т.д 4 04.06.2012 23:29
Atmel AVR Studio 5 st_1 Микроконтроллеры, АЦП, память и т.д 144 13.03.2012 14:59
National Instruments Measurement Studio ENTERPRISE 8.6 PVitaly Proteus, KiCAD и другие ECAD 3 24.12.2010 10:11


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


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