Страница 96 из 160

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

Добавлено: Пн июн 08, 2015 18:51:06
B@R5uk
Поставил WinAVR, что-то пытается скомпилировать, но возникает ошибка:

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

Build started 8.6.2015 at 13:57:56
mmcu=atmega8a -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT mega8-test.o -MF dep/mega8-test.o.d  -c  ../mega8-test.c
/bin/sh: -Wall: command not found
make: [mega8-test.o] Error 127 (ignored)
mmcu=atmega8a -Wl,-Map=mega8-test.map mega8-test.o     -o mega8-test.elf
/bin/sh: -Wl,-Map=mega8-test.map: command not found
make: [mega8-test.elf] Error 127 (ignored)
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  mega8-test.elf mega8-test.hex
avr-objcopy: 'mega8-test.elf': No such file
make: *** [mega8-test.hex] Error 1
Build failed with 1 errors and 0 warnings...
Подскажите, пожалуйста, что не так?

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

Добавлено: Пн июн 08, 2015 20:10:44
Alexeyslav
У тебя студия не срослась с компилятором... может настройки не те?

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

Добавлено: Пн июн 08, 2015 20:25:05
B@R5uk
Что с этим можно сделать?

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

Добавлено: Вт июн 30, 2015 08:23:16
alex38779
Пишет ошибку unknown type name 'uint8_t' Студия 6.

В чем может быть проблема?

подключены такие инклюды:

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

#include <avr/io.h>
#include <math.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdbool.h>
#include <stdint.h>
#include <inttypes.h>
пишу на си..

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

Добавлено: Вс июл 26, 2015 10:49:19
afz
B@R5uk писал(а):Что с этим можно сделать?
Поставить студию 4.19, затем к ней avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe - это тот самый WinAVR для Студии 4.19, находится с полпинка прямо по полному названию файла. На мой взгляд, эта Студия - лучшее решение для АВР, если не понадобится программировать для XMega. А шестая Студия сильно толстая, ей подавай комп посвежее, на старых тормозит по-тяжелому, да и на новых не скажешь, что летает...

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

Добавлено: Вс июл 26, 2015 14:11:09
oleg110592
alex38779 писал(а):Пишет ошибку unknown type name 'uint8_t' Студия 6.
попробуйте #include <stdint.h> переставить выше других #include

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

Добавлено: Ср авг 26, 2015 14:50:49
vga80
Добрый день!
Обнаружил, что моя программа неправильно выполняет операции с типом float.

Как пример:
volatile float Time:
volatile float Calibrat;

Time=962884.0;
Calibrat=25.05124;

Calibrat=(float)(Time*Calibrat);
В итоге ave studio 4.18 дает результат 24121440, а калькулятор 24121438,176. Полдня потратил, пробуя разные варианты и преобразовывая типы. Ничего :(
В чем моя ошибка?

Библиотека <math.h>

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

Добавлено: Ср авг 26, 2015 15:00:40
Gudd-Head
Переменная типа float занимает 32 бита (4 байта) в памяти.
Тип float имеет точность 6-7 знаков, имеются ввиду все знаки, а не только мантисса. Обычно для увеличения точности используют другой тип - double
Вот он и отбрасывает всё что после 25,0 при умножении и потом при запихивании во float.
Хотел бы я посмотреть как вы 24121438,176 запихнёте в 4 байта :)))

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

Добавлено: Ср авг 26, 2015 16:09:59
vga80
И как быть?

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

Добавлено: Ср авг 26, 2015 16:18:46
Аlex
Использовать 64-битный тип.
32 бита мало для таких вычислений.

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

Добавлено: Ср авг 26, 2015 17:12:31
ARV
vga80 писал(а):И как быть?
думать над алгоритмом. в 99% задачах, решаемых при помощи микроконтроллеров AVR, можно легко обойтись без float и double (тем более что это одно и то же в данном контексте), а оставшийся 1% задач требует усилий для этого.

так что дерзайте.

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

Добавлено: Ср авг 26, 2015 17:57:33
vga80
Спасибо! Думаю, знаю как решить проблему - буду использовать тип int в вычислениях, а после уже сам возьму сколько знаков после запятой надо и выведу на дисплей. Завтра из любопытства еще попробую double.

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

Добавлено: Ср авг 26, 2015 18:56:08
ARV
для WinAVR double и float - одно и то же, я об этом писал же.

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

Добавлено: Ср авг 26, 2015 20:11:43
Аlex
vga80 писал(а): буду использовать тип int в вычислениях, а после уже сам возьму сколько знаков после запятой надо и выведу на дисплей.
Если в вашем компиляторе int - 16 бит, то у вас не то что результат умножения, даже ни один множитель не влезет в него.
И в long результат тоже не влезет.

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

Добавлено: Вт сен 29, 2015 07:13:04
TICLIR
Доброго времени суток, нужда заставили перейти с WinAvr на AVRStudio, подскажите знающие, возможно сделать нумерацию строк, а то если вдруг, ошибка не явная то хоть затыкайся на сообщение. Я вроде все настройки перерыл так ни чего не нашел.

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

Добавлено: Вт сен 29, 2015 12:03:48
baghear
В atmel studio 6 и 6.2 Tools>Options>Text Editor>All Languages>Line numbers установить галочку

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

Добавлено: Вт сен 29, 2015 19:27:25
Alexeyslav
А смысл? если ошибка неявная, то она не привязана к какой-либо строке.

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

Добавлено: Ср сен 30, 2015 03:06:07
TICLIR
Так понимаю что в студии 4 такой функции нет.

Задачи с использованием программы AVRstudio Помогите решить

Добавлено: Ср сен 30, 2015 08:54:57
Vadim.S
Здравствуйте уважаемые форумчане!Нужна помощь с решением заданий с помощью программы AVRStudio.Если у вас есть время удилите 10 вашего драгоценного времени) 1.Ассемблер-программа должна записать в три РОН три шестнадцатеричных числа, произвести суммирование данных РОН и записать результат суммирования в четвертый РОН без переноса.
2.Ассемблер-программа должна инициализировать микроконтроллер, задав внутренний источник тактового сигнала (RC-генератор) частотой 1,0 МГц. Для работы периферийных устройств задать коэффициент
3.Ассемблер-программа должна сконфигурировать разряды 8-разрядного порта как входы и при приеме сигнала отличного от нуля, записать значение в РОН (R16)$ = (PINx)$+(R16)$
4.Ассемблер-программа должна сконфигурировать аналоговый компаратор (включить компаратор, разрешить прерывание от компаратора), сгенерировать прерывание по изменению состояния выхода компаратора с «1» на «0», записать результат сравнения в ячейку памяти по адресу 0001$
5.Ассемблер-программа должна сконфигурировать АЦП (включить АЦП, разрешить прерывание от АЦП, режим работы – одиночное преобразование, частота тактового сигнала АЦП – двукратная по отношению к тактовому сигналу МК), запустить АЦП в режиме ADC Noise Reduction, сгенерировать прерывание от АЦП, записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL

Вот собственно и задания....Версия программы AVRstudio4.0. Мне нужен сам код чтобы скопировать и вставить в программу а далее сохранить.Учусь на экономиста а преподаватель озадачил по Информатике.Выручайте

Re: Задачи с использованием программы AVRstudio Помогите реш

Добавлено: Чт окт 01, 2015 08:08:58
Engineer_Keen
Vadim.S писал(а):Здравствуйте уважаемые форумчане!Нужна помощь с решением заданий с помощью программы AVRStudio.Если у вас есть время удилите 10 вашего драгоценного времени)
Правильная тема вот. В чем разница? Помогают это когда человек пытается что-то сделать, но у него не все получается, а когда просто вываливают задачу - это именно "сделайте за меня" :dont_know:
Vadim.S писал(а): 1.Ассемблер-программа должна записать в три РОН три шестнадцатеричных числа, произвести суммирование данных РОН и записать результат суммирования в четвертый РОН без переноса.
найти в документации на ассемблер AVR 3 нужные команды из сотни и скомбинировать из них последовательность в 7 строчек...
Смотрите ТУТ.
Vadim.S писал(а): 2.Ассемблер-программа должна инициализировать микроконтроллер, задав внутренний источник тактового сигнала (RC-генератор) частотой 1,0 МГц. Для работы периферийных устройств задать коэффициент
Вообще-то источник тактирования задается фьюзами... Программно можно только поменять делитель, да и то не везде.
Смотреть ТУТ
Vadim.S писал(а): 3.Ассемблер-программа должна сконфигурировать разряды 8-разрядного порта как входы и при приеме сигнала отличного от нуля, записать значение в РОН (R16)$ = (PINx)$+(R16)$
Не особо отличается от предыдущего, только надо еще смотреть как устроены порты в AVR
Vadim.S писал(а): 4.Ассемблер-программа должна сконфигурировать аналоговый компаратор (включить компаратор, разрешить прерывание от компаратора), сгенерировать прерывание по изменению состояния выхода компаратора с «1» на «0», записать результат сравнения в ячейку памяти по адресу 0001$
5.Ассемблер-программа должна сконфигурировать АЦП (включить АЦП, разрешить прерывание от АЦП, режим работы – одиночное преобразование, частота тактового сигнала АЦП – двукратная по отношению к тактовому сигналу МК), запустить АЦП в режиме ADC Noise Reduction, сгенерировать прерывание от АЦП, записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL
Такая же фигня, правда написано как-то коряво... Сгенерировать прерывание где? В симуляторе чтоли? Тогда ладно. Частота тактового сигнала АЦП двукратная по отношению к тактовой МК это шИдевр! Учитывая что вся периферия тактируется от тактовой МК. Ну предположим что это корявая опечатка, вот в 2 раза меньше можно...
Vadim.S писал(а): Учусь на экономиста а преподаватель озадачил по Информатике.Выручайте
Учусь на механизатора, но препод по анатомии зачем-то требует знать сколько у человека костей в организме :facepalm:
Вот извините, но что-то не верится, серьезно... Почему почти все кто попадает в ту тему говорят примерно одно и то же? Сейчас что, во всех учебных заведениях на уроках информатики проходят 8-битные микроконтроллеры, да еще и ассемблер? Вот везет же людям!