www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analog->Digital


Autor: Alfons (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche möglichkeiten habe ich analoge Signale mithilfe eines Avrs zu
verarbeiten ( Digialisieren )

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der avr hat einen 10bit adc intern. wenn du eine höhere genauigkeit oder
mehr geschwindigkeit beim umwandeln brauchst wirst du um einen externen
adc nicht herumkommen. die benutzung des internen adc ist schon in
vielen threads im forum, tutorials und im datenblatt des avr
beschrieben

Autor: Andy Mart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich bin noch Anfänger mit den AVRs und experimentiere mit dem ATMega8
herum.
Ich bekomme das mit den Interupts noch nicht hin. Kann mir mal jemand
sagen, ob mein Code so funktionieren könnte, und welche die einfachste
Möglichkeit ist, eine Analoge Spannung am Eingang irgendwie digital in
ein Register zu bekommen?

Vielen Dank jetzt schon mal!!!
Gruß
Andy


.INCLUDE "m8def.inc"

.def temp=R16
.def temp2=R17


     RETI              ;1  0x000(1) RESET External Pin, Power-on Reset,
Brown-out
                       ;   Reset, and Watchdog Reset
     RETI              ;2  0x001 INT0 External Interrupt Request 0
     RETI              ;3  0x002 INT1 External Interrupt Request 1
     RETI              ;4  0x003 TIMER2 COMP Timer/Counter2 Compare
Match
     RETI              ;5  0x004 TIMER2 OVF Timer/Counter2 Overflow
     RETI              ;6  0x005 TIMER1 CAPT Timer/Counter1 Capture
Event
     RETI              ;7  0x006 TIMER1 COMPA Timer/Counter1 Compare
Match A
     RETI              ;8  0x007 TIMER1 COMPB Timer/Counter1 Compare
Match B
     RETI              ;9  0x008 TIMER1 OVF Timer/Counter1 Overflow
     RETI              ;10 0x009 TIMER0 OVF Timer/Counter0 Overflow
     RETI              ;11 0x00A SPI, STC Serial Transfer Complete
     RETI              ;12 0x00B USART, RXC USART, Rx Complete
     RETI              ;13 0x00C USART, UDRE USART Data Register Empty
     RETI              ;14 0x00D USART, TXC USART, Tx Complete
     RJMP     ADCRDY   ;15 0x00E ADC ADC Conversion Complete
     RETI              ;16 0x00F EE_RDY EEPROM Ready
     RETI              ;17 0x010 ANA_COMP Analog Comparator
     RETI              ;18 0x011 TWI Two-wire Serial Interface
     RETI              ;19 0x012 SPM_RDY Store Program Memory Ready


main:
     ldi temp, $00          ; ADMUX Channel 0 setzen
     out ADMUX, temp

     ldi temp, 0b10001000   ; ADC enable und einen dummy read triggern
(die Bedeutung der Bits stehen im Datenblatt)
     out ADCSR, temp
     sei                    ; enable general Interrupt
     sbi ADCSR,6            ; nächsten read anstossen

; ende

ADCRDY:                     ; Interrupt Routine
     in temp, ADCL          ; lower Wert nach Rn einlesen
     in temp2, ADCH         ; hohen Wert nach rn
                            ; die eingelesenen Werte stehen nun in den
Registern zum weiter verarbeiten
     sbi ADCSR,6            ; lesen des nächsten wertes anstossen
reti

Autor: harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

nix gegen asm, macht manchmal wirklich sinn.
trotzdem liegen die einfachsten möglichkeit in hochsprachen.
beispiel aus basic-dialekten:

'x = getadc(0)' , wobei die 0 den adc-input beschreibt

gruss, harry

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.