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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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 _uartchar _statelong _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 (0ON19200); 
во время выполнения этого кода, в регистр 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.RU
 
Регистрация: 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.RU
 
Регистрация: 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.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Atmel Studio 6 вопросник

wellcom,
позвольте полюбопытствовать - каким хреном ваши вопросы к студии6 относятся? типичные ошибки, да еще и кодедрыжен притянули за уши... поменяйте название темы или попрошу модераторов
jump вне форума  
Сказали "Спасибо" jump
Fraktal (31.03.2014)
Непрочитано 24.12.2013, 13:40  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 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.ru/forums/attachment.p...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,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
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, время: 12:53.


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