Schokohoernl
16.06.2006, 18:11
Hallöchen!
ich hab gerade mal die geschwindigkeit des ADC von einem ATmega8 gemessen. hier der quellcode (BASCOM):
$crystal = 16000000
$baud = 19200
Config Timer1 = Timer , Prescale = 8
Dim Wert As Word
Dim Zeit As Word
Dim I As Byte
Config Adc = Single , Prescaler = AUTO
Start Adc
Do
For I = 0 To 5
Timer1 = 0
Wert = Getadc(i)
Zeit = Timer1
Zeit = Zeit * 2
Print "ADC" ; I ; " hat den Wert " ; Wert ; " und hat dazu " ; Zeit ; " Microsekunden gebraucht"
Wait 2
Next
Loop
erschreckender weise hat der AVR rund 890µS gebraucht um einen wert zu erfassen.
jetzt hab ich mal den prescaler wert auf 8 gesetzt (damit habe ich 2Mhz ADC-clock, statt den im datenblatt angegebenen max. 200KHz). machte sich auch gleich in der zeit bemerkbar: ca. 64µS für ein sample.
mangelnde genauigkeit habe ich noch nicht feststellen können (hab mal GND und VCC an die ADC-ports angelegt).
bei einem prescaler von 4 (4Mhz) ergaben sich dann schon schwankungen von ca. +- 10 (was bei 10bit knap 0,1% sind). bei prescaler 2 (8Mhz) waren es dann so +- 200.
hat jemand schon erfahrungen mit der genauigkeit bei steigender geschwindigkeit oder evtl. sogar ne schöne tabelle mit schaubild?
letztendlich soll der AVR das maxi/minimum einer spannungskurve ermitteln, was allerdings schlecht möglich is, wenn er zu langsam oder zu ungenau ist.
mfg
schoko
ich hab gerade mal die geschwindigkeit des ADC von einem ATmega8 gemessen. hier der quellcode (BASCOM):
$crystal = 16000000
$baud = 19200
Config Timer1 = Timer , Prescale = 8
Dim Wert As Word
Dim Zeit As Word
Dim I As Byte
Config Adc = Single , Prescaler = AUTO
Start Adc
Do
For I = 0 To 5
Timer1 = 0
Wert = Getadc(i)
Zeit = Timer1
Zeit = Zeit * 2
Print "ADC" ; I ; " hat den Wert " ; Wert ; " und hat dazu " ; Zeit ; " Microsekunden gebraucht"
Wait 2
Next
Loop
erschreckender weise hat der AVR rund 890µS gebraucht um einen wert zu erfassen.
jetzt hab ich mal den prescaler wert auf 8 gesetzt (damit habe ich 2Mhz ADC-clock, statt den im datenblatt angegebenen max. 200KHz). machte sich auch gleich in der zeit bemerkbar: ca. 64µS für ein sample.
mangelnde genauigkeit habe ich noch nicht feststellen können (hab mal GND und VCC an die ADC-ports angelegt).
bei einem prescaler von 4 (4Mhz) ergaben sich dann schon schwankungen von ca. +- 10 (was bei 10bit knap 0,1% sind). bei prescaler 2 (8Mhz) waren es dann so +- 200.
hat jemand schon erfahrungen mit der genauigkeit bei steigender geschwindigkeit oder evtl. sogar ne schöne tabelle mit schaubild?
letztendlich soll der AVR das maxi/minimum einer spannungskurve ermitteln, was allerdings schlecht möglich is, wenn er zu langsam oder zu ungenau ist.
mfg
schoko