Hallo Leute,
ich bin in Sachen AVR ein Neuling und da ich für ein Projekt den ADC
brauche, wollte ich mich mal da einarbeiten. Ich programmiere mit GCC
und benutze den ATTiny 13A. Ich habe am Pin 2 eine LED mit Vorwiderstand
und habe am Pin 3 ein Poti. Ich möchte dass die LED leuchtet, sobald
ADCL 255 ist, doch die LED leuchtet nicht. Ich habe das ganze
rechtsbündig eingestellt und wenn am Pin 3 High anliegt, müsste ja ADCL
255 sein. Ich habe das Datenblatt mehrmals angeschaut, um Fehler mit den
Registern zu vermeiden, doch ich mach immernoch n Fehler. Ich hänge mein
Code an, damit ihr hoffentlich den Fehler rausfindet.
Gruß
Paarthurnax
1 | #include<avr/io.h>
|
2 |
|
3 | void main(void)
|
4 | {
|
5 | DDRB = 0b00001000; // Pin 2 als Ausgang definieren
|
6 | ADMUX = 0b00000010; // VCC als voltage reference und Pin3 als ADC Kanal wählen
|
7 | ADCSRA = 0b10000011; // ADC einschalten und PS auf 8 einstellen
|
8 |
|
9 | while(1)
|
10 | {
|
11 | ADCSRA |= (1<<ADSC); // Convertion beginnen
|
12 |
|
13 | while(ADCSRA = 0b11000011) // Warten bis ADSC 0 ist
|
14 | {}
|
15 |
|
16 | if(ADCL = 255) // Wenn ADCL 255 Pin2 auf High setzen, damit LED leuchtet
|
17 | {
|
18 | PORTB = 0b00001000;
|
19 | }
|
20 | ADCSRA |= (0<<ADIF); // Flag bit auf null setzten
|
21 | }
|
22 |
|
23 | }
|