Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
chip_exe
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 16
1

Define в avr-gcc под linux

03.11.2017, 20:49. Просмотров 418. Ответов 1
Метки нет (Все метки)

Для унификации кода создал макросы

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define BUTTONPORT PORTC
#define BUTTONPORT1 PORTC1
#define BUTTONPORT2 PORTC2
#define BUTTONPORT3 PORTC3
#define BUTTONPIN PINC
#define BUTTONPIN1 PINC1
#define BUTTONPIN2 PINC2
#define BUTTONPIN3 PINC3
#define BUTTONDDR DDRC
#define BUTTONDDR1 DDRC1
#define BUTTONDDR2 DDRC2
#define BUTTONDDR3 DDRC3
 
...................................
 
void port_ini(void)
{
        BUTTONDDR &= ~((1 << BUTTONDDR3)|(1 << BUTTONDDR2)|(1 << BUTTONDDR1)); //ножки кнопок на вход
        BUTTONPORT |= (1 << BUTTONPORT3)|(1 << BUTTONPORT2)|(1 << BUTTONPORT1); //подтянем резисторы к лапкам кнопок
}
................................
В Atmel studio под windows код собирается без ошибок, но под Linux по сути тот же самый avr-gcc выдаёт следующее

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Compiling: main.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst  -std=gnu99 -DF_OSC=8000000UL -MD -MP -MF .dep/main.o.d main.c -o main.o 
main.c: In function 'port_ini':
main.c:14:20: error: 'DDRC3' undeclared (first use in this function); did you mean 'DDC3'?
 #define BUTTONDDR3 DDRC3
                    ^
main.c:32:25: note: in expansion of macro 'BUTTONDDR3'
    BUTTONDDR &= ~((1 << BUTTONDDR3)|(1 << BUTTONDDR2)|(1 << BUTTONDDR1));//ножки кнопок на вход
                         ^~~~~~~~~~
main.c:14:20: note: each undeclared identifier is reported only once for each function it appears in
 #define BUTTONDDR3 DDRC3
                    ^
main.c:32:25: note: in expansion of macro 'BUTTONDDR3'
    BUTTONDDR &= ~((1 << BUTTONDDR3)|(1 << BUTTONDDR2)|(1 << BUTTONDDR1));//ножки кнопок на вход
                         ^~~~~~~~~~
main.c:13:20: error: 'DDRC2' undeclared (first use in this function); did you mean 'DDRC3'?
 #define BUTTONDDR2 DDRC2
                    ^
main.c:32:43: note: in expansion of macro 'BUTTONDDR2'
    BUTTONDDR &= ~((1 << BUTTONDDR3)|(1 << BUTTONDDR2)|(1 << BUTTONDDR1));//ножки кнопок на вход
                                           ^~~~~~~~~~
main.c:12:20: error: 'DDRC1' undeclared (first use in this function); did you mean 'DDRC2'?
 #define BUTTONDDR1 DDRC1
                    ^
main.c:32:61: note: in expansion of macro 'BUTTONDDR1'
    BUTTONDDR &= ~((1 << BUTTONDDR3)|(1 << BUTTONDDR2)|(1 << BUTTONDDR1));//ножки кнопок на вход
                                                             ^~~~~~~~~~
make: *** [Makefile:343: main.o] Ошибка 1
мол макрос не объявлен
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2017, 20:49
Ответы с готовыми решениями:

GCC-AVR Linux
Вот такая констукция #asm .equ __y2s_port=0?12 ;PORTD .equ __sda_bit=0 .equ __scl_bit=1...

ATmega8. AVR-GCC в Linux Ubuntu
Воспользовался парой известных туториалов по этим микроконтроллерам и столкнулся со следующей...

linux+avr+asm+debug=IDE под linux
Здравствуйте! Допрашиваю Гошу с пристрастием уже два дня... Хочется аналог AVR Studyo под линукс...

Программирование микроконтроллеров AVR, STM под ОС Linux?
Существует ли IDE для программирования микроконтроллеров под ОС Linux?

компиляция avr-gcc
Народ подскажите как компилировать проекты написанные с помощью LUFA. 1 из командной строки. 2 из...

1
ValeryS
Модератор
7778 / 5782 / 753
Регистрация: 14.02.2011
Сообщений: 19,787
Завершенные тесты: 1
04.11.2017, 08:07 2
Цитата Сообщение от chip_exe Посмотреть сообщение
Для унификации кода создал макросы
макросы над макросами
Цитата Сообщение от chip_exe Посмотреть сообщение
DDRC3
нет такого регистра
видать в одном случае
Цитата Сообщение от chip_exe Посмотреть сообщение
Atmel studio
он объявлен где то внутре компилятора а в другом
Цитата Сообщение от chip_exe Посмотреть сообщение
под Linux
нет
ищи как он выглядит в AS и переноси в другой код
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2017, 08:07

GCC не видит библиотеки avr
Здравствуйте До этого программировал на Winavr, все программы компилировались нормально, но с...

забавное поведение avr-gcc
Решил тут запилить маленький проектик на mega8 (измеряем пару напряжений и отправляем по uart на...

avr gcc, ds18b20, lcd3310
Добрый день. Есть у меня программа, которая выводит на дисплей от нокии 3310 показания температуры...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru