Den Svævende Kugle, Dokumentation [pdf - sorenr.dk
Den Svævende Kugle, Dokumentation [pdf - sorenr.dk
Den Svævende Kugle, Dokumentation [pdf - sorenr.dk
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Den</strong> svævende kugle<br />
2.1 Brugerpanel<br />
22<br />
Opsætter længden på gennemsnitsbufferen<br />
Resetter afrundingsværdien<br />
Resetter returværdigen, som bruges<br />
til at udregne gennemsnittet.<br />
Opsætter for-løkken til at bladre hele<br />
gennemsnits bufferen igennem.<br />
Flytter gennemsnits værdierne i arrayet,<br />
så det altid er de sidste nye vi arbejder med.<br />
Summer værdigerne i bufferen sammen,<br />
til udregning af gennemsnittet.<br />
Afslutter for-løkken.<br />
ADMUX er Analog til Digital Multiplexer<br />
Selection der bestemmer hvordan og<br />
hvilken type signal der skal digitaliseres.<br />
ADC Control and Status Register A<br />
(Starter konverteringen)<br />
Venter på at konverteren bliver færdig.<br />
Færdiggøre konverteringen og<br />
resetter de brugte registre,<br />
undtagen ADCW(ADCH og ADCL)<br />
Returnere et signal<br />
til gennemsnitsbufferen<br />
der svare til 0-20 mm.<br />
Med 1/10 mm<br />
unsigned char laeseAD( unsigned char adc_input )<br />
Analog kanal<br />
gennemsnitAntal = 20<br />
afrunding=0<br />
returvaerdi = 0<br />
gennemsnitLaengde = gennemsnitAntal-1<br />
[Ellers]<br />
ADMUX=adc_input | ADC_VREF_TYPE<br />
ADCSRA|=0x40<br />
[Ellers]<br />
ADCSRA|=0x10<br />
gennemsnit[0]=(ADCW*2000.0)/1023.0<br />
returvaerdi+=gennemsnit[0]<br />
[gennemsnitLaengde>=1]<br />
[(ADCSRA & 0x10)==0]<br />
afrunding=((returvaerdi%(gennemsnitAntal))>=(0.5*gennemsnitAntal))<br />
return (returvaerdi/gennemsnitAntal)+afrunding<br />
<strong>Den</strong>ne AD konverter er blevet inspireret af Codevision<br />
Ingeniørhøjskolen ˚Arhus 2005<br />
Gruppe 3<br />
Program pakker der behøves:<br />
mega16.h //Registre til den valgte processer<br />
Variable:<br />
global unsigned char gennemsnit[20]<br />
-- gennemsnitLaendge<br />
10 bit AD konverter<br />
0 - 1023<br />
0,0 - 20,0mm<br />
gennemsnit[gennemsnitLaengde] = gennemsnit[gennemsnitLaengde -1]<br />
returvaerdi += gennemsnit[gennemsnitLaengde]<br />
Analog til Digital konverter reference spændings type<br />
<strong>Den</strong> nyeste værdi summeres til returværdien,<br />
for at udregning af gennemsnittet.<br />
Undersøger om der skal rundes op.<br />
Udregner gennemsnittet med<br />
en opløsning på 1/10 mm.<br />
og afrunding lægges til.<br />
Figur 22: Læser analog og konvertere til millimeter.