Rückgabewert von Funktion wird nicht übegeben

Gast #2068639
Lesenswert?
• ▲
▼
hallo, ich habe ein kleines Programm geschrieben um meine Hardware zu 
testen. Der verwedete Controller ist ein meag64
An Port D hängen Taser, und an Port C hängen LEDs mit vorwiederstand.
Wenn ich folgenden Code compiliere und auf den Controller übertrage
geht die jeweilige LED aus wenn ich den entsprechenden Taster drücke.
1
#include <avr/io.h>
2

3
int main(void){
4

5
  DDRD=0xff;
6
  PORTD=0xff;
7

8
  while(1){
9

10
        PORTC=PIND;
11
  
12
  }//end while
13
}//end main
Verwende ich jedoch diesen Code funktioniert garnichts? Wo liegt mein 
Fehler, das müsste doch so richtig sein.
1
#include <avr/io.h>
2

3
unsigned char abc(void);
4

5
int main(void){
6

7

8
  DDRD=0xff;
9
  PORTD=0xff;
10
  
11
  while(1){
12

13
      
14
  PORTC=abc();
15
  
16
  }//end while
17
}//end main
18

19

20
unsigned char abc(){
21

22
return PIND;
23

24
}
Gast #2068720
Lesenswert?
• ▲
▼
habe den port jetz als eingang geschaltet. es hat vorher trotzdem 
funktioniert.
ich bekomme von der funktion trozdem kein rückgabewert. auch wenn ich 
z.b.
1
 return 0x55;
 schreibe funktioniert es nicht.
Gast #2068913
Lesenswert?
• ▲
▼
Sieht dein Programm inzwischen so aus?

1
#include <avr/io.h>
2

3
unsigned char abc(void);
4

5
int main(void)
6
{
7
  DDRC = 0xff; // <== !
8
  PORTD = 0xff;
9
  while (1) {
10
    // Port C Pin o---###--->|---o GND
11
    //                 R    LED
12
    PORTC = abc();
13
  }//end while
14
}//end main
15

16
unsigned char abc(void)
17
{
18
  // Port D Pin o------TASTER------o GND
19
  // interne Pullups aktiviert
20
  return PIND;
21
}

Ist der richtige AVR im Projekt eingestellt? Wenn da ein Fehler gemacht 
wird, funktioniert der Aufruf der abc() Funktion nicht.

Es gibt Atmega64 und Atmega644, ohne weitere Bezeichnung und mit 
weiterer Bezeichnung... die sind nicht alle identisch!

Wenn AVR richtig eingestellt ist: Mal die LSS Datei erzeugen lassen 
(unter Projektoptionen in AVR Studio) und zeigen. Alternativ HEX-Datei 
hochladen zum disassemblieren.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.