Gast
#1370762
Hi,
ich habe einen ADC an einem Mega8 und mir dazu die passende LIB
geschrieben. Leider bekomme ich vom ADC nur Mist.
ADC läuft mit Prescaler 128, Quarz ist 14,xx MHz. Die ausgelesenen werte
schicke ich mir über RS232.
Protokollerklähring: 0xaa steht für anfang, dann folgen die zwei Werte,
dann 0xee für ende.
======================
00000000: aa 00 40 ee
aa 00 40 ee
aa 00 40 ee
aa 00 c0 ee
00000010: aa 00 c0 ee
aa 00 00 ee
aa 00 40 ee
aa 00 00 ee
00000020: aa 00 c0 ee
aa 00 80 ee
aa 00 80 ee
aa 00 80 ee
00000030: aa 00 00 ee
aa 00 80 ee
aa 00 c0 ee
aa 00 80 ee
=======================
Das ganze zieht sich so immer weiter.
Meine ADC datei ist im Anhang.
adc.c hänge ich in den Anhang, main folgt hier:
#include <avr/io.h>
#include <avr/interrupt.h>
#include "leds.h"
#include "edelay.h"
#include "adc.h"
#include "usart.h"
void main(void){
d // INITZILASATION
led_green_on();
adc_init(0);
adc_activate(1);
usart0_init();
while(1){
usart0_putc(0xaa);
//highvoltage_control();
unsigned int send;
send=adc_read_and_null(0);
usart0_putc(send<<8);
usart0_putc(send);
usart0_putc(0xee);
for(i=40;i;i--){
edelay(64000);
}
if(send<256){
led_yellow_off();
led_green_off();
continue;
}else if(send<512){
led_yellow_off();
led_green_on();
continue;
}else if(send<768){
led_yellow_on();
led_green_off();
continue;
}else{
led_yellow_on();
led_green_on();
continue;
}
}
while(1);
}