Hallo,
Also ich habe mich in den letzten Tagen dann nochmal an das Projekt gesetzt und nun kann ich erfolge vermerken:
#include "avr/io.h"
#include "util/delay.h"
#include "stdlib.h"
#include "avr/interrupt.h"
#include "stdio.h"
int main (void) {
DDRD = 0xff; //DDRD alle Pins Ausgang
ADMUX = 0x40; // Avcc=Referenz--> AVCC geschalten wie
// im datenblatt seite 196, abbildung 96, Rechtsbündig, PC0 gewählt
ADCSRA = 0x83; // ADC eingeschaltet, Taktung/8
while(1)
{
ADCSRA |= (1<<ADSC); // start conversion
if(ADCW<=200)
{
PORTD |= (1<<PD5);
PORTD &= ~(1<<PD6);
}
else
{
PORTD |= (1<<PD6);
PORTD &= ~(1<<PD5);
}
}
return 0;
}
//das war ja einfach![]()
Ach ja: Ich habe den atmega16 aus versehen geschrottet, indem ich die internen 2,5V referenz eingeschalten habe und ihn extern mit 5V bestromt habedeswegen ist dieses Programm für einen Atmega8. beim atmega16 müsste das programm aber eigendlich nahezu gleich aussehen
![]()
PS: ich habe noch ein Programm geschrieben, wo der controller mehrere messwerte nimmt und dann den durchschnitt errechnet, um messfehler zu verringern. das programm wird demnächst folgen![]()
MfG
Michael







Zitieren

Lesezeichen