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



Teraz jest 13 maja 2026, o 00:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 17 cze 2014, o 16:32 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Witam, jak w temacie nie mam pojęcia jak zabrać się za przerobienie biblioteki z niebieskiej książki kolegi Mirka z ćwicZenia dotyczącego pomiaru temperatury na dwóch czujnikach DS18B20, tak aby umożliwiała tylko wykrywanie jednego czujnika oraz odczyt tylko całkowitej dodatniej wartości temperatury 0-99 st.C. Zależy mi na tym aby "odciążyć" procesor oraz aby można zastosować ją do tak małego mikrokontrolera jakim jest np.attiny2313 w celu zbudowania minutnika kuchennego załączanego dopiero w momencie wrzenia wody (np. do gotowania jajek) Temperatura oraz czas wyświetlany byłby na wyświetlaczu LED a czas ustawiany encoderem. Obecnie kod na ATMEGE32 z biblioteką 1-Wire oraz wyświetlaczem LCD zajmuje coś ponad 3kb.
Proszę o wskazówkę jak się do tego zabrać,a może gdzieś w internecie są już dostępne takie proste biblioteki.
pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2014, o 18:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Kolego by badac 1 czujnik wystarczy w main.c pozmieniac a nie w libsie.

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2014, o 21:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Spróbuj może zrobić tak:
Kliknij PPM na wybranym projekcie, potem z listy wybierz Properties -> C/C++ Build -> Settings -> AVR Compiler -> Miscellaneous i w polu Other flags wpisz -ffunction-sections -fdata-sections

Następnie w AVR C Linker -> General w polu Other Arguments wpisz -Wl,--gc-sections

Z tego co wyczytałem to dzięki temu z kodu wynikowego powinny być usunięte wszystkie nie używane funkcje i zmienne.

U mnie pewien projekt zmniejszył się o kilkaset bajtów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2014, o 21:30 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Dziękuje za pomoc;) Przy okazji aby nie zakładać nowego wątku zapytam czy wie ktoś czy jest jakaś gotowa funkcja czy biblioteka pozwalająca wydawać pojedynczy dźwięk z mikrokontrolera? Wiem że da się to zrobić na tajmerze ale chodzi mi o coś takiego jak np. polecenie SOUND w bascomie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2014, o 23:09 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

W C nie ma takiej biblioteki, popatrz tutaj kolega SunRiver dał ciekawe propozycje, ewentualnie puszczanie wav w GreenBooku

topic2415.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 07:54 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

GreenBooka jeszcze nie posiadam, od niedawna bawie się z bluebookiem, więc na razie zostaje mi użyć brzęczka z generatorem:)
Dziękuje wszystkim za pomoc.

------------------------ [ Dodano po: 44 minutach ]

Mam kolejny problem, aby nie zakładać nowego wątku napisze to tutaj. Napisałem w uproszczeniu kod na atmege8 wyświetlający cyfry na wyświetlaczu led. Program działa prawidłowo jeśli mikroprocesor jest taktowany wewnętrznym kwarcem lub zewnątrznym 8mhz program działa zupełnie prawidłowo. Jeśli jednak dam kwarc 16mhz program raz działa raz sie zawiesza miga itp. Wersja mikroprocesora jaki używam to atmega8A-PU więc jest przystosowana do taktowania16MHZ.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 09:14 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Jak chcesz zmienić kwarc na większy niż w wewnętrzny oscylator RC czy tam mniejszy to po pierwsze trzeba zmienić fuse bity, np w oprogramowaniu Mkavrcalculator którego darmowa wersja obsługuje atmege8 i kod który napisany był na 8 MHz trzeba przekompilowac dla 16 MHz, wtedy powinno być ok. Jak chcesz generować ton to zobacz na YouTube film pt PWM użytkownika Elektroprzewodnik. Tam pokazany jest prosty układ z głośnikiem i tranzystorem dzięki któremu możesz sobie generować proste tony. Wystarczy ze będziesz sterowal tym PWM'em z ATmegi

Wysłane z mojego D2005 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 09:45 

Pomógł: 0

Arek1111111111 napisał(a):
Jeśli jednak dam kwarc 16mhz program raz działa raz sie zawiesza miga itp. Wersja mikroprocesora jaki używam to atmega8A-PU więc jest przystosowana do taktowania16MHZ.


Biblioteki z BB, działają od 1Mhz do 24Mhz na każdym praktycznie AVRze, osobiście przetestowałem ;).
Gdzie masz zadeklarowaną częstotliwość kwarca? masz właściwie ustawione FUSY?, robisz clean przez kompilacją projektu po zmianie kwarcu? w docelowym układzie i zmianie go w ustawieniach projektu?



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 17:51 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

częstotliwość kwarca zadeklarowana w opcjach eclipse. Wielokrotnie zmieniałem, zapamiętywałem spowrotem przywracałem na 8mhz. Zawsze na 8 MHZ nawet zewnątrznaj działa a na większej już nie. Co więcej nawet jeśli w eclipse mam ustawioną częstotliwość 16MHZ a do kontrolera podłącze kwarc 8MHZ program działa prawidłowo, więc wygląda to tak jak by procek przy większych częstotliwościach wariował. Fusy ustawione prawidłowo w MkAVRcalculor za pomocą zakładki fusy uproszczone na zewnętrzny kwarc większy od 8MHZ i bez podziału przez 8.
Co do clean to nigdy tego nie robiłem i szczerze nawet nie bardzo wiem do czego to, ale jeśli może to mieć jakiś związek to już sprawdzam i zaraz napisze czy coś pomogło.

------------------------ [ Dodano po: 7 minutach ]

Właśnie sprawdziłem użycie opcji clean, niestety nic to nie pomogło. Procek na 16MHZ chwile jakby działał prawidłowo, potem chwile dziwnie mruga a w końcu się wyłącza całkowicie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 19:07 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Rozwiązałem swój problem, wstyd się przyznać ale okazało się że ustawiłem zbyt dużą częstotliwość odświeżana wyświetlacza bo aż 1KHZ. Teraz ustawiłem odświeżanie na 200HZ czyli przerwanie co 5ms i układ działa choć jest wrażliwy na zakłócenia np. zapalenie lampki, załączenie lutownicy transformatorowej itp. wyświetlanie po prostu zatrzymuje się na jednym wyświetlaczu. Zobaczymy co będzie jak zaczne dodawać kolejne części programu (i-Wire, obsługa encodera, odliczanie czasu itp), ale i tak jest lepiej niż było:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 19:09 

Pomógł: 0

Na czym to testujesz ? ATB, czy jakaś własna płytka. Ewidentnie coś ci się krzaczy na wyższych częstotliwościach. Czyli albo szfankuje kwarc, albo coś z filtracją, ewentualnie kondensatory przy kwarcu, ale bez większej ilości informacji to wróżenie z fusów ;).

PS. po doczytaniu tego co dodałeś przed chwilą, obstawiał bym filtrację zasilania.


Autor postu otrzymał pochwałę


Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 19:27 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Cofam to co napisałem że układ działa:(. Znowu wszystko po chwili się zawiesiło, nawet reset już nie pomaga. Hmm co do tego na czym testuje jest to płytka testowa replika :ZL2AVR: http://www.elektroda.pl/rtvforum/topic2229432.html
wykonaną własnoręcznie, do tej pory (używam ją ponad rok) nie miałem z nią żadnych problemów. Ćwiczenia z BB. wykonuje na zrobionej przeze mnie przystawce gdzie łącze atmege32 (na osobnym rezonatorze z osobnym filtrowaniem) z tym zestawem. Ten projekt z którym mam problem wgrany na atmege32 działa bez zarzutu. Co do szfankującego rezonatora to testowałem już 4 nowe i na każdym taki sam efekt. Morduje się z tym już czwarty dzień i totalnie nie mam pomysłów co mogę zrobić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 20:50 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Dodałem kilka kondensatorów filtrujących zasilanie, faktycznie procesor zaczął działać dużo stabilniej, będę więc musiał zrobić nową, lepszą płytkę testową. Dobrze wiedzieć w czym leży problem. temat można uznać za zamknięty, przynajmniej na razie XD. Dziękuje za pomoc kolego rezasurmar, oczywiście klikam "pomógł":).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 cze 2014, o 21:34 

Pomógł: 0

Mogę z ręką na sercu ci powiedzieć, że na bibliotekach Mirkowych po za SuperDebounce nie miałem problemów sofwerowych. Jeżeli tylko zadbasz o kwestie zasilania wszystko działa stabilnie.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 26 cze 2014, o 09:46 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 30
Pomógł: 3

Czy projekt umarł, bo zapowiadał się bardzo interesująco?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 19:23 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Ależ skąd:) Nie poddaje się tylko postanowiłem wcześniej zaprojektować własną płytkę testową z prawidłowym filtrowaniem zasilania z rezonatorem itp. Bez tego bardzo ciężko mi coś ruszyć ze względu na to, że co chwile coś się wiesza, zacina itp i nie wiadomo czy to wina programu czy połączeń. Ale z pewnością tuż po zrobieniu własnej płytki testowej z powrotem zabieram się za ten projekt:)
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 22:05 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 30
Pomógł: 3

To trzymam kciuki!
Sam bawię się w coś podobnego i bardzo ciekawi mnie jak to robią inni.
Z niecierpliwością oczekuję ciągu dalszego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 20:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Dzięki za poniższe info 848 bajtów mniej :) ok 2% procka :) mniej zajęte :)


jacekk232 napisał(a):
Spróbuj może zrobić tak:
Kliknij PPM na wybranym projekcie, potem z listy wybierz Properties -> C/C++ Build -> Settings -> AVR Compiler -> Miscellaneous i w polu Other flags wpisz -ffunction-sections -fdata-sections

Następnie w AVR C Linker -> General w polu Other Arguments wpisz -Wl,--gc-sections

Z tego co wyczytałem to dzięki temu z kodu wynikowego powinny być usunięte wszystkie nie używane funkcje i zmienne.

U mnie pewien projekt zmniejszył się o kilkaset bajtów.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2014, o 12:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

majster napisał(a):
Dzięki za poniższe info 848 bajtów mniej :) ok 2% procka :) mniej zajęte :)

Cieszę się, ze komuś się przydało :-)
Sam tak czasem robię jak mam mniejszego procka a chcę odchudzić kod wynikowy z wszystkich niepotrzebnych funkcji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 wrz 2014, o 21:48 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Witam po czasie, Chcialem sie pochwalić swoimi wypocinami:). Zrezygnowałem z enkodera a zastosowłem 3 przyciski. portd idzie do segmentów wyświetlaczy led.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



pliki 1wire oraz multipleksewanie skopiowałem z bb.
a o to projekt schematu i płytki w eeglu:
ps. licze na konkretne uwagi na przyszłość. A może i ktoś z tego jakoś skorzysta.
pozdrawiam,



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: 20 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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