Nicht angemeldet. · Kennwort vergessen · Registrieren

ig26
Mitglied seit 05/2012
3 Beiträge
Betreff: Aufgabe 4
Hallo,
ich habe noch ein Problem mit der test.c, und zwar:

ich binde folgendermaßen ein:

#include <avr/interrupt.h>
#include "led.h"
#include <7seg.h>

und verwende dann unter anderem die sb_7seg_show_number(), sowie sb_led_set_all_leds()

der Compiler mekert dann:

Error    1    implicit declaration of function 'sb_7seg_show_number'   
Error    11    implicit declaration of function 'sb_set_all_leds'   

was ich überhaupt nicht verstehe, da ich die sei() aufgerufen habe und die led.h included habe.

Außerdem erkennt der Copiler nicht die Parameter LED0 - 7, wenn ich die zu testenden Funktionen damit aufrufen möchte:

Error    2    'LED0' undeclared (first use in this function)    (dieser Fehler tritt zu jeder LED auf, dachte mir aber einmal hinschreiben reicht)

zuletzt tritt auch noch auf:

Warning    3    each undeclared identifier is reported only once for each function it appears in    bezogen auf eine Zeile meines Codes:

        sb_7seg_show_number(sb_led_on(LED0) );

Ich habe da keine Idee, wie ich diese Fehler vermeiden kann, deshalb wäre es cool, wenn da jemand von euch eine Idee hätte. Danke schonmal
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Das schreit nach einem fehlerhaften Include-Pfad. Kannst du mal die Komplette Ausgabe des Übersetzungsvorgangs hier posten (also dass, was im Output-Fenster steht).
ig26
Mitglied seit 05/2012
3 Beiträge
------ Build started: Project: aufgabe4, Configuration: Build AVR ------
Build started.
Project "aufgabe4.cproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\AVR Studio 5.1\Vs\Compiler.targets" from project "C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\aufgabe4.cproj" (target "Build" depends on it):
    Using "RunCompilerTask" task from assembly "C:\Program Files (x86)\Atmel\AVR Studio 5.1\Vs\Compiler.Task.dll".
    Task "RunCompilerTask"
        C:\Program Files (x86)\Atmel\AVR Studio 5.1\make\make.exe all
led.c
        Invoking: AVR/GNU C Compiler
        "C:\Program Files (x86)\Atmel\AVR Studio 5.1\extensions\Atmel\AVRGCC\3.3.1.27\AVRToolchain\bin\avr-gcc.exe"  -I"Q:\i4" -I"../../../Uni/SPiC/lipspicboard-library"  -Os -g3 -Wall -Werror -pedantic -c -std=c99 -ffreestanding -DF_CPU=1000000UL -MD -MP -MF "led.d" -MT"led.d"  -mmcu=atmega32  -o"led.o" ".././led.c"
        Finished building: .././led.c
test.c
        Invoking: AVR/GNU C Compiler
        "C:\Program Files (x86)\Atmel\AVR Studio 5.1\extensions\Atmel\AVRGCC\3.3.1.27\AVRToolchain\bin\avr-gcc.exe"  -I"Q:\i4" -I"../../../Uni/SPiC/lipspicboard-library"  -Os -g3 -Wall -Werror -pedantic -c -std=c99 -ffreestanding -DF_CPU=1000000UL -MD -MP -MF "test.d" -MT"test.d"  -mmcu=atmega32  -o"test.o" ".././test.c"
        cc1.exe: warnings being treated as errors
        .././test.c: In function 'main':
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(24,3): implicit declaration of function 'sb_7seg_show_number'
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(24,33): 'LED0' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(24,33): each undeclared identifier is reported only once for each function it appears in
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(26,33): 'LED1' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(28,33): 'LED2' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(30,33): 'LED3' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(32,33): 'LED4' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(34,33): 'LED5' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(36,33): 'LED6' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(38,33): 'LED7' undeclared (first use in this function)
C:\Users\Hennes\Documents\AVRStudio 5.1\aufgabe4\test.c(100,4): implicit declaration of function 'sb_set_all_leds'
        make: *** [test.o] Error 1
    Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "aufgabe4.cproj" -- FAILED.
Done building project "aufgabe4.cproj" -- FAILED.

Build FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Vielleicht solltest du dich mal hier im Forum umschauen: http://eei.fsi.uni-erlangen.de/forum/thread/653-AVR-Studio…
Steppenwolf
GSPiC-Übungsleiter
Mitglied seit 05/2011
31 Beiträge
Noch zwei Sachen, die mir auffallen:

1. Es gibt keine Funktion sb_set_all_leds(), nur sb_led_set_all_leds().
2. LED0 bis LED7 kenne ich auch nicht, sondern nur GREEN0, GREEN1, YELLOW1 etc.
il66ifix
Mitglied seit 05/2011
110 Beiträge
#include <avr/interrupt.h>
#include "led.h"  //das sieht schon mal anders aus --> #include <led.h>
#include <7seg.h>

und für die richtigen Funktionsnahmen gibts die Bibliothek
morty
SPiC-Meister
(Moderator)
Mitglied seit 05/2011
331 Beiträge
Zitat von il66ifix:
#include "led.h"  //das sieht schon mal anders aus --> #include <led.h>

Das ist zwar unschön, aber in diesem Fall nicht so schlimm. Wenn "" verwendet wird, dann wird zunächst in dem Ordner gesucht in dem auch die c-Datei ist. Bei <> wird zunächst in den Systembibliotheken gesucht. Vgl. http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html
Physik3r
Mitglied seit 05/2012
3 Beiträge
Hallo,
wie bekommt man denn die 7Segment anzeige zum laufen?
Dieser Code compiliert zwar, aber es wird nichts angezeigt:

#include <avr/interrupt.h>
#include <led.h>
#include <7seg.h>
  void main(void){
        sb_7seg_showNumber(5);
      while(1);
         {
        }
    }
Steppenwolf
GSPiC-Übungsleiter
Mitglied seit 05/2011
31 Beiträge
Hi,

da du vermutlich GSPiCler bist und wir in GSPiC die 7-Segment-Anzeige nicht benutzen, kannst du das nicht wissen: Das Modul benutzt intern Interrupts. Diese musst du deswegen am Anfang des Programms per "sei()" freigeben; deswegen inkludierst du übrigens auch "interrupt.h" :). Das steht auch in der Modulbeschreibung, zugegeben aber etwas wenig prominent: http://www4.cs.fau.de/Lehre/SS12/V_GSPIC/Uebungen/doc/grou…
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Prüfcode: VeriCode Gib bitte das Wort aus dem Bild ins folgende Textfeld ein. (Nur die Buchstaben eingeben, Kleinschreibung ist in Ordnung.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Weitere Zeichen:
Gehe zu Forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen