>>> tree . ├── init │ ├── otdiodes.c │ └── otdiodes.h ├── summator.c
>>> cat init/otdiodes.h
#ifndef _INIT_OTDIODES_H
#define _INIT_OTDIODES_H
#ifdef _AVR_IO_H
/*
* setup output to the diodes
*/
void init();
#endif
#endif
>>> cat init/otdiodes.c
#include "otdiodes.h"
/*
* setup output to the diodes
*/
void init() {
DDRC = 0b00000111;
DDRA = 0xFF;
PORTA = 1;
PORTC = 0;
PORTC = 5;
PORTC = 4;
}
>>> cat summator.c
#include <avr/io.h>
#include "init/otdiodes.h" // init() — настройка вывода на светодиоды
#define FIRST_OP 0b00000001
#define SECOND_OP 0b10000000
/*
* 1. Написать программу, выполняющую суммирование 2-х чисел.
* Результат выводить в двоичном коде на светодиодные индикаторы.
*/
char sum_op(char first_op, char second_op);
void main() {
init();
PORTA = ~sum_op(FIRST_OP, SECOND_OP);
while(1);
}
char sum_op(char first_op, char second_op) {
return first_op + second_op;
}
>>> avr-gcc -g -Os -mmcu=atmega128 summator.c /tmp/ccgvkBJs.o: In function `main': /home/fx/Документы/Универ/3321_АПСОИ_Микропроцессоры/Микропроцессоры/Code/Lab1/summator.c:15: undefined reference to `init' collect2: ld returned 1 exit status
ЧЯДНТ? С си я на Вы, но вроде бы должно работать. Я забыл передать компилятору какие-то параметры?