Oversampling

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Oversampling

Post autor: pimowo » 11 maja 2018, 6:28

Panowie, jak to jest z oversampling? Jak to działa i z czym to się je? ;)
TUTAJ znalazłem kod, ale nie mogę zakumać o co chodzi.
  1. $regfile = "m16def.dat"
  2. $crystal = 8000000
  3.  
  4. '$lib "mcsbyte.lbx"                                          ' for smaller code
  5.  
  6.  
  7. Config Lcdbus = 4
  8. Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
  9. Config Lcd = 16 * 2
  10.  
  11.  
  12. Config Adc = Single , Prescaler = Auto , Reference = Avcc
  13. Stop Adc
  14. Dim X As Word , Y As Word , C(2) As Single , N As Word , Sumx As Long , Sumy As Long
  15. Dim Sy As String * 18 , Sx As String * 18 , Vx As String * 14 , Vy As String * 14
  16. Cursor Off
  17. Cls
  18.  
  19. Start Adc
  20. Do
  21. Sumy = 0
  22. Sumx = 0
  23. For N = 1 To 64
  24. Y = Getadc(0)
  25. 'Power Adcnoise
  26. X = Getadc(1)
  27. 'Power Adcnoise
  28. Sumy = Sumy + Y
  29. Sumx = Sumx + X
  30. Next A
  31.  
  32. 'Sy = Bin(sumy)
  33. 'Sx = Bin(sumx)
  34. 'Vy = Right(sy , 3)
  35. 'Vx = Right(sx , 3)
  36. 'C(1) = Val(vy)
  37. 'C(2) = Val(vx)
  38. C(1) = Sumy / 8
  39. C(2) = Sumx / 8
  40. C(1) = C(1) - 3584
  41. C(2) = C(2) - 3584
  42. C(1) = C(1) * 0.175
  43. C(2) = C(2) * 0.175
  44.  
  45. Locate 1 , 1
  46. Lcd "X=" ; Fusing(c(2) , "#.##")
  47. 'Lcd Sy
  48. Locate 2 , 1
  49. Lcd "Y=" ; Fusing(c(1) , "#.##")
  50. 'Lcd Sx
  51. Loop
  52.  
  53.  End                                                        'end program
Co oznaczają np te linie kodu:
  1. C(1) = C(1) - 3584
  2. C(1) = C(1) * 0.175
Co z kwarcem, czy musi być jakiś konkretny czy może być dowolny?

Chciałbym odczytywać 8x ADC w ten sposób.
Press
Posty: 65
Rejestracja: 21 sty 2018, 23:08

Re: Oversampling

Post autor: Press » 11 maja 2018, 14:38

Rozumiem, że nie chodzi koledze o przetaktowanie samego procesora ponad to co producent podaje jako częstotliwość maksymalną dla rdzenia.

Jeśli dobrze rozumiem i chodzi o nadpróbkowanie i sztuczne zwiększenie rozdzielczości przetwornika ADC to tutaj trochę opisano: https://ep.com.pl/files/2877.pdf
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Oversampling

Post autor: pimowo » 11 maja 2018, 14:48

Press pisze:Rozumiem, że nie chodzi koledze o przetaktowanie samego procesora ponad to co producent podaje jako częstotliwość maksymalną dla rdzenia.
Teraz mam testowo uC ATmega32 z rezonatorem kwarcowym 20MHz
Press pisze:Jeśli dobrze rozumiem i chodzi o nadpróbkowanie i sztuczne zwiększenie rozdzielczości przetwornika ADC
Dokładnie tak ;)
Press pisze:to tutaj trochę opisano: https://ep.com.pl/files/2877.pdf
Dzięki za lekturę, oczywiście poczytam.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Oversampling

Post autor: pimowo » 15 maja 2018, 9:09

Naczytałem się tyle tego, że już kompletnie nic nie rozumiem :(
Może mi ktoś powiedzieć czy w ogóle warto sobie tym głowę zawracać? Czy coś to pomoże w odczytach?
ODPOWIEDZ