-
-
Verstehe, du meinst also so:
// Prototypenfunktionen:
void io_init(void);
void adc_init(void);
int adc_data(void);
int main(void)
{
int k = 0x4;
io_init(); // I/O init
adc_init(); // ADC init
for(;
{
if(adc_data() > k)
PORTB |= (1<<1);
else
{
PORTB ^= (1<<1);
}
}
return 0;
}
void io_init(void)
{
DDRC = 0x00;
DDRB = 0xFF;
}
void adc_init(void)
{
int i;
int result = 0;
ADCSRA = (1<<ADEN) | (1<<ADSC) | (1<<ADFR) |(1<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS0);
ADMUX = 0x00 | (1<<ADLAR);
}
int adc_data(void)
{
/* eigentliche Messung ( arithmet. Mittelwert aus 2 Messungen ) */
for( i = 0; i < 2; i++)
{
result += ADCH;
}
result /= 2;
return result;
}
?
Hab´s mal ausprobiert. Natürlch hab ich die ports falsch konfiguriert, aber der effekt ist der gleihe, nur dass die LED-leuchtstärke so ist, wie sie sein soll.
(PS: wie kann man denn hier "Code" einfügen ?)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen