Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lut 2026, o 08:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 21 lip 2013, o 10:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Ostatnim czasem "bawię" się (albo raczej próbuję) z pomiarem różnicowym za pomocą procesora M32. Poniżej listing programu który wyświetla wyniki trzech pomiarów zarówno na ekranie za pomocą terminala (oraz genialnego softu napisanego przez kolegę Antystatyczny) jak i wyświetlacza LCD 2x16. M32, taktowanie oscylatorem wewnętrznym 8MHz:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Program kompiluje się bez żadnych błędów czy ostrzeżeń. Niestety wyniki pomiarów są całkowicie odległe od rzeczywistości (dotyczy napięcia różnicowego). Poniżej w pliku wyniki skopiowane z terminala. Wszystkie wejścia podłączone do masy.

Jak widać w przedstawionym logu:
-pomiar napięcia na ADC2 wykonywany jest prawidłowo- przy wejściu zwartym do masy wynik wynosi 0
-pomiar "błędu" wewnętrznego WO w procesorze - wynik jest błędny a w dodatku niestabilny - wg. mojej wiedzy powinien wynosić on 512 plus minus parę %, tu natomiast wynosi 0 lub wartości w pobliżu 1023
-pomiar napięcia różnicowego- wyniki nie są stabilne- często pojawia się maksymalny (1023 lub wartości zbliżone)

I teraz garść pytań: czy to ja coś robię czy ten procek pod względem pomiarów różnicowych to kompletna porażka? Producent co prawda pod * informuje nas: "The differential input channels are not tested for devices in PDIP Package. This feature is only guaranteed to work for devices in TQFP and QFN/MLF Packages" ale dotyczy to g=200x, w moim przypadku wykorzystuję kanały z g=10x.
Nie wymagam jakiegoś super dokładnego pomiaru, ale nie chcę też umieszczać zewnętrznego WO :(


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 10:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

Najpierw dopytam o kilka rzeczy, czy zwrócił kolega uwagę na dość ważne informacje ze strony 251 bluebooka ?

Czy kolega zwrócił uwagę na ten tekst z noty PDF ?

Obrazek

a już tłumaczę dlaczego się upewniam, ano dlatego że kolega pisze tak:

janeczqu napisał(a):
wg. mojej wiedzy powinien wynosić on 512 plus minus parę %, tu natomiast wynosi 0 lub wartości w pobliżu 1023


widzi kolega ? .... nie może być wartości 1023 - ona nie może się u kolegi pojawiać ... chyba że ? no chyba właśnie że kolega nie dostrzegł tego kociego niuansu jaki jest w prockach ATmega - czyli ograniczenia zakresu do od -512 do +511 :( czyli wartość pomiaru trzeba sobie zamienić na typ integer i obserwować jako liczbę ze znakiem wtedy NIGDY nie pojawi się wartość 1023 z ADC (dodam hmm może przypomnę bo w bluebooku piszę o tym, procki ATtiny mierzą od 0 do 1023 ;) czyli dlatego mamy większy zakres )

a pomiary zaczną wydawać się prawidłowe

to na razie tak na szybko - informacja - proszę to przetrawić i sprawdzić a jak jeszcze będzie coś niejasne to proszę pytać

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Nie wiem czy dobrze zmieniłem, ale wyniki takie same :/
poprawiony kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:53 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

janeczqu napisał(a):
Nie wiem czy dobrze zmieniłem, ale wyniki takie same :/


ale wiesz co ? jak ja mam problemy w kodzie to staram się ograniczyć go do wielkości poziomki - czyli minimum i sprawdzania konkretnego miejsca. Ja się troszkę gubię po tej wypowiedzi bo nie wiem jakie wyniki są takie same ?

proponowałbym zostawić w kodzie jedną funkcję do pomiaru różnicowego i wyświetlać jej wynik tylko na LCD, to wsio

no i jak mówisz że wyniki są takie same to znaczy że co ? widzisz liczby ujemne ? czy widzisz liczby dodatnie w zakresie 0 - 1023 ? bo jeśli to drugie to coś trzeba poprawić - ale teraz rozumiesz że do analizy widziałbym kod w postaci poziomki a nie arbuza ;)

------------------------ [ Dodano po: 1 minucie ]

poza tym takich kilka uwag luźnych do całego kodu

1. weź tą całą pętlę

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zastąp po prostu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


tak jest zdrowiej

2. polecenie sei(); dawaj zawsze tuż przed pętlą główną programu while(1) a nie gdzieś na początku - tak też będzie zdrowiej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 15:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

1. za pomocą tej pętli chciałem wykonać 1000 pomiarów i je przeanalizować ;) ale ok, usuwam
2. poprawiam
3. co do wyników: nadal ujemnych wartości nie widzę
4. zaraz upraszczam kod maksymalnie i zobaczę czy coś się zmieni ;)

Edyta:
No i nowe testy przeprowadziłem na tym programie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Obserwacje:
-zwarte wejścia (tylko z sobą): wyświetlana wartość: przeważnie 0, sporadycznie 1023
-przy zwartych wejściach do masy lub vcc, Vref, dowolnego napięcia: wyniki podobne
-przy podaniu napięcia różnicowego na poziomie 1-2mV- 1ynik 1023 nie pojawił się nawet raz


Mam kolejne (mam nadzieję że tym razem poprawne) "teorie" dlaczego tak się dzieje, ale najpierw kolejne testy
o wynikach będę informował na bieżąco ;)

_________________
Klimatyzacja Przemyśl



Ostatnio edytowano 21 lip 2013, o 16:15 przez janeczqu, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 16:12 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

janeczqu napisał(a):
nadal ujemnych wartości nie widzę


bardziej mi chodzi o to czy widzisz wartości dodatnie większe niż 511 ? bo jeśli tak to może będzie trzeba zrobić rzutowanie na int ? nie mam tego teraz jak sprawdzić więc jak będzie mini-kod to szybciej nam sprawdzanie pójdzie ;)

------------------------ [ Dodano po: 18 minutach ]

dobra - samo rzutowanie nic nie da ;) przecież wynik jest TYLKO 10-bitowy trzeba to jakoś ręcznie zamienić np tak

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 18:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Dopiero teraz ruszyło, dzięki Mirku ;)

mirekk36 napisał(a):
dobra - samo rzutowanie nic nie da przecież wynik jest TYLKO 10-bitowy trzeba to jakoś ręcznie zamienić np tak

Chyba teraz siedziałem nad tym z dwie godziny zanim ostatecznie przybrało to taką formę ;)

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 54 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO