Skocz do zawartości

Eclipse problem kompilacji (wielokrotna definicja)


Pomocna odpowiedź

Napisano

Proszę o pomoc:

main

#include <avr\io.h>
#include <util\delay.h>
#include <avr\interrupt.h>
#include <stdlib.h>
#include <stdio.h>
#include "wyswietlacz_7segm.h"


int main()
{
	Timer0Init();

}

wyswietlacz_7segm obydwa pliki
 

#ifndef WYSWIETLACZ_7SEGM_H_
#define WYSWIETLACZ_7SEGM_H_
#include <avr\io.h>
#include <avr\interrupt.h>
/*
wyswietlacz LED ze wspolna anoda, ze wspolna katoda trzeba zanegować liczby
*/
#define LED D
#define GLUE(a, b) a##b
#define LEDPORT1(s) GLUE(PORT,s)
#define LEDPORT LEDPORT1(LED)
#define LEDDDR1(s) GLUE(DDR,s)
#define LEDDDR LEDDDR1(LED)

#define LEDDISPNO 4 // Liczba wyświetlaczy
volatile uint8_t LEDDIGITS[LEDDISPNO]; // Tablica zawierająca dane do wyświetlania

// Cyfry 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 i symbol -
static const uint8_t DIGITS[11]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82,
0xF8, 0x80, 0x90, 0xBF};
const uint8_t DOT=0x80;

void ShowOnLED(uint8_t val);
void Timer0Init();

#endif /* WYSWIETLACZ_7SEGM_H_ */
#include "wyswietlacz_7segm.h"

void ShowOnLED(uint8_t val)
{
uint8_t tmp=0xFF;
if((val & 0x7F)<11) tmp=DIGITS[val & 0x7F]; // Odczytaj kod znaku
if(val & DOT) tmp&=~DOT; // Sterowanie kropką dziesiętną na LED
LEDPORT=tmp;
}

void Timer0Init()
{
TCCR0=_BV(CS01); // Preskaler CLKIO/8
TIMSK|=_BV(TOIE0); // Odblokuj przerwanie nadmiaru timera 0
}

ISR(TIMER0_OVF_vect)
{
static uint8_t LEDNO;
PORTC|=0x0F; // Wyłącz wszystkie wyświetlacze
LEDNO=(LEDNO+1)%LEDDISPNO;
ShowOnLED(LEDDIGITS[LEDNO]);
PORTC=(PORTC & 0xF0) | (~(1<<LEDNO) & 0x0F); // Wybierz kolejny wyświetlacz
}

Właściwie dobra copy-pasta i dostaję takie oto:

Cytat

'Building target: Zegarek.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,Zegarek.map -mmcu=atmega8 -o "Zegarek.elf"  ./main.o ./wyswietlacz_7segm.o   
./wyswietlacz_7segm.o:(.rodata.DOT+0x0): multiple definition of `DOT'
./main.o:(.rodata.DOT+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [Zegarek.elf] Błąd 1
"make all" terminated with exit code 2. Build might be incomplete.

Co robię nie tak w tym eclipsie 😮

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...