Forum: Mikrocontroller und Digitale Elektronik AVR Atmega328p ADC-Problem


von ordus (Gast)


Lesenswert?

Hallo,

ich habe versucht den ADC vom Atmega328p (auf einen Arduino Uno Board) 
zu aktivieren. Leider funktioniert es nicht. Nachdem ich alles 
durchsucht habe weiß ich nicht mehr weiter.
Im Simulator (Atmel Studio 6) läßt sich ADSC einfach nicht setzen (habe 
verschiedenes ausprobiert) und auf dem Board funktioniert es auch nicht.
(Eigentlich soll das Programm feststellen ob eine Spannung > 4,5 V an 
PC0 anliegt.)
Vielleicht kann jemand helfen.

.include "m328pdef.inc"

                ldi r16, 0xFF
                out DDRB, r16

    ldi  r16, (1<<REFS0) | (1<<ADLAR)
    sts  ADMUX, r16
    ldi  r16, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)
    sts  ADCSRA, r16

adc_messung:
    lds  r16, ADCSRA
    ori  r16, 0x40
    sts  ADCSRA, r16        ; (hier wird im Simulator ADSC nicht gesetzt 
und ab hier ändert sich r16 auch nicht mehr)

adc_warten:
    lds  r16, ADCSRA
    sbrc r16, 6
    rjmp adc_warten


    ldi  r25, ADCH
    cpi  r25, 0xE6
    brbs 0, adc_messung


    out PORTB, r25

ende:    rjmp ende

von Spess53 (Gast)


Lesenswert?

Hi

>    ldi  r25, ADCH
     ^^^
Das ist definitiv falsch.

>Im Simulator (Atmel Studio 6) läßt sich ADSC einfach nicht setzen (habe
>verschiedenes ausprobiert)

Den Simulator vom 6er Studio kenne ich nicht. Aber im 4er Studio wird 
der ADC nicht unterstützt. Sieh mal in den 'Known Issues' zum Simulator 
in der Hilfe zu Studio nach.

MfG spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.