Forum: Mikrocontroller und Digitale Elektronik Bekomme das mit dem ADC nicht hin :(


von Andi (Gast)


Lesenswert?

Servus,

bin noch ein ziehmlicher Neuling im Bereich Mikrocontroller techniik und 
wollte jetzt mal eine Spannung über die ADC Eingänge messen.
Hierfür hab ich ein 10k Poti zwischen VCC und GND gehängt und den Abgang 
auf den Pin PC0 geklemmt. Ich verwende einen ATMega32.

Hab aus dem Roboternetz und mit Hilfe eines sehr netten Mitglieds von 
dort folgenden Code bekommen und woolte jetzt einmal den ADC testen.

Irgendwie klappts aber nicht, hab ich noch irgendwas vergessen?
1
#include <avr/io.h>
2
#include <inttypes.h>
3
4
uint16_t readADC(uint8_t channel) {
5
uint8_t i;
6
uint16_t result = 0;
7
8
// Den ADC aktivieren und Teilungsfaktor auf 64 stellen
9
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);
10
11
// Kanal des Multiplexers waehlen
12
// Interne Referenzspannung verwenden (also 2,56 V)
13
ADMUX = channel | (1<<REFS1) | (1<<REFS0);
14
15
// Den ADC initialisieren und einen sog. Dummyreadout machen
16
ADCSRA |= (1<<ADSC);
17
while(ADCSRA & (1<<ADSC));
18
19
// Jetzt 3x die analoge Spannung and Kanal channel auslesen
20
// und dann Durchschnittswert ausrechnen.
21
for(i=0; i<3; i++) {
22
// Eine Wandlung
23
ADCSRA |= (1<<ADSC);
24
// Auf Ergebnis warten...
25
while(ADCSRA & (1<<ADSC));
26
27
result += ADCW;
28
}
29
30
// ADC wieder deaktivieren
31
ADCSRA &= ~(1<<ADEN);
32
33
result /= 3;
34
35
return result;
36
}
37
38
int main(void)
39
{
40
41
 DDRA=0x01;
42
43
44
//Endlosschleife
45
while(1)
46
{
47
uint16_t result = readADC(0); //Auslesen der analogen Spannungen an Pin 0,
48
// also ADC0. In result steht das Ergebnis.
49
50
if(result>128)
51
{
52
//LED an
53
PORTA = 0x01;
54
//Setze PinA.0 auf 1
55
}
56
else
57
{
58
//LED aus
59
PORTA = 0x00;
60
//Setze PinA.0 auf 0
61
}
62
63
} //Endlosschleife bis hier
64
65
//an diese Stelle wird das Programm wegen der Endlosschleife nicht mehr gelangen,
66
//außer du verlässt die while-Schleife mit einem break;
67
68
return 0;
69
}

von tork (Gast)


Lesenswert?

>Irgendwie klappts aber nicht
Forum-Fragenformulierung #7

von Andi (Gast)


Lesenswert?

Sorry hab irgendwie ganz vergessen zu schreiben was das Programm machen 
soll. Also im Endeffekt will ich nur meine ADC Eingänge testen. Bei 
überschreiten einer gewissen Spannung soll die LED anfangen zu leuchten 
welche ich an Port A.0 klemme.

Im Endeffekt will ich über einen Spannungsteiler mein Labornetzgerät 
dran hängen und dessen Spannung über ein LCD ausgeben.

von Karl H. (kbuchegg)


Lesenswert?

Andi schrieb:
> Sorry hab irgendwie ganz vergessen zu schreiben was das Programm machen
> soll. Also im Endeffekt will ich nur meine ADC Eingänge testen. Bei
> überschreiten einer gewissen Spannung soll die LED anfangen zu leuchten
> welche ich an Port A.0 klemme.

Das deckt sich aber nicht mit den Kommentaren in deinem Programm

Zum Programm selber:
Ich müsste das auf einen Mega brennen um es in Aktion zu sehen. Beim 
Durchlesen ist mir nichts aufgefallen. Prinzipiell müsste sich IMHO was 
tun, wenn die LED am richtigen Pin angeschlossen ist

* Du hast eine Referenzspannung von 2.56V eingestellt.
  Dein Poti liefert aber am ADC Pin 0 bis 5V ab.
  Das alleine ist kein Problem, nur bist du mit dem Poti dann nach der
  Hälfte des Poti Wegs bereits auf ADC Anschlag und ab dort liefert
  der ADC nur noch 1023 als Messergebnis.
  -> du schenkst schon mal die Hälfte des Wegs her

* Du vergleichst mit 128
  Das ist nicht viel, wenn man bedenkt, dass der ADC Bereich von 0 bis
  1023 geht.
  Zusammen mit der vorhergehenden Entscheidung bedeutet das, dass
  du nur einen sehr kleinen Potibereich hast, in dem du die
  Auswirkungen des Potidehens an der LED sehen kannst.

Allerdings sehen müsstest du sie. An einem Ende der Potiverstellung 
müsste die LED ausgehen.

Aber um sicherzugehen:

Ändere mal die Referenzspannung auf Vcc um

  ADMUX = channel | (0<<REFS1) | (1<<REFS0);

damit nutz du den Poti Weg komplett aus.

Weiters: Ändere den Vergleichswert auf 512. Dann liegt die 
Umschaltschwelle in der Mitte des Potiwegs und das kannst du nicht mehr 
übersehen

Weiters:
miss die Spannung an PC0 (also dem Kanal 0 Eingang des ADC)
miss die Spannung am ARef Pin

am ARef Pin musst du konstant 5V sehen
am PC0 Pin musst du eine Spannung messen können, die sich beim Drehen am 
Poti verändert.


Die LED hast du kontrolliert, dass sie auch wirklich funktioniert?

Ändere deinen Programmanfang mal so um:
1
#include <avr/io.h>
2
#include <inttypes.h>
3
#include <util/delay.h>
4
5
6
...
7
8
int main(void)
9
{
10
11
  DDRA = 0x01;
12
13
  PORTA = 0x01;
14
  _delay_ms( 500 );
15
  PORTA = 0x00;
16
  _delay_ms( 500 );
17
18
  //Endlosschleife
19
  ....

das lässt deine LED bemi Programmstart einmal blinken. Damit hast du die 
Funktionskontrolle, ob die LED überhaupt prinzipiell funktioniert.

von Karl H. (kbuchegg)


Lesenswert?

> Hierfür hab ich ein 10k Poti zwischen VCC und GND gehängt und den
> Abgang auf den Pin PC0 geklemmt. Ich verwende einen ATMega32.


Moment!

Der ADC Eingang beim Mega32 ist PA0 und nicht PC0. Siehe Datenblatt
Damit hängt dein Poti am falschen Pin.
Dann kann aber auch deine LED nicht auf PA0 hängen.

Was hast du wie verschaltet?

von Andi (Gast)


Lesenswert?

Erst einmal vielen Dank,

hab das Programm jetzt geändert, klappt leider immer noch nicht. Die LED 
leuchtet konstant und geht nicht aus. hat aber kurz geblinkt beim 
einschalten.

An AREF hab ich 5,0V gemessen und an Pin C.0 hab ich eine 
Spannungsänderung im Bereich von 0-5V je nachdem wie ich das Poti 
bewege. Gibt es sonst noch etwas das ich beachten muss? Ist es möglich 
das die ADC Ports defekt sind? Oder muss ich bei den Fusebits etwas 
ändern?

#include <avr/io.h>
#include <inttypes.h>
#include <util/delay.h>


uint16_t readADC(uint8_t channel) {
uint8_t i;
uint16_t result = 0;

// Den ADC aktivieren und Teilungsfaktor auf 64 stellen
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);

// Kanal des Multiplexers waehlen
// Interne Referenzspannung verwenden (also 2,56 V)
ADMUX = channel | (0<<REFS1) | (1<<REFS0);

// Den ADC initialisieren und einen sog. Dummyreadout machen
ADCSRA |= (1<<ADSC);
while(ADCSRA & (1<<ADSC));

// Jetzt 3x die analoge Spannung and Kanal channel auslesen
// und dann Durchschnittswert ausrechnen.
for(i=0; i<3; i++) {
// Eine Wandlung
ADCSRA |= (1<<ADSC);
// Auf Ergebnis warten...
while(ADCSRA & (1<<ADSC));

result += ADCW;
}

// ADC wieder deaktivieren
ADCSRA &= ~(1<<ADEN);

result /= 3;

return result;
}

int main(void)
{
  DDRA = 0x01;

  PORTA = 0x01;
  _delay_ms( 500 );
  PORTA = 0x00;
  _delay_ms( 500 );


//Endlosschleife
while(1)
{
uint16_t result = readADC(0); //Auslesen der analogen Spannungen an Pin 
0,
// also ADC0. In result steht das Ergebnis.

if(result<512)
{
//LED an
PORTA = 0x01;
//Setze PinA.0 auf 1
}
else
{
//LED aus
PORTA = 0x00;
//Setze PinA.0 auf 0
}

} //Endlosschleife bis hier

//an diese Stelle wird das Programm wegen der Endlosschleife nicht mehr 
gelangen,
//außer du verlässt die while-Schleife mit einem break;

return 0;
}

von Andi (Gast)


Lesenswert?

Hab grad deine letzte Antwort gelesen, man bin ich doof! Werds gleich 
ändern wenn es der ATMega überlebt hat :)

von Andi (Gast)


Lesenswert?

Du bist echt der Beste!!! Es funktioniert!!!

Vielen Dank! Jetzt werd ich das Programm mal zerstückeln und versuchen 
daraus schlau zu werden :)

von Christian W. (christian_w)


Lesenswert?

Hallo!

Ich hab da auch ein kleines Problem.

Möchte gerne 4 LEDs ansteuern, je höher am ADC die Eingangsspannung, 
umso mehr LEDs sollten leuchten.

Es leuchten aber dauernd alle 4 LEDs, selbst wenn am PC0 dauerhaft 0 V 
anliegen...
1
// Test des Analog Comparators
2
3
#include <avr/io.h>
4
#define F_CPU 1000000UL // CPU Frequenz
5
#include <util/delay.h> // Warteschleifen
6
7
8
int main(void)
9
{
10
  int result = 0;  
11
12
  // Ausgänge
13
  DDRD = 0b00001111;
14
15
  // ADC aktivieren und Teilungsfaktor auf 64 stellen
16
  ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);
17
18
  // ADC Dauerfeuer (Endlosschleifenbetrieb) ausschalten
19
  ADCSRA &= ~(1<<ADFR);
20
21
  // Referenzspannung von extern
22
  ADMUX &= ~( (1<<REFS0)|(1<<REFS1) );
23
24
  // ADC0 verwenden
25
  ADMUX &= ~( (1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0) );
26
27
  // Probedurchlauf. Eine Konvertierung durchführen
28
  ADCSRA |= (1<<ADSC);
29
  
30
  // Probedurchlauf auslesen
31
  while(ADCSRA & (1<<ADSC));
32
33
34
  while(1)
35
  {
36
37
    // Konvertierung durchführen
38
    ADCSRA |= (1<<ADSC);
39
    
40
    // Auf Abschluss der Konvertierung warten, bis Bit wieder auf Null
41
    while ( ADCSRA & (1<<ADIF) ); 
42
    
43
    // Ergebnis der Konvertierung auslesen
44
    result = ADCL;
45
46
    // Auswerten
47
    if ( result > 0 || result <= 256 )
48
    {  
49
      // LEDs
50
      PORTD &= ~(1<<PD0);
51
      PORTD &= ~(1<<PD1);
52
      PORTD &= ~(1<<PD2);
53
      PORTD |= (1<<PD3);
54
    }
55
56
    if ( result > 256 || result <= 512 )
57
    {
58
      // LEDs
59
      PORTD &= ~(1<<PD0);
60
      PORTD &= ~(1<<PD1);
61
      PORTD |= (1<<PD2);
62
      PORTD |= (1<<PD3);
63
    }
64
65
    if ( result > 512 || result <= 768 )
66
    {
67
      // LEDs
68
      PORTD &= ~(1<<PD0);
69
      PORTD |= (1<<PD1);
70
      PORTD |= (1<<PD2);
71
      PORTD |= (1<<PD3);
72
    }
73
74
    if ( result > 768 || result <= 1024 )
75
    {
76
      // LEDs
77
      PORTD |= (1<<PD0);
78
      PORTD |= (1<<PD1);
79
      PORTD |= (1<<PD2);
80
      PORTD |= (1<<PD3);
81
    }
82
83
  }
84
  
85
  return 0;
86
}

Danke

Christian

von Andreas (Gast)


Lesenswert?

Hallo Christian,

dein Fehler liegt in der if-Bedingung:

> if ( result > 768 || result <= 1024 )
>     {
>       // LEDs
>       PORTD |= (1<<PD0);
>       PORTD |= (1<<PD1);
>       PORTD |= (1<<PD2);
>       PORTD |= (1<<PD3);
>     }

Jeder ADC-Wert ist <= 1024, damit wird der Abschnitt immer betreten und 
alle vier Ausgänge gesetzt. Verknüpfe mal die beiden Intervallgrenzen 
mit &&, dann müsste es passen.

Grüße

Andreas

von Christian W. (christian_w)


Lesenswert?

Hallo, Danke.

Habs jetzt mal angepasst. Immer noch alle 4 LEDs an :-(((
1
// Test des Analog Comparators
2
3
#include <avr/io.h>
4
#define F_CPU 1000000UL // CPU Frequenz
5
#include <util/delay.h> // Warteschleifen
6
7
8
int main(void)
9
{
10
  uint16_t result = 0;  
11
12
  // Ausgänge
13
  DDRD = 0b00001111;
14
15
  // ADC aktivieren und Teilungsfaktor auf 8 stellen
16
  ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);
17
18
  // ADC Dauerfeuer (Endlosschleifenbetrieb) ausschalten
19
  ADCSRA &= ~(1<<ADFR);
20
21
  // Referenzspannung von extern
22
  ADMUX &= ~( (1<<REFS0)|(1<<REFS1) );
23
24
  // ADC0 verwenden
25
  ADMUX &= ~( (1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0) );
26
27
  while(1)
28
  {
29
30
    // Probedurchlauf. Eine Konvertierung durchführen
31
    ADCSRA |= (1<<ADSC);
32
  
33
    // Probedurchlauf abwarten
34
    while(ADCSRA & (1<<ADSC));
35
  
36
    // Konvertierung durchführen
37
    ADCSRA |= (1<<ADSC);
38
    
39
    // Auf Abschluss der Konvertierung warten, bis Bit wieder auf Null
40
    while ( ADCSRA & (1<<ADIF) ); 
41
    
42
    // Ergebnis der Konvertierung auslesen
43
    result = ADCW;
44
    
45
    // Auswerten
46
    if ( result > 0 && result <= 256 )
47
    {  
48
      // LEDs
49
      PORTD &= ~(1<<PD0);
50
      PORTD &= ~(1<<PD1);
51
      PORTD &= ~(1<<PD2);
52
      PORTD |= (1<<PD3);
53
    }
54
55
    if ( result > 256 || result <= 512 )
56
    {
57
      // LEDs
58
      PORTD &= ~(1<<PD0);
59
      PORTD &= ~(1<<PD1);
60
      PORTD |= (1<<PD2);
61
      PORTD |= (1<<PD3);
62
    }
63
64
    if ( result > 512 || result <= 768 )
65
    {
66
      // LEDs
67
      PORTD &= ~(1<<PD0);
68
      PORTD |= (1<<PD1);
69
      PORTD |= (1<<PD2);
70
      PORTD |= (1<<PD3);
71
    }
72
73
    if ( result > 768 || result <= 1023 )
74
    {
75
      // LEDs
76
      PORTD |= (1<<PD0);
77
      PORTD |= (1<<PD1);
78
      PORTD |= (1<<PD2);
79
      PORTD |= (1<<PD3);
80
    }
81
82
  }
83
  
84
  return 0;
85
}

von Stefan B. (stefan) Benutzerseite


Lesenswert?

>    // Probedurchlauf abwarten
>    while(ADCSRA & (1<<ADSC));

Da fehlt das Auslesen!

    // Probedurchlauf abwarten
    while(ADCSRA & (1<<ADSC));
    // Ergebnis der Konvertierung auslesen
    result = ADCW; // Dummyread

Diese Dummreadaktion würde ich vor die while-Schleife ziehen statt in 
die While-Schleife.

>  // Referenzspannung von extern
>  ADMUX &= ~( (1<<REFS0)|(1<<REFS1) );

Spätestens hier stellt sich die Frage nach dem Schaltplan.

>    // Auf Abschluss der Konvertierung warten, bis Bit wieder auf Null
>    while ( ADCSRA & (1<<ADIF) );

Warum hier mit ADIF statt mit ADSC?

von Christian W. (christian_w)


Lesenswert?

Der Schaltplan ist schnell erklärt.

an AREF und AVCC sind +5.00V.
an PC0 ist ein 50k Poti, das zwischen VCC und GND hängt.

hab jetzt die Änderungen mal gemacht, aber immer noch leuchten egal 
welche Potistellung alle 4 LED...

hm.

von Amateur (Gast)


Lesenswert?

Arbeitest du auch mit einem ATMega 32? der hat doch die ADC Eingänge auf 
PORT A, nicht auf PORT C.

Also, Poti auf PA0 hängen!

außerdem sollte dein "auswerten" folgendermaßen aussehen:
1
// Auswerten
2
    if ( result > 0 && result <= 256 )
3
    {  
4
      // LEDs
5
      PORTD &= ~(1<<PD0);
6
      PORTD &= ~(1<<PD1);
7
      PORTD &= ~(1<<PD2);
8
      PORTD |= (1<<PD3);
9
    }
10
11
    if ( result > 256 && result <= 512 )
12
    {
13
      // LEDs
14
      PORTD &= ~(1<<PD0);
15
      PORTD &= ~(1<<PD1);
16
      PORTD |= (1<<PD2);
17
      PORTD |= (1<<PD3);
18
    }
19
20
    if ( result > 512 && result <= 768 )
21
    {
22
      // LEDs
23
      PORTD &= ~(1<<PD0);
24
      PORTD |= (1<<PD1);
25
      PORTD |= (1<<PD2);
26
      PORTD |= (1<<PD3);
27
    }
28
29
    if ( result > 768 && result <= 1023 )
30
    {
31
      // LEDs
32
      PORTD |= (1<<PD0);
33
      PORTD |= (1<<PD1);
34
      PORTD |= (1<<PD2);
35
      PORTD |= (1<<PD3);
36
    }
37
38
  }

immer mit && verknüpfen!

von Christian W. (christian_w)


Lesenswert?

Achso, hab ich ganz vergessen zu sagen was da für ein uC im Einsatz ist.
Das ist ein ATMega8L-8PU.
Die Auswert-unds && hab ich geändert...
Aber immer noch keine Reaktion. Alle 4 LEDs dauer-an.
hmmmmm

von Karl H. (kbuchegg)


Lesenswert?

Christian W. schrieb:
> Achso, hab ich ganz vergessen zu sagen was da für ein uC im Einsatz ist.
> Das ist ein ATMega8L-8PU.
> Die Auswert-unds && hab ich geändert...

Und wie sieht dein Programm jetzt aus?

> Aber immer noch keine Reaktion. Alle 4 LEDs dauer-an.
> hmmmmm

Ich frage mich, wozu wir im AVR-GCC-Tutorial so schöne getestete ADC 
Funktionen haben, wenn dann jeder erst recht wieder sein eigenes 
Süppchen kocht und erst mal auf die Schnauze fällt, weil nichts 
funktioniert.

von holger (Gast)


Lesenswert?

>Aber immer noch keine Reaktion. Alle 4 LEDs dauer-an.

Mal ne ganz blöde Idee;) Das Poti ist falsch angeschlossen.
Schon mal die Spannung an PC0 gemessen? Ist die evtl. immer 5V?

von Karl H. (kbuchegg)


Lesenswert?

holger schrieb:
>>Aber immer noch keine Reaktion. Alle 4 LEDs dauer-an.
>
> Mal ne ganz blöde Idee;) Das Poti ist falsch angeschlossen.
> Schon mal die Spannung an PC0 gemessen? Ist die evtl. immer 5V?

Und gleich danach auch die Spannung am AREF Pin messen.

von Christian W. (christian_w)


Angehängte Dateien:

Lesenswert?

hier mal eine zusammenfassung.

das programm hab ich als c-datei angehängt.
die || wurden zwischenzeitlich durch && ersetzt, aber habe die falsche 
datei hochgeladen.

poti ist richtig angeschlossen, ich messe am PD0 zwischen 0,00 und 4,90 
volt, wenn ich am poti drehe

aref ist direkt am 7805, hat also auch die 4,90 v.

von Karl H. (kbuchegg)


Lesenswert?

Christian W. schrieb:
> hier mal eine zusammenfassung.
>
> das programm hab ich als c-datei angehängt.
> die || wurden zwischenzeitlich durch && ersetzt, aber habe die falsche
> datei hochgeladen.

Wie jetzt?
Ist das was du zuletzt hochgeladen hast, nun dein letztes Programm oder 
nicht?

Denn dort sind die || immer noch drinnen


Bedenke bitte bei allem was du tust: Von dieser Seite des Monitors aus, 
sehen wir nur das was du uns zeigst!

von Christian W. (christian_w)


Angehängte Dateien:

Lesenswert?

hab die aktualisierte datei nochmals hochgeladen, genauso wie sie (in 
maschinensprache natürlich) auf dem prozessor ist.

von Karl H. (kbuchegg)


Lesenswert?

Machs doch mal so
1
  while(1)
2
  {
3
  
4
    // Konvertierung durchführen
5
    ADCSRA |= (1<<ADSC);
6
    
7
    // Auf Abschluss der Konvertierung warten, bis Bit wieder auf Null
8
    while ( ADCSRA & (1<<ADSC) ); 
9
    
10
    // Ergebnis der Konvertierung auslesen
11
    result = ADCW;
12
13
    PORTD = result / 64;
14
  }

dann ist erst mal die Thematik mit || und && vom Tisch.

von Christian W. (christian_w)


Angehängte Dateien:

Lesenswert?

leider auch nicht... siehe anhang...

habe grade nochmal alles durchgemessen:

- PD0: 0,00 bei poti zu
- PD0: 2,54 bei poti halb
- PD0: 4,90 bei poti auf
- AREF: 4,90 v
- AVCC: 4,90 v
- VCC: 4,90 v

von holger (Gast)


Lesenswert?

Wenn ich AREF auf internal stelle funktioniert das Programm
bei mir.

Vieleicht mal speichern und übersetzen anklicken?

von Karl H. (kbuchegg)


Lesenswert?

Christian W. schrieb:
> leider auch nicht... siehe anhang...
>
> habe grade nochmal alles durchgemessen:
>
> - PD0: 0,00 bei poti zu
> - PD0: 2,54 bei poti halb
> - PD0: 4,90 bei poti auf

Wieso PD0

Der ADC ist beim Mega8 am Port C

(Tippfehler oder Verdrahtungsfehler?)

von Christian W. (christian_w)


Lesenswert?

hoppla, tippfehler. auf der bestückungsseite der 6. pin rechts von oben, 
also PC0.

hab jetzt die interne ref spannung verwendet mit:
ADMUX |= ( (1<<REFS0)|(1<<REFS1) );

geht immer noch nicht...

-grübel-

von Karl H. (kbuchegg)


Lesenswert?

Blöde Frage.
Deine LED hast du getestet?

von Christian W. (christian_w)


Angehängte Dateien:

Lesenswert?

ja, leds funktionieren alle.

ich bin jetzt endlich dahintergekommen.

je nach potistellung geht jetzt eine led nach der anderen schön an, oder 
aus.

vielen dank für die hilfe.

es war ein fehler im avr studio.

ich hab mal unten nach dem compilieren auf die byte-angabe geachtet.

die lag bei 204 byte.

dann hab ich am programm etwas geändert,
lag die immer noch bei 204 byte nach dem compilieren.

dann hab ich einen kompletten programmteil rausgeschmissen, und siehe 
da, immer noch 204 byte.

ich hab dann alles geschlossen und ein neues projekt erstellt, und siehe 
da, je nachdem ob ich was am quellcode ändere, ändert sich nach dem 
compilieren auch die byte-zahl.

ich hab also unwissentlich immer wieder den gleichen hexcode in den 
prozessor gejagt, ohne dass es mir aufgefallen ist.

kennt diesen programmfehler schon jemand?

von holger (Gast)


Lesenswert?

>kennt diesen programmfehler schon jemand?

Ja, das ist der User-Error. Der Compiler meldet
da allerdings keine Fehler.

von Christian W. (christian_w)


Lesenswert?

ok habs rausgefunden.

ich hab die c-quelltext-datei auf dem desktop gespeichert, damit ich 
diese hier hochladen kann.

beim compilieren hat das avr studio immer die datei auf dem desktop 
aktualisiert, was der hex datei im avr-studio-verzeichnis aber wenig 
geholfen hat, die blieb dann immer gleich.

nun denn...

danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.