Надо поставить. WinAVR, например.B@R5uk писал(а): Может надо что-то дополнительно настроить?
AVR studio в вопросах и ответах
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Не понял. Что именно поставить? Сама студия не имеет какого-то компонента по умолчанию?
Сишный компилятор. Да, не имеет.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...
- Реклама
У тебя студия не срослась с компилятором... может настройки не те?
- Сообщения: 386
- Зарегистрирован: Чт окт 31, 2013 10:54:32
Пишет ошибку 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>Поставить студию 4.19, затем к ней avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe - это тот самый WinAVR для Студии 4.19, находится с полпинка прямо по полному названию файла. На мой взгляд, эта Студия - лучшее решение для АВР, если не понадобится программировать для XMega. А шестая Студия сильно толстая, ей подавай комп посвежее, на старых тормозит по-тяжелому, да и на новых не скажешь, что летает...B@R5uk писал(а):Что с этим можно сделать?
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
попробуйте #include <stdint.h> переставить выше других #includealex38779 писал(а):Пишет ошибку unknown type name 'uint8_t' Студия 6.
- Сообщения: 11
- Зарегистрирован: Ср июл 03, 2013 11:47:56
Добрый день!
Обнаружил, что моя программа неправильно выполняет операции с типом 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>
Обнаружил, что моя программа неправильно выполняет операции с типом 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>
Вот он и отбрасывает всё что после 25,0 при умножении и потом при запихивании во float.Переменная типа float занимает 32 бита (4 байта) в памяти.
Тип float имеет точность 6-7 знаков, имеются ввиду все знаки, а не только мантисса. Обычно для увеличения точности используют другой тип - double
Хотел бы я посмотреть как вы 24121438,176 запихнёте в 4 байта
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 11
- Зарегистрирован: Ср июл 03, 2013 11:47:56
Использовать 64-битный тип.
32 бита мало для таких вычислений.
32 бита мало для таких вычислений.
думать над алгоритмом. в 99% задачах, решаемых при помощи микроконтроллеров AVR, можно легко обойтись без float и double (тем более что это одно и то же в данном контексте), а оставшийся 1% задач требует усилий для этого.vga80 писал(а):И как быть?
так что дерзайте.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 11
- Зарегистрирован: Ср июл 03, 2013 11:47:56
Спасибо! Думаю, знаю как решить проблему - буду использовать тип int в вычислениях, а после уже сам возьму сколько знаков после запятой надо и выведу на дисплей. Завтра из любопытства еще попробую double.
для WinAVR double и float - одно и то же, я об этом писал же.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Если в вашем компиляторе int - 16 бит, то у вас не то что результат умножения, даже ни один множитель не влезет в него.vga80 писал(а): буду использовать тип int в вычислениях, а после уже сам возьму сколько знаков после запятой надо и выведу на дисплей.
И в long результат тоже не влезет.
- Сообщения: 134
- Зарегистрирован: Вс авг 01, 2010 16:05:25
Доброго времени суток, нужда заставили перейти с WinAvr на AVRStudio, подскажите знающие, возможно сделать нумерацию строк, а то если вдруг, ошибка не явная то хоть затыкайся на сообщение. Я вроде все настройки перерыл так ни чего не нашел.
- Сообщения: 791
- Зарегистрирован: Вт июн 17, 2014 00:34:26
В atmel studio 6 и 6.2 Tools>Options>Text Editor>All Languages>Line numbers установить галочку


