stdio вообще довольно громоздкая и медленная штука. Это плата за универсальность и простоту. В контроллерах от него обычно смысла нет.
AVR studio в вопросах и ответах
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Как вам и говорили, загрузка процессора не имеет никакого отношения к загрузке контроллера. Если в контроллере нет ОС, его загрузка ВСЕГДА 100%.
stdio вообще довольно громоздкая и медленная штука. Это плата за универсальность и простоту. В контроллерах от него обычно смысла нет.
stdio вообще довольно громоздкая и медленная штука. Это плата за универсальность и простоту. В контроллерах от него обычно смысла нет.
- Реклама
Всё с загрузкой понял.
А вот с itoa не очень получается.
cvavr ругается на библу math.h,
конкретнее пишет: и ссылается на
что-то вообще ни о чем..запутался
А вот с itoa не очень получается.
cvavr ругается на библу math.h,
конкретнее пишет:
, которая :line 27 is redefined
Код: Выделить всё
signed char lsign(long x);Код: Выделить всё
int min(int a,int b);выше головы не прыгнешь - ниже зад**цы не сядешь.
не соглашусь - смысл очень даже есть, если пользоваться именно файловым вводом-выводом, а не просто преобразованиями строк. наиболее этот смысл заметен при работе с не самыми "маленькими" МК и активным консольным диалогом с пользователем.COKPOWEHEU писал(а):stdio вообще довольно громоздкая и медленная штука. ... В контроллерах от него обычно смысла нет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
В более мощных с развитым CLI да, но на AVR такое делают нечасто. Да и килобайт флеша занимать далеко не всегда имеет смысл. Даже если в наличии ЖК-индикатор, чаще всего требуется выводить числа без форматирования, да и дробные там редко используются.
многие вообще многое нечасто делают. причем часто из-за кажущейся сложности.
но так же во многих случаях возможность не ломать голову над "приличным" выводом текста просто незаменима!
например, многие тестируют какие-то алгоритмы в "настоящем Си" на компьютере. у меня по определенным причинам нет компилятора Си/с++ на компьютере, и я очень успешно решаю эти задачи в протеусе - выбираю atmega32, подключаю свой модуль консольного ввода-вывода, и спокойно все отлаживаю
ну очень удобно.
но так же во многих случаях возможность не ломать голову над "приличным" выводом текста просто незаменима!
например, многие тестируют какие-то алгоритмы в "настоящем Си" на компьютере. у меня по определенным причинам нет компилятора Си/с++ на компьютере, и я очень успешно решаю эти задачи в протеусе - выбираю atmega32, подключаю свой модуль консольного ввода-вывода, и спокойно все отлаживаю
ну очень удобно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Ну, тестовые цели и проверки это немного другое. Там можно и stdio использовать, и float, и секундные задержки в прерываниях, и другие неоптимальные вещи. Вот только надо не забыть потом в конечном устройстве пройтись по ним и переделать на что-то менее громоздкое.
- Сообщения: 76
- Зарегистрирован: Пт май 28, 2010 10:26:08
Здравствуйте. Начал изучать микроконтроллеры. Написал мигалку, прошил. Все работает, но задержка проходить раз в 10 быстрее.
Контроллер atmega8. Писал в atmel studio 7. Где косяк?
Контроллер atmega8. Писал в atmel studio 7. Где косяк?
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
- Сообщения: 76
- Зарегистрирован: Пт май 28, 2010 10:26:08
Все, взлетело. Только не пойму, вроде указывал также, но после подключения библиотек задержек, в этом причина?
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
конечно, F_CPU надо определять ДО включения delay.h
иначе константы внутри хижера будут расчитаны неверно
ну или как вариант можно указать F_CPU в опциях проекта, тогда эта переменная будет определена до первой строки любого файла исходника
иначе константы внутри хижера будут расчитаны неверно
ну или как вариант можно указать F_CPU в опциях проекта, тогда эта переменная будет определена до первой строки любого файла исходника
- Сообщения: 73
- Зарегистрирован: Сб авг 23, 2014 21:49:24
Всем привет!
У меня стоит Visual Studio и я хочу поставить Atmel Studio 7, но не могу т.к вылазит ошибка в которой пишет, что не может нормально загрузить Visual Shell. Если сначала поставить Atmel studio, то не ставиться Visual studio.
Как решить даную проблему?
У меня стоит Visual Studio и я хочу поставить Atmel Studio 7, но не могу т.к вылазит ошибка в которой пишет, что не может нормально загрузить Visual Shell. Если сначала поставить Atmel studio, то не ставиться Visual studio.
Как решить даную проблему?
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
у меня стоят одновременно и AS 7.0 и VS2015Дима_Медвед писал(а):Всем привет!
У меня стоит Visual Studio и я хочу поставить Atmel Studio 7, но не могу т.к вылазит ошибка в которой пишет, что не может нормально загрузить Visual Shell. Если сначала поставить Atmel studio, то не ставиться Visual studio.
Как решить даную проблему?
так как AS основана на базе VS то могу предположить, что у вас конфликт версий двух ядер VS
но только предположение
- Сообщения: 90
- Зарегистрирован: Вс дек 20, 2015 21:03:39
Ну почему же - если процессор, например, в основном спит?COKPOWEHEU писал(а):Как вам и говорили, загрузка процессора не имеет никакого отношения к загрузке контроллера. Если в контроллере нет ОС, его загрузка ВСЕГДА 100%.
stdio вообще довольно громоздкая и медленная штука. Это плата за универсальность и простоту. В контроллерах от него обычно смысла нет.
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
Такой вопрос. Есть программа с прерыванием по переполнению таймера. Подключена стандартная библиотека delay.h Внутри обработки прерывания используются функции задержек и на микро и на мили секунды.
В основном цикле main в качестве задержки используется конструкция for. При использовании этого for программа работает нормально, а когда меняю ее на библиотечную функцию задержки, то программа зависает. Почему такое может быть?
В основном цикле main в качестве задержки используется конструкция for. При использовании этого for программа работает нормально, а когда меняю ее на библиотечную функцию задержки, то программа зависает. Почему такое может быть?
- Сообщения: 232
- Зарегистрирован: Чт янв 01, 2015 13:44:12
Доброго времени суток! Разбираюсь с SPI что возникли трудности. Можете кто нибудь скинуть пример кода мастера и слейва, что бы данные передавались от мастера к слейву и наоборот от слейва к мастеру.
Все гениальное - просто
Возник такой вопросик...
Есть у меня функция для индикации на 7-сегм.дисплей написанная на GCC в виде ".h" и ".c" файлов. Подключаю я эту функцию к программе, которую сейчас пишу. (функция была написала в Studio 4, а программа сейчас пишется в Studio 7). И при попытке ввода команды вывода слова на 7-сегментный дисплей,
W_Test[] - константа, инициализированная в внешней функции в .с файле как
Мне не ясно чем вызвана такая ошибка, так как под Studio 4 в другой программе использовал данную функцию без таких проблем, но можен совпадение и дело не в Studio 7.
Есть у меня функция для индикации на 7-сегм.дисплей написанная на GCC в виде ".h" и ".c" файлов. Подключаю я эту функцию к программе, которую сейчас пишу. (функция была написала в Studio 4, а программа сейчас пишется в Studio 7). И при попытке ввода команды вывода слова на 7-сегментный дисплей,
возникает ошибкаDisp_IND_DataIn(&(W_Test[0]), &(sMathSolution[4]), 4, _sDataType_V6N0, _PLUS, 0);
Пояснения: Disp_IND_DataIn - это функция вывода данных на 7-сегм.дисплейError 'W_Test' undeclared (first use in this function)
W_Test[] - константа, инициализированная в внешней функции в .с файле как
и содержит коды символов слова "Test"const uint8_t W_Test[] PROGMEM =
{0x04, _Letter38_t, _Letter26_E, _Letter37_S, _Letter38_t};
Мне не ясно чем вызвана такая ошибка, так как под Studio 4 в другой программе использовал данную функцию без таких проблем, но можен совпадение и дело не в Studio 7.
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
без относительно студии ошибка возникает закономерно, в соответствии с языком СиHF_Cat писал(а):'W_Test' undeclared (first use in this function)
область видимости нужно учитывать
чтобы ссылаться на переменную/константу из другого файла .c она должна быть описана как extern в том файле в котором используется ссылка
либо в хидере который включен директивой #include в тот .с файл в котором используется ссылка
2 axillent
Благодарю за помощь.чтобы ссылаться на переменную/константу из другого файла .c она должна быть описана как extern в том файле в котором используется ссылка
- Сообщения: 135
- Зарегистрирован: Ср фев 04, 2015 21:08:59
привет.
есть ли в аврстудии возможность просмотреть содержимое ОЗУ? я почему-то не нашел, где это. неужели нету?
есть ли в аврстудии возможность просмотреть содержимое ОЗУ? я почему-то не нашел, где это. неужели нету?
Естькреазот писал(а):есть ли в аврстудии возможность просмотреть содержимое ОЗУ?
- Вложения
-
- memory.PNG
- (31.33 КБ) 279 скачиваний


