Hallo Leute
Ich habe grade ein Projekt mit dem Atmega4809.
Ich habe folgenden Code in einer Bibliotheksdatei.
1 | #include <inttypes.h>
|
2 | #include <avr/io.h>
|
3 | #include <avr/interrupt.h>
|
4 | #include "Ultra_Sonic_Sensor.h"
|
5 | #include <util/delay.h>
|
6 |
|
7 |
|
8 | void Ultra_Sonic_Sensor_init( void )
|
9 | {
|
10 | // Aktiviere Externen Interrupt auf Echo Signal
|
11 | Echo_CTRL = PORT_ISC_FALLING_gc;
|
12 |
|
13 | // Schalte Trig als Ausgang
|
14 | Trig_Dir |= Trig;
|
15 |
|
16 | //config Timer
|
17 |
|
18 | // select prescaler
|
19 | // mit prescaler 2 ein increment alle 0.4uS bei einem 20MHz Takt
|
20 | TCA0.SINGLE.CTRLA |= TCA_SINGLE_CLKSEL_DIV8_gc;
|
21 |
|
22 | // Aktiviere Interrupt "Compare Match 0"
|
23 | TCA0.SINGLE.INTCTRL = TCA_SINGLE_CMP0EN_bm;
|
24 |
|
25 | // Zähle clock ticks
|
26 | TCA0.SINGLE.EVCTRL &= ~(TCA_SINGLE_CNTEI_bm);
|
27 |
|
28 | // Compare Match Interrupt nach 25mS
|
29 | TCA0_SINGLE_CMP0 = 62500;
|
30 |
|
31 | // starte Timer
|
32 | TCA0.SINGLE.CTRLA |= TCA_SINGLE_ENABLE_bm;
|
33 |
|
34 | }
|
35 |
|
36 | /*
|
37 | ISR(TCA0_CMP0_vect)
|
38 | {
|
39 | //lösche Interrupt flag
|
40 | TCA0.SINGLE.INTFLAGS = TCA_SINGLE_CMP0EN_bm;
|
41 |
|
42 | //Reset Counter Register
|
43 | TCA0.SINGLE.CNT = 0;
|
44 |
|
45 | // Start signal für 10uS
|
46 | Trig_Out |= Trig;
|
47 | _delay_us(10);
|
48 | Trig_Out &= ~Trig;
|
49 | }
|
50 |
|
51 | */
|
52 |
|
53 | uint32_t RohWert;
|
54 |
|
55 | ISR(PORTB_PORT_vect)
|
56 | {
|
57 |
|
58 | // lösche Interrupt flag
|
59 | PORTB.INTFLAGS = PORT_INT2_bm;
|
60 |
|
61 | RohWert = TCA0.SINGLE.CNT;
|
62 | }
|
63 |
|
64 | uint32_t Ultra_Sonic_Sensor_read (void)
|
65 | {
|
66 | uint32_t Distanz = 0;
|
67 |
|
68 | // Berechne Distanz in mm
|
69 | Distanz = RohWert;
|
70 | Distanz *= 25;
|
71 | Distanz *= 23.3;
|
72 | Distanz /= 2;
|
73 |
|
74 | return Distanz;
|
75 | }
|
Leider kriege ich beim compilieren immer die Fehlermeldung.
multiple definition of `__vector_34'.
Diese bezieht sich auf den Interrupt Vector ISR(PORTB_PORT_vect).
Wenn ich aber diese Routine in mein main File reinkopiere kommt diese
Fehlermeldung nicht.
Was mach ich falsch?
Vielen Dank für die Hilfe.