- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 11

Thema: Fehler beim compilieren ... Anfänger braucht hilfe

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414

    Fehler beim compilieren ... Anfänger braucht hilfe

    Also ich habe mal nen kleines Programm in C geschrieben mit nem Timer als verzögerung. Der rest vom Programm funktioniert einwandfrei nur seitdem ich den Timer eingebaut habe schmeiß mich der Compiler mit Fehlermeldungen tot. Ich sehe die Fehler leider net so auf anhieb und brauche recht lange bis ich da mal was entdeckt habe, vielleicht können sich die Experten unter euch das ja mal anschauen und mir ein wenig helfen. Als Plattform dient bei mir ein Atmege128 mit 16 Mherz aber das sollte für das Programm bis auf bei der berechnung der zeit ja keine rolle spielen .


    #include <avr/io.h>
    #include <inttypes.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>

    typedef unsigned char BYTE;
    typedef unsigned short WORD;

    BYTE byte_timer;

    void timer_init(void)
    {
    /*Clear Timer on Compare Match (Initialwert des Bits ist 0)
    Wenn dieses Bit gesetzt ist wird nach Übereinstimmung des Datenregisters mit dem
    Vergleichswert das Datenregister auf 0 gesetzt.

    Clock Select Bits (Intitialwerte der Bits sind alle 0)
    Diese 3 Bits bestimmen die Quelle für den Timer
    CS10(Bit 0) CS11(Bit 1) CS12(Bit 2) Aktion
    0 0 0 Timer wird angehalten
    1 0 0 CPU-Takt
    0 1 0 CPU-Takt/8
    1 1 0 CPU-Takt/64
    0 0 1 CPU-Takt/256
    1 0 1 CPU-Takt/1024
    0 1 1 Externer Pin T0, fallende Flanke
    1 1 1 Externer Pin T0, steigende Flanke*/
    TCCR1B|=(1<<CS10)|(1<<CS12)|(1<<CTC1);

    /*Output Compare Match Interupt Enable (Initialwert des Bits ist 0)
    Wenn dieses Bit gesetzt ist wird beim erreichen des Vergleichswertes ein Interupt ausgelöst.*/
    TIMSK|=(1<<OCIE1A);

    /*Output Compare Register beschreiben*/
    cli()
    OCR1=15625;

    /*Timer Datenregister zurrücksetzen*/
    TCNT1=0;
    sei()
    }

    SIGNAL(SIG_OUTPUT_COMPARE)
    {
    cli()
    /*Timer anhalten*/
    TCCR1B&=~((1<<CS10)|(1<<CS12));
    byte_timer=1;
    }

    int main(void)
    {
    /*Alle LEDs als Ausgänge*/

    DDRA=0xFF;
    DDRB=0xFF;
    DDRC=0xFF;
    DDRD=0xFF;
    DDRE=0xFF;
    DDRF=0xFF;
    DDRG=0xFF;

    /*Alle LEDs an PORTA an bis auf die letzte,alle LEDs an PORTD auf
    bis auf die letzte und alle LEDs an PORTG an.*/

    PORTA=0x7E;
    PORTB=0x80;
    PORTC=0x0;
    PORTD=0x0;
    PORTE=0x0;
    PORTF=0x0;
    PORTG=0xFF;

    /*Led 0,2,4 an PORTA aus*/

    PORTA&=~((1<<DDA0)|(1<<DDA2)|(1<<DDA4));

    timer_init()
    while(byte_timer=0){}

    /*LED 0,2,4 an PORTB an*/

    PORTB|=((1<<DDB0)|(1<<DDB2)|(1<<DDB4));

    while(1){}
    }


    > "make.exe" all

    -------- begin --------
    avr-gcc (GCC) 3.4.1
    Copyright (C) 2004 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


    Size before:
    test.elf :
    section size addr
    .data 0 8388864
    .text 268 0
    .bss 0 8388864
    .noinit 0 8388864
    .eeprom 0 8454144
    .stab 756 0
    .stabstr 1240 0
    Total 2264




    Compiling: test.c
    avr-gcc -c -mmcu=atmega128 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=test.lst -std=gnu99 -Wp,-M,-MP,-MT,test.o,-MF,.dep/test.o.d test.c -o test.o
    test.c: In function `timer_init':
    test.c:28: error: `CTC1' undeclared (first use in this function)
    test.c:28: error: (Each undeclared identifier is reported only once
    test.c:28: error: for each function it appears in.)
    test.c:36: error: parse error before "OCR1"
    test.c:41: error: parse error before '}' token
    test.c: In function `SIG_OUTPUT_COMPARE':
    test.c:47: error: parse error before '(' token
    test.c: In function `timer_init':
    test.c:52: warning: 'main' is normally a non-static function
    test.c: In function `main':
    test.c:79: error: parse error before "while"
    test.c: In function `timer_init':
    test.c:86: error: parse error at end of input
    make.exe: *** [test.o] Error 1

    > Process Exit Code: 2
    Angehängte Dateien Angehängte Dateien
    • Dateityp: c test.c (1,9 KB, 1x aufgerufen)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test