horsty
21.11.2009, 12:59
Hallo,
ich benutze das AVR Studio und den gcc compiler. funktioniert auch alles eigentlich ganz gut. normales kleines programm geschrieben mit einer while schleife drin, compiliert und dann per AVR Studio auf den µC übertragen. läuft.
dann habe ich mich daran gemacht, mal den A/D wandler zu aktivieren.
erstmal die bits richtig gesetzt und dann versucht zu compilieren. Da bricht er aber mit etlichen Fehlermeldungen ab. Z.B: ADEN undeclared usw.
hier der code:
#define F_CPU 16000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <setjmp.h>
//volatile
void adwandler();
uint16_t calcADC();
void main()
{
DDRA = 0x00;
DDRB = 0x1F;
DDRC = 0x00;
DDRD = 0x7F;
PORTB = 0x1F;
PORTD = 0x7F;
while(1)
{
/*PORTD = (1<<0x7F);
_delay_ms(1000);
PORTD = (1<<0x6F);
_delay_ms(1000);*/
return;
}
}
//define AD bits
void adwandler()
{
ADMUX = (1<<AREFS0);
ADCSRA = (1<<ADEN) | (1<<ADCE) | (1<<ADFR) | (1<<ADSC) | (1<<ADPS2) | (1<<ADPS0);
return(1);
}
//rechnung
uint16_t calcADC()
{
uint16_t i;
uint8_t erg;
while(1)
{
i = ADCW;
erg = i/4;
return(0);
}
}
hier die fehlermeldungen des compilers:
Build started 21.11.2009 at 12:42:09
avr-gcc -I"G:\Program Files\WinAvr\avr\include" -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Bot.o -MF dep/Bot.o.d -c ../Bot.c
../Bot.c:12: warning: return type of 'main' is not 'int'
../Bot.c: In function 'adwandler':
../Bot.c:38: error: 'AREFS0' undeclared (first use in this function)
../Bot.c:38: error: (Each undeclared identifier is reported only once
../Bot.c:38: error: for each function it appears in.)
../Bot.c:40: error: 'ADCE' undeclared (first use in this function)
../Bot.c:40: error: 'ADFR' undeclared (first use in this function)
../Bot.c:43: warning: 'return' with a value, in function returning void
make: *** [Bot.o] Error 1
Build failed with 5 errors and 2 warnings...
ich weiß wirklich nicht, was daran falsch sein soll.
Bitte helft mir mal und ihr dürft mich auch schlagen wenns ein richtig dummer fehler war!!
greetz horsty
ich benutze das AVR Studio und den gcc compiler. funktioniert auch alles eigentlich ganz gut. normales kleines programm geschrieben mit einer while schleife drin, compiliert und dann per AVR Studio auf den µC übertragen. läuft.
dann habe ich mich daran gemacht, mal den A/D wandler zu aktivieren.
erstmal die bits richtig gesetzt und dann versucht zu compilieren. Da bricht er aber mit etlichen Fehlermeldungen ab. Z.B: ADEN undeclared usw.
hier der code:
#define F_CPU 16000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <setjmp.h>
//volatile
void adwandler();
uint16_t calcADC();
void main()
{
DDRA = 0x00;
DDRB = 0x1F;
DDRC = 0x00;
DDRD = 0x7F;
PORTB = 0x1F;
PORTD = 0x7F;
while(1)
{
/*PORTD = (1<<0x7F);
_delay_ms(1000);
PORTD = (1<<0x6F);
_delay_ms(1000);*/
return;
}
}
//define AD bits
void adwandler()
{
ADMUX = (1<<AREFS0);
ADCSRA = (1<<ADEN) | (1<<ADCE) | (1<<ADFR) | (1<<ADSC) | (1<<ADPS2) | (1<<ADPS0);
return(1);
}
//rechnung
uint16_t calcADC()
{
uint16_t i;
uint8_t erg;
while(1)
{
i = ADCW;
erg = i/4;
return(0);
}
}
hier die fehlermeldungen des compilers:
Build started 21.11.2009 at 12:42:09
avr-gcc -I"G:\Program Files\WinAvr\avr\include" -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Bot.o -MF dep/Bot.o.d -c ../Bot.c
../Bot.c:12: warning: return type of 'main' is not 'int'
../Bot.c: In function 'adwandler':
../Bot.c:38: error: 'AREFS0' undeclared (first use in this function)
../Bot.c:38: error: (Each undeclared identifier is reported only once
../Bot.c:38: error: for each function it appears in.)
../Bot.c:40: error: 'ADCE' undeclared (first use in this function)
../Bot.c:40: error: 'ADFR' undeclared (first use in this function)
../Bot.c:43: warning: 'return' with a value, in function returning void
make: *** [Bot.o] Error 1
Build failed with 5 errors and 2 warnings...
ich weiß wirklich nicht, was daran falsch sein soll.
Bitte helft mir mal und ihr dürft mich auch schlagen wenns ein richtig dummer fehler war!!
greetz horsty