AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 11
Зарегистрирован: Сб окт 09, 2010 14:10:05

Сообщение MACOH »

Доброго дня всем! Ну умоляю уж очень хочу учиться кодить avr на Си. И следующая проблема пишу, программу, рандомное мигание портами. В протеусе работает, а вот в железе молчит. Плата wave share. Openm128. Скажите что не так...
http://radiokot.ru/forum/download/file. ... &id=286244
Вложения
pixlr_20170529070600499_20170529110135832.jpg
(120.26 КБ) 879 скачиваний
Реклама
Вымогатель припоя
Сообщения: 522
Зарегистрирован: Чт янв 21, 2016 15:59:10

Сообщение ozonn »

появилась проблема. Никогда раньше не пользовался плавающей точкой, но настал момент, когда избежать этого не удается. Итак, код примерно такой:

.
.
.

double magn_angle;
char str_buff[90];
.
.
.

int main(void)
{
.
.
.
magn_angle = atan(mag_hx/mag_hy);
sprintf(str_buff, " %f %d", magn_angle, -23);
ili9341_draw_string(176, 210, WHITE, NAVY, str_buff, &CourierNew16x20[0][0], 16, 20);
.
.
.
}

в результате на дисплее получаю результат:

? -23

то есть в десятичном формате выводится правильно, а вместо вещественного числа получаю знак вопроса. Что ж за бабуйня такая?
Может кто-нибудь подскажет, в чем проблема?
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Since the full implementation of all the mentioned features becomes fairly large, three different flavours of vfprintf() can be selected using linker options. The default vfprintf() implements all the mentioned functionality except floating point conversions. A minimized version of vfprintf() is available that only implements the very basic integer and string conversion facilities, but only the # additional option can be specified using conversion flags (these flags are parsed correctly from the format specification, but then simply ignored). This version can be requested using the following compiler options:

Код: Выделить всё

   -Wl,-u,vfprintf -lprintf_min
If the full functionality including the floating point conversions is required, the following options should be used:

Код: Выделить всё

   -Wl,-u,vfprintf -lprintf_flt -lm
из документации по avr-libc. Вы учитываете что дефолтная реализация stdio не поддерживает дробные числа?
Вымогатель припоя
Сообщения: 522
Зарегистрирован: Чт янв 21, 2016 15:59:10

Сообщение ozonn »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=3128126#p3128126"]Вы учитываете что дефолтная реализация stdio не поддерживает дробные числа?[/uquote]
разумеется не учитываю, иначе, откуда бы у меня возник вопрос? Хотя, я подозревал, что либо подобное.

итак, проект у меня в атмел студио 6.2 Как мне победить эту бабуйню?

нашел, куда эти опции вставить, все заработало. Огромное спасибо COKPOWEHEU :)
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 5
Зарегистрирован: Пт дек 23, 2016 16:43:34

Сообщение REQW84 »

Господа, помогите правильно установить (или настроить) Atmel Studio 7

Компьютер: Windows 8.1 Корпоративная (с полными правами), Core i3 2,10 Ghz, 8 Gb RAM

Исходник Atmel Studio 7 (as-installer-7.0.1417-web) скачал с оф сайта
При установке просит установить обновление Windows KB2978092, но скачав данное обновление мой Windows говорит: "Обновление не применимо к Вашему компьютеру" (если я правильно понимаю, то оно для Windows 7)
ОК
Продолжить установку. Studio дает возможность (фото прикрепляю - Фото1
Фото1.jpg
(173.22 КБ) 559 скачиваний
Устанавливается без ошибок
Запускаем
Создаем новый проект (GCC C Executable Project) далее выбираем ATtiny 2313
Studio создала пустой проект
Нажимаем Build GccApplication2
И получаем следующий error: recipe for target 'main.o' failed (Фото2
Фото2.jpg
(219.16 КБ) 622 скачивания
Перерыл уже весь интернет, сбился с ног...
Подскажите, что я делаю не так?!
Реклама
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт окт 11, 2013 20:43:07
Откуда: с. Муравлёвка Измаильский р-н.

Сообщение Vaha »

Здравствуйте.
Чтобы отладчик Atmel Studio 4.18 начал реагировать на прерывания что надо?
Предложенные аналогичные варианты для 5-6 студии мне не помогли, "interrupts while" или аналогичное пока не нашел.
(программка откомпелированна и в камне работает, как-бы ошибки исключаю)
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Vaha писал(а):как-бы ошибки исключаю
Это зря конечно :)

На счет 4ого уже не помню, собственно я там и проблем не помню. В 6 ом у меня реагирует на прерывания, если симуляция запущена в "RUN", а вот когда выполняешь по шагам, то игнорирует.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

[uquote="Vaha",url="/forum/viewtopic.php?p=3137252#p3137252"]...ошибки исключаю)[/uquote]
Программу в студию.
Docendo discimus
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт окт 11, 2013 20:43:07
Откуда: с. Муравлёвка Измаильский р-н.

Сообщение Vaha »

Простенькая программка - крутим энкодер - считает счетчик: - влево на отнимание, в право на прибавление (или на оборот :), и это все безобразие отражается на ЛСД. (в камне работает) Хочу облегчить обработчик по "переполнению Т0" (encoder.asm)., вставил строки 86-88 - для возврата по "reti" в нужное место... и тут понеслось... (как обычно), - при отладке без возможности захода в прерывания - будет трудно отыскать "где собака была". У меня "Atmel Studio 4.18" - при отладке счетчик считает, флаги устанвливаются, а ухода в обработчик - нет. Может надо где-то пИтичку поставить?, как в предложенных вариантах для 5,6 версии.
Вложения
shim_&_LCD_3_s.rar
(21.89 КБ) 280 скачиваний
Прорезались зубы
Аватара пользователя
Сообщения: 249
Зарегистрирован: Ср дек 31, 2008 01:55:19
Откуда: Санкт-Петербург

Сообщение RUNA »

Энкодер лучше опрашивать не по таймеру а по внешнему прерыванию от ноги.
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт окт 11, 2013 20:43:07
Откуда: с. Муравлёвка Измаильский р-н.

Сообщение Vaha »

Спасибо. Учту. А как на счет птички?
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

В моей 4.13 SP2 заходит.
[uquote="Vaha",url="/forum/viewtopic.php?p=3137568#p3137568"]Спасибо. Учту.[/uquote]
Красивый посыл. :) Браво.
Docendo discimus
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт окт 11, 2013 20:43:07
Откуда: с. Муравлёвка Измаильский р-н.

Сообщение Vaha »

Всем здрасьте.
Вопрос по "... Atmel Studio 4.18 начал реагировать на прерывания..." снимается.
После "издиавтельств" над студией, перед ее переустановкой (которую пока отложил), случилось чудо - начала отрабатывать прерывания. Что конкретно повлияло - сказать не могу, много разного было нажато, отжато, поставлено, снято., возможно испугалась переустановки :-).
Всем спасибо за участие.
Родился
Сообщения: 2
Зарегистрирован: Пн июл 24, 2017 20:56:35

Сообщение kurakste »

Здравствуйте.
Помогите разобраться с кодом.
Написал программу в АВР - читаю из порта строки и пишу назад в порт. функция вывода строки работает Ок.
Функчия чтения тоже работает ок. Только одно НО: я ей в качестве аргумента передаю указатель на строку.
Предварительно указателю присваиваю адрес строки.
Внутри функции вывожу данные которые записал по адресу из этого указателя (проверяю себя) все ок.
Потом вывожу после чтения строку - в ней мусор. Второй вечер туплю. Помогите найти ошибку. Коды:

/*******************************************************************/
#define F_CPU 16000000UL
#include <avr/delay.h>
#include "USART_lib_atm328.h"

int main(void)
{
char str[255];
char *pstr[255];
SerialIni ();
SerialSendStringLn("Hi, it's a test of new serial library. Is it looks Ok?");
SerialSendString("input>>");

pstr[0]=&str[0];
while (1){
SerialReadString(pstr);
SerialSendString(str);
}
return 0;
}

/*******************************************************************/


void SerialReadString (char *ppstr[255]) {

char str[255];
int numOfDataR=0;
char tmpCh =' ';


while(tmpCh!=0x0D)
//Принемаем данные пока не придет возврат коретки.
{
tmpCh=SerialReadChar();
if (numOfDataR==255) {numOfDataR=0;};
str[numOfDataR++]=tmpCh;
}
*ppstr=str;
SerialSendStringLn(*ppstr); // проверка вывода. зесь все ок.
numOfDataR=0;
}
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18707
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

если вы думаете, что char *pstr[255] у вас является указателем на массив из 255 char-ов, то вы ошибаетесь: это массив из 255 указателей на char.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Родился
Сообщения: 2
Зарегистрирован: Пн июл 24, 2017 20:56:35

Сообщение kurakste »

спасибо.
Открыл глаза
Аватара пользователя
Сообщения: 67
Зарегистрирован: Вс фев 09, 2014 13:09:04

Сообщение alex11660 »

Авр студия 5. Пошаговая отладки. Иметься код:

Код: Выделить всё

#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRD = 0xFF;
	PORTD = 0b00000000;
	while(1)
	{
		PORTD |= (1<<(PORTD0));
		_delay_ms(500);
		PORTD &= ~(1<<(PORTD0));
		_delay_ms(500);
	}
}
Я только начинающий, поэтому хочу в пошаговой отладке наблюдать состояние регистров D, но когда я дохожу до функции _delay_ms(500); то я в нее захожу и не могу выйти, как мне ее перепрыгнуть, или что бы не заходить во внутрь ее ? Спасибо.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Симуляция не в реальном времени, поэтому 500мс по факту значительно дольше.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Сообщение Сериг »

Всех приветствую! Хочу собрать устройство http://radioded.ru/skhema-na-mikrokontr ... e-attiny85, там дан исходник (прикреплю снизу), установил студию, ну ничего не понимаю в ней, после CVavr, хотел бы попросить кого-нибудь о помощи скомпилировать с изменениями (рандомным воспроизведением файлов). Буду очень благодарен, можно в личку. Спасибо за внимание!
Вложения
src.zip
(112.62 КБ) 330 скачиваний
Встал на лапы
Сообщения: 90
Зарегистрирован: Пн апр 03, 2017 11:40:46

Сообщение 201bazza »

Всем привет! При запуске Отладки в Atmel Studio 6.1 вылазит окно "Memory 1". Что это такое? Я так понимаю это структура памяти какая то?

Изображение
Ответить

Вернуться в «AVR»