Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 08.06.2025
Сообщений: 12

Ошибки компиляции старой корректной программы в AVR Studio

14.06.2025, 18:53. Показов 4907. Ответов 75

Студворк — интернет-сервис помощи студентам
Приветствую всех не равнодушных к умным микросхемам!
Мне нужно компилировать с помощью AVR Studio простой код для ATmega8 и у меня что то не идёт. Нужно найти ошибку
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <avr/io.h>
 
int main (void)
{
DDRD = 0x00; //порт D - вход
PORTD = 0xFF; //подключаем нагрузочный резистор
DDRB = 0xFF; //порт B - выход
PORTB = 0x00; //устанавливаем 0 на выходе
 
while(1)
{
PORTB = ~PIND; //~ знак поразрядного инвертирования
}
}
Код взят с обучающего сайта. Автор его написал, описал, проверил и компилировал. У меня компиляция не проходит.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2025, 18:53
Ответы с готовыми решениями:

GCC и AVR Studio 5 и AVR Studio 4.18
Доброго дня Всем! Кто может подсказать следующее - у меня установлена AVR Studio 5 со встроеным...

CAVR против AVR Studio, что не так в программе под AVR Studio
Проблема такая, есть исходник, если его компилировать в CAVR заливаю в МК все работает, если этот...

AVR Studio 6 Avr simulator
Подскажите каким образом стартануть прогу в avr symulator с адреса boottooder (atmega8a, 0x0F80)....

75
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
15.06.2025, 22:37
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от abit Посмотреть сообщение
пусть поставят себе
Пусть ещё линукс из исходников соберут и только после этого начинают что-то разрабатывать. Ничего не нужно изучать постепенно. Вывез начинающего на середину озера - и пинка под зад. Если сам выплывет - молодец.
0
1 / 1 / 0
Регистрация: 08.06.2025
Сообщений: 12
15.06.2025, 23:52  [ТС]
Вы хотите сказать что в среде Ардуино я могу писать код для PIC контроллеров? И каким же образом?. Там при запуске выбирается серия платы и код на С++ набирается только на этом условии. И код этот из программы не вытащить.
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,882
16.06.2025, 00:22
Цитата Сообщение от Rius Посмотреть сообщение
Пусть ещё линукс из исходников соберут
а вы не собирали? думаю это вообще не имеет отношения к использованию древних IDE, у меня были такие старые перд-ны, сори, любители AVR Studio, Attolic и Mickro Pascal for dsPic, которые от TDD в обморок падали, как только я стал ведущим - я их всех выгнал
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 00:26
Александр 76, типа да:
https://www.embedded.com/ardui... ed-boards/
https://mcucpu.ru/index.php/de... -chipkit32
0
1 / 1 / 0
Регистрация: 08.06.2025
Сообщений: 12
16.06.2025, 06:28  [ТС]
Я же говорю я не в теме как и на чём проще изучать Си. Я ничего не знаю про современные компиляторы. Я вчера скомпилировал по образцу первый код. Я новичок мне нужен удобный компилятор и уроки для него. Ютуб закрыли. Подсказать не кому.
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 07:48
Си можно изучать на компьютере.
МК надо изучать для их применения. А авр'ки в ардуине слегка устарели.
0
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 378
16.06.2025, 08:52
AVR не то что бы устарели, а просто появились более современные МК с бОльшими возможностями.
Но для большинства проектов AVR по прежнему более чем достаточно.

Предлагаю не обсуждать профессиональное использование и сверхзадачи. Я слежу за форумами, и смотрю что собирают любители на STM-ках и CH-ках. В большинстве случаев это простые конструкции МК-Датчик-Дисплей. Причём дисплеи часто выбирают типа ssd1306 или st7567. В таких конструкциях AVR-ки работают на ура даже без внешнего кварца.

Недавно на одном форуме STM-щик для управления дисплеем SSD1306 поднял частоту i2c до 1МГц. Спрашиваю зачем? Если любой дисплей 64х128 px на скорости интерфейса в 500кГц полностью заливается за 0,016384 секунды. Ответ: что-то типа нужно возможности дисплея узнать..

Опять же, всё зависит от поставленной задачи.
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
16.06.2025, 10:32
Цитата Сообщение от abit Посмотреть сообщение
пусть поставят себе тулчейн none-eabi
AVR никогда не планировалась как "компьютерная" система, поэтому там нет деления на none-eabi / linux-eabi / ...-eabi. Там просто gcc-avr + binutils-avr.
Ну еще для программирования можно поставить avrdude и screen.
Кстати, avrdude умеет пользоваться и ардуиновским бутлоадером, не обязательно сразу покупать программатор. Но не забывайте, что ограничения ардуиновского загрузчика от этого никуда не денутся.
Цитата Сообщение от abit Посмотреть сообщение
и да благословит их open source
Ибо воистину!
Цитата Сообщение от Rius Посмотреть сообщение
Пусть ещё линукс из исходников соберут и только после этого начинают что-то разрабатывать.
Кто в наше время что-то в линуксе собирает из исходников! Это ж не винда. Есть отличные репозитории, куда все, что нужно, уже собрали.
Цитата Сообщение от Rius Посмотреть сообщение
Ничего не нужно изучать постепенно. Вывез начинающего на середину озера - и пинка под зад.
Интересный у вас подход к обучению.
Цитата Сообщение от Rius Посмотреть сообщение
Си можно изучать на компьютере.
Поправка: Си гораздо удобнее изучать на компьютере. По крайней мере, есть отладочный вывод, да и сама компиляция - запуск гораздо быстрее.
Цитата Сообщение от Rius Посмотреть сообщение
А авр'ки в ардуине слегка устарели.
Ну, справедливости ради, ардуинки бывают не только на AVR. Но это еще большее извращение: ограничивать мощнейший 32-битный камень ущербными библиотеками для домохозяек.
Цитата Сообщение от shonty Посмотреть сообщение
AVR не то что бы устарели, а просто появились более современные МК с бОльшими возможностями.
Но для большинства проектов AVR по прежнему более чем достаточно.
Это и значит, что устарели.
А что до задач, так чем больше возможностей, тем больше и желаний.
Тут, для ТСа, я бы сказал, немножко другой критерий: что проще, дешевле достать, на чем проще сделать финальное устройство (согласитесь, не каждый запаяет какой-нибудь 1921вг015 в lqfp100) и по чему больше информации. В данный момент лидером, на мой взгляд, является stm32f103. Хотя она тоже изрядно устарела и не очень-то удобна по корпусу.
Из современных в удобном корпусе и с относительно вменяемой документацией есть ch32v203. Информации по ним немного, но частенько можно пользоваться даташитами от stm. Впрочем, без опыта и без "старшего товарища" поблизости все равно сложно.
Цитата Сообщение от shonty Посмотреть сообщение
В таких конструкциях AVR-ки работают на ура даже без внешнего кварца.
Так и stm / ch тоже могут работать без внешнего кварца. Причем, в отличие от AVR, в полном диапазоне частот. Хотя у той же stm32f103, кажется, была проблема, что делителей не хватало, и там предел не 72 МГц, а всего 64. Но точно не помню.
А я буквально только что доделал на упомянутой ch32v203 устройство с дисплейчиком HD44780. Приставку к компьютеру для индикации чего попало. Выжрал чуть не 40 кБ флеша, но таки добился, чтобы настройку можно было делать не двумя кнопочками и тормозным дисплеем, а прямо с компьютера, как белый человек.
Цитата Сообщение от shonty Посмотреть сообщение
Недавно на одном форуме STM-щик для управления дисплеем SSD1306 поднял частоту i2c до 1МГц. Спрашиваю зачем? Если любой дисплей 64х128 px на скорости интерфейса в 500кГц полностью заливается за 0,016384 секунды.
А почему бы и нет. Может, ему лень городить конечный автомат или DMA. Как и тратить слишком много времени на заливку в блокирующем режиме. Конечно, в серию такое пускать нельзя: как мы помним, предельные частоты I2C это 100 кГц (standard) и 400 кГц (fast). Но в единичном изделии, где будет использоваться именно тот дисплей, который протестировали - никто не запрещает.
0
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 378
16.06.2025, 10:49
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А что до задач, так чем больше возможностей, тем больше и желаний.
согласен.. есть одна идея которую не могу воплотить..
Цитата Сообщение от shonty Посмотреть сообщение
Я слежу за форумами, и смотрю что собирают любители на STM-ках и CH-ках.
слежу за форумами, интересуюсь.. Нет такой простоты лёгкого старта как с авр-ками. То с IDE затык, то ещё с чем.
Да ещё в асм корнями врос психологию не могу в себе побороть
В этом плане lgt8f328p решает часть вопросов, но до той моей "идеи" она пока не дотягивает
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
16.06.2025, 11:03
Цитата Сообщение от shonty Посмотреть сообщение
согласен.. есть одна идея которую не могу воплотить..
Не похвастаетесь?
Цитата Сообщение от shonty Посмотреть сообщение
слежу за форумами, интересуюсь.. Нет такой простоты лёгкого старта как с авр-ками. То с IDE затык, то ещё с чем.
Да ещё в асм корнями врос психологию не могу в себе побороть
Так может, не ARM, а RISC-V? Там ассемблер вроде поприятнее будет. Общую философию можно посмотреть в МГУ-шных лекциях. Ну и я в свое время пару статей написал.
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 11:35
Интересный у вас подход к обучению.
Не у меня, это про подход красноглазиков, которые начинающим впаривают, что-то типа установи православный линукс из исходников (с кодировкой koi8-r обязательно), в нём cmake, gcc, набери cmakefile и код, запусти команду сборки (сам найдёшь какую) в консоли для сборки и будет всё легко и просто. Не понимая, что настолько далёкий старт начинающим не по силам.
А ардуина, какая-бы они кривокодная ни была, сделана именно для начинающих. Даёт лёгкий старт и простоту протитипирования там, где нет никакой нужды делать долго, качественно и красиво. Ну а если она кого покалечит... ну, увы, не судьба.
0
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 378
16.06.2025, 11:40
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Не похвастаетесь?
нее.. потому что её можно монетизировать, и эта ниша свободна пока.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так может, не ARM, а RISC-V? Там ассемблер вроде поприятнее будет. Общую философию можно посмотреть в МГУ-шных лекциях. Ну и я в свое время пару статей написал.
спасибо. Я смотрю, изучаю пока потихоньку..

Цитата Сообщение от shonty Посмотреть сообщение
Да ещё в асм корнями врос
Немного отвлечёмся от высокого
Асм это же своя концепция. На каком-то этапе я понял, что знать асм и писать на нём это две большие разницы. В плане организации кода хотя бы. Большинство активно используют макросы. У меня их на программу не более 3-х обычно. Но вот стараюсь активно использовать препроцессоры.
Асм же как называют? ногодрыг.. да и по всякому, что на нём писАть уписАться..

Просто два куска кода приведу для примера, из шаблона-заготовки на мегу 8-ю:
где-то вверху пишем:
Assembler
1
2
3
4
5
/* Подключение и настройка I2C: */
    .set I2C_ENBL       = 1
    #define F_CPU       (8000000)                   ; Частота процессора
    #define I2C_speed   (300000)                    ; Частота I2C шины
    #define TWBR_VALUE  ((F_CPU/I2C_speed-16)/2)    ; значение регистра TWBR
где-то внизу пишем:
Assembler
1
2
3
.if I2C_ENBL == 1
.include    "C:\Users\бла-бла-бла-полный_путь\I2C_hard_driver_Atm8_v1.0.1.asm"
.ENDIF
И всё. Ставим I2C_ENBL в 1 - у нас к проекту подключён i2c драйвер, ставим 0, или другую цифру, соответственно файл не подключается. Можно ещё и i2c_init на автомате замутить, но я просто код лишним забивать не хочу.

Довольно лёгкая начальная настройка проекта, при этом IDE я не использую, пишу в редакторе с привычной подсветкой, компилирую и шью через bat-ник. Не люблю IDE.

Добавлено через 4 минуты
Цитата Сообщение от Rius Посмотреть сообщение
А ардуина, какая-бы они кривокодная ни была, сделана именно для начинающих. Даёт лёгкий старт и простоту
ардуина - это секта
Туда можно только войти и там остаться навсегда
Цитата Сообщение от Rius Посмотреть сообщение
Ну а если она кого покалечит... ну, увы, не судьба.
Многим уже мозги покалечила
Цитата Сообщение от Rius Посмотреть сообщение
Даёт лёгкий старт и простоту протитипирования там, где нет никакой нужды делать долго, качественно и красиво.
этим самым и калечит
Люди не знают даже что такое даташит
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 11:45
Не всем и надо оно, знать даташит. Для простых поделок достаточно конструктора, в этой нише тоже что-то должно быть.
Кому будет действительно надо, перешагнёт.
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
16.06.2025, 11:57
Цитата Сообщение от Rius Посмотреть сообщение
Интересный у вас подход к обучению.
Не у меня
Нет, именно у вас. Никто другой такой чуши не предлагал.
Цитата Сообщение от Rius Посмотреть сообщение
А ардуина, какая-бы они кривокодная ни была, сделана именно для начинающих.
По той же AVR полно хороших книг. Я вот начинал с Ревича, "занимательная электроника". Ассемблер и все такое. Ничего непреодолимого не было. Разве что с переходом на Си затянул: не очевидно было как там работать с прерываниями, да и не знал я его тогда.
Цитата Сообщение от shonty Посмотреть сообщение
нее.. потому что её можно монетизировать, и эта ниша свободна пока.
Ваше право.
Цитата Сообщение от shonty Посмотреть сообщение
Асм это же своя концепция. На каком-то этапе я понял, что знать асм и писать на нём это две большие разницы. В плане организации кода хотя бы. Большинство активно используют макросы. У меня их на программу не более 3-х обычно. Но вот стараюсь активно использовать препроцессоры.
Ну, у меня и на Си мракосов много, и они порой страшные. "Самый лучший кроссплатформенный ассемблер" как-никак.
Цитата Сообщение от shonty Посмотреть сообщение
Асм же как называют? ногодрыг..
Это разные вещи. Ногодрыг - софтовая реализация каких-то интерфейсов. В противовес ему использование встроенных модулей. Это от языка не зависит.
Цитата Сообщение от shonty Посмотреть сообщение
#define F_CPU (8000000) ; Частота процессора
Плохая идея. Частоту ядра лучше задавать в мейкфайле / настройках проекта. В крайнем случае завести отдельный файл со списком используемой периферии и ее настроек и инклюдить его во все остальные исходники.
Пример такого файла из моего проекта.
Цитата Сообщение от shonty Посмотреть сообщение
#define TWBR_VALUE ((F_CPU/I2C_speed-16)/2)
#define TWBR_VALUE (((F_CPU)/(I2C_speed)-16)/2)
Цитата Сообщение от shonty Посмотреть сообщение
Довольно лёгкая начальная настройка проекта, при этом IDE я не использую, пишу в редакторе с привычной подсветкой, компилирую и шью через bat-ник. Не люблю IDE.
Рекомендую освоить make. Все-таки это стандартное средство для сборки, а по использованию даже удобнее скриптов. Например, в моем курсе по risc-v используется в том числе удаленный сервер с отладочной платкой. Соответственно я могу сделать просто make чтобы скомпилировать проект, потом make prog чтобы прошить локально или make rem чтобы прошить удаленно. Плюс я немного упоролся и сделал подстановку ключей для разных семейств, определение установленного компилятора и тому подобное. Но это уже не начальный уровень.
---
P.S. Ладно, хорош оффтопить.
1
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 12:07
Нет, именно у вас. Никто другой такой чуши не предлагал.
Ну ОК, значит это я написал из под другого аккаунта:
пусть поставят себе neovim или helix или vscode
пусть поставят себе тулчейн none-eabi
пусть поставят себе gcc или rustc
и да благословит их open source
аминь
0
 Аватар для COKPOWEHEU
4147 / 2725 / 433
Регистрация: 09.09.2017
Сообщений: 12,071
16.06.2025, 12:13
То есть для вас ввести две команды сложнее, чем копаться по файлопомойкам в поисках IDE, потом тратить кучу времени чтобы заставить ее нормально работать. Для вас две команду это то же самое, что собирать систему из исходников с нуля?
1
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 12:23
Именно такого ответа я и ожидал. Красноглазикам не дано понять, что не весь мир вращается вокруг их консоли и есть люди, которым она нахрен не сдалась.

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

Ах да, уменя проекты на CMake и GCC, но это никакого отношения к вопросу не имеет.
0
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 378
16.06.2025, 12:28
Основная цель IDE - это популяризация продукта. Всем требованиям она не может удовлетворить, начиная с дизайна. Кроме того она порой излишне перегружена невостребованными функциями. Если заниматься вопросом не "только посмотреть" а серьёзно, то от IDE нужно уходить.
0
Эксперт .NET
 Аватар для Rius
13406 / 7859 / 1701
Регистрация: 25.05.2015
Сообщений: 23,871
Записей в блоге: 14
16.06.2025, 12:30
Цитата Сообщение от shonty Посмотреть сообщение
Основная цель IDE - это популяризация продукта.
Это может быть для PIC, STM32, производители которых выкатили среды на базе эклипса.
А вот Keil uVision или IAR Embedded Workbench здесь каким боком будет?
0
51 / 49 / 2
Регистрация: 23.01.2019
Сообщений: 378
16.06.2025, 12:39
Цитата Сообщение от Rius Посмотреть сообщение
Keil uVision или IAR Embedded Workbench здесь каким боком будет?
да, немного другим боком.
У многих мотивация присутствует. Монетизация как вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.06.2025, 12:39

AVR Studio 6 и AVR Toolchain вопросы!
Всем доброго времени суток. Решил я написать софтинку в новой студии от Атмела AVR Studyo 6. Все...

(Avr Studio + WinAvr) vs (mikroC PRO for AVR)
Сам пользуюсь (Avr Studyo + WinAvr). Ктонибудь использует mykroC PRO for AVR ? Слышал там...

Как подкрутить AVR Toolchain к AVR Studio 4.19?
Здравствуйте. Как подкрутить AVR Toolchain к AVR Studio 4.19? avr-gcc есть, а make нет. Как...

Ошибки при написании программы Avr Studio
Здравствуйте коллеги, написал программу, которая реализует огонь на ассемблере. В программировании...

Ошибка компиляции (AVR Studio, ATMega8515)
Ребята сегодня впервые проходим avr вот теперь не могу запустить на avr studio программу пишет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru