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



Teraz jest 30 maja 2026, o 16:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 29 sty 2014, o 23:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Ja także mam problem z obsługą HC-SR04 na moim procesorze Atmega16 taktowanym kwarcem 16Mhz i proszę o pomoc w modyfikacji kodu tego poniżej,o sam sobie z tym nie poradzę.

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


Proszę o pomoc bo jak na razie nie rozumiem tego przykładowego kodu i pewnie muszę go jakoś dostosować do mojego procesora Atmaga16 taktowanego kwarcem 16MHz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2014, o 10:49 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

Nie wiem na jaki procesor była napisany , jeśli nie zmieniałeś nic to :


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


mówi że był pisany na ATMEGE16 16MHz wiec nie wiem co chcesz tu zmieniać i poco
Na Swoją Atemegę 16 16Mhz ??

Jeśli jednak ty tam dopisałeś powyższy komentarz to .. zainteresuje się ustawieniami timerów
sparawdzasz w nocie i przeliczasz ... nic więcej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2014, o 10:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Ten program był pisany na ATMEGA64 /1MHz
Ja natomiast posiadam Atmegę16 16MHz -proszę o pomoc w dobraniu tych timerów bo u mnie z angielskim słabo i sam sobie nie poradzę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2014, o 11:22 
Offline
Moderator
Avatar użytkownika

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

mirek1968 napisał(a):
Ten program był pisany na ATMEGA64 /1MHz
Ja natomiast posiadam Atmegę16 16MHz -proszę o pomoc w dobraniu tych timerów bo u mnie z angielskim słabo i sam sobie nie poradzę.


hmm a w Bluebooku - szczególnie w rozdziale o multipleksowaniu LED jest po polsku i to cały rozdział jak zabierać się za timery ... Więc może warto to poczytać ?

_________________
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: 30 sty 2014, o 12:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Jeśli dobrze zrozumiałem to w powyższym kodzie przy Atmedze 64 i taktowaniu 1MHz
TCCR0 |= (1 << CS01); //czyli preskaler na 8
jeśli podzielimy 1000000/8/256=488Hz (czy dobrze myślę?)

To z tego wynika przerwanie będzie się odbywać co 488 razy na sekundę?



Ostatnio edytowano 31 sty 2014, o 09:57 przez mirek1968, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sty 2014, o 23:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Mam prośbę,jak znajdzie się Ktoś z konkretną pomocą to zapraszam.
Nie chodzi mi o to żeby za mnie pisać poprawiony kod ,myślę żeby było najlepiej dla mnie żebym pisał tak jak powyżej z czym mam problem(lub mam wątpliwości) a osoba zainteresowana pomocą pisała by ewentualnie komentarze do moich wpisów lub poprawki ,lub coś w podobny sposób.
Pozdrawiam i mam nadzieję na zainteresowanie:-).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2014, o 21:11 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Najprościej przestawić atmegę na generator wewnętrzny 1MHz.

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

Należałoby jeszcze zmienić funkcje Delay5Ms i Delay400Ms, ale lepiej zastąpić je _delay_ms(5); i _delay_ms(400);

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2014, o 23:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Zmieniłem kod z Twoją sugestią ale niestety nie działa pokazuje na lcd "D stance:000.0c" a w drugim wierszu "i".

Poniżej kod po zmianach.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 21:45 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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

Nie bardzo wiadomo co z tym teraz zrobić :roll: . A jak próby z przestawieniem na 1MHz?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 21:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Niestety nie mam pełnej wersji programu MkAvrCalculator i nie mogę zmienićtaktowania na wewn oscylator 1Mhz a próbowałem programem AVR Burn-O-Mat ten z klei w oknie wyboru programatora nic nie widzi po usb a ja mam programator fizycznie usbasp i znów problem:-(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 22:35 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

mirek1968 napisał(a):
Niestety nie mam pełnej wersji programu MkAvrCalculator
To zgłoś się do konkursu

W eclipse też sobie możesz przestawić:
Obrazek
Najpierw odznacz programowanie w zakładce Flash i przejdź do Fuses przestaw radiobutton na direct hex values (1) potem odczytaj to co jest (2), ustaw korzystając z edytora (3) jak na poniższym obrazku:
Obrazek
Zaprogramuj jak zwykle z tym, że teraz to fusebity się zaprogramują i przestaw z powrotem jak było na początku, aby następnym razem programować tylko pamięć flash.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 23:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Przestawiłem na 1Mhz ale niestety raz tylko zadziałao a potem już licznik stoi w miejscu ,ale mam problem z powróceniem do 16Mhz z powrotem,nie potrafię zmienić na 16Mhz pomimo że wybieram to w oknie programu stale jest 1Mhz

Podaję screen z moich fusebitów

Obrazek



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

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Już umiem zmieniać częstotliwość taktowania,popełniałem błąd bo po każdej próbie zmian taktowania po zmienie fusebitów robiłem kompilacje projektu a to był błąd (nie należy tego robić tylko od razu po zmianie wgrać nowo ustawione fusebity-teraz to już wyczaiłem.
Ale ok to nie jest temat tego postu,ponieważ po ustawieniu taktowania na 1Mhz raz tylko to zadziałało a po chwili już nie,pewnie w tym programie jest coś nie dopracowane.
Proszę o dalsze sugestie co do tego kodu.

Proszę jeszcze o sprawdzenie poprawności moich fusebitów dla Atmaga16 16Mhz

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2014, o 20:32 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

zerknij do tego tematu : topic2655.html

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2014, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

Wiem że korzystałeś w Twoim programie z innej biblioteki lcd,dlatego mam parę błędów podczas kompilacji.
np:błąd large integer implicitly truncated to unsigned type
w tej linijce ??
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I następnie następny błąd kompilacji w tych poniżej linijkach kodu.
undefined reference to `lcd_home'
undefined reference to `lcd_string_format'

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


Korzystam z bibiloteki z książki M.K i powiem szczerze że nieweim np. jaką funkcją mam zastąpić "lcd_string_format" ,próbowałem lcd_int czy też lcd_string ale nie działa mi to wcale,jeśli możesz to pomóż mi te linijki Twojego kodu dostosować do mojej bibioteki lcd44780 z książki i przykładów Mirka.K



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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